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

时间:2015-04-10 06:56:17

标签: node.js http 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个计数

1 个答案:

答案 0 :(得分:3)

您的浏览器可能会请求其他网址,例如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");