2010-10-09 4 views
0

Je viens de créer un serveur HTTP en utilisant ce code vient la documentation:Commencé Jouer avec node.js. J'ai une question

var sys = require("sys"), 
    http = require("http"); 

http.createServer(function(request, response) { 
    response.writeHead(200, {"Content-Type": "text/plain"}); 
    response.end("Hello World!"); 
    sys.puts('Connection'); 
}).listen(8080); 

sys.puts("Server running at http://localhost:8080/");** 

Ma question est, pourquoi quand je vais à localhost: 8080 je suis arrivé « connexion » imprimé deux fois? est-ce un bug?

+0

Il semble que oui, bien que sur les demandes suivantes, il imprime correctement. Quelque chose avec le premier accès. – mhitza

Répondre

2

Votre navigateur peut demander l'URL deux fois, une fois avec une requête HEAD et une fois avec une requête GET. Essayez d'utiliser une interface simple, comme telnet:

$ telnet localhost 8080 
GET/HTTP/1.0 

^]q 

une ligne vide après GET, et appuyez sur Ctrl + ]qEntrez pour sortir.

+5

Ne pense pas que c'est un chef et obtenir. Très probablement la deuxième demande est à la recherche de la favicon, mais c'est nitpicking. –

+0

@Ivo: Bon appel, c'est probablement en effet. –

+0

c'est correct, je viens de le faire: sys.puts (request.url); et le second si pour le favicon. Merci – oscarm

0

Deux demandes sont envoyées au serveur. La première requête est faite automatiquement par le navigateur, qui demande favicon.ico, et bien sûr, la deuxième requête est pour l'URL (localhost: 8080).