客户端向服务器发送两次请求?

Client is sending request twice to server?

我对服务器和节点还很陌生。我创建了一个非常基本的 httpserver 并尝试在控制台上打印连接数。下面是相同的代码

var count = 0;
var http = require("http");
var server = http.createServer(function(request,response){
    response.writeHead(200, {"Content-Type": "text/html"});
    count++;
    console.log('Count' + count);
    response.end(count + '');
});

server.listen(8080);
console.log("Server is listening");

三个连接计数值增加到 6 后,请告诉我为什么每个 http 请求计数增加 2

您的浏览器可能会请求其他 URL,例如 favicon.ico,这是许多浏览器为了找到可以显示为网站代表的小图标而做的事情。

为了防止这种情况发生,您可以检查 request.url 特定路径,并且仅在路径符合您的预期时才应用您的逻辑。

这是您可以做到的一种方法:

var count = 0;
var http = require("http");
var server = http.createServer(function(request,response){
    if (request.url === "/") {
        response.writeHead(200, {"Content-Type": "text/html"});
        count++;
        console.log('Count' + count);
        response.end(count + '');
    } else {
        response.writeHead(404, {"Content-Type": "text/html"});
        response.write("Content not found");
        response.end();
    }
});

server.listen(8080);
console.log("Server is listening");