o caracol não irá regressar enquanto executa um pedido à cabeça

Estou a criar recursos num servidor de nós e a anexar um ETag a cada um deles. Estou a usar o método encontrado nesta pergunta que codificação devo usar para gerar correctamente um ETag com criptografia nodejs?Para gerar os ETags. No entanto, quando faço um pedido HEAD na linha de comando usando o curl, como:

$ curl -i -u username:password -X HEAD http://localhost:3000/aResource/0

a resposta é

HTTP/1.1 200 OK
X-Powered-By: Express
ETag: "1a37c148692f92ad6c97887f77c873e6"
Content-Type: text/plain
Date: Sat, 26 Oct 2013 01:06:28 GMT
Connection: keep-alive

^C
$

e eu tenho que pressionar especificamente Control-C para ver o comando de novo. Por outro lado, acho que isto estranho, porque a forma como estou a lidar com o pedido HEAD é através da aplicação.head on node and after the authentication I am calling the function:

function serveResourceEtag(req, res) {
    console.log("Following route through HEAD");
    var anID    = parseInt(req.params[resourceID], "utf8");
    if (anID < serverData.resourceEtags.length) {
        res.writeHead (200, {"ETag": "\"" + serverData.resourceEtags[anID] + "\"", "Content-Type": "text/plain"});
        res.end();
    }
    else {
        res.writeHead (404, {"Content-Type": "text/plain"});
        res.end();
    }
};

em outras palavras, mesmo que eu tenha a res. end (); comando no final, a transmissão por alguma razão não parou. Tanto quanto sei, um pedido HEAD deve ter o mesmo cabeçalho que um pedido GET. A diferença com um GET é que no caso de HEAD não temos o corpo de um pedido GET. Pode dizer o que parece ser o problema aqui?

Author: Community, 2013-10-26

2 answers

Você está certo sobre o comportamento dos métodos HTTP, é apenas o caracol que está errado, você quer:
curl -I -u username:password http://localhost:3000/aResource/0

Não-X HEAD, que diz para usar um método de HEAD de HTTP em vez de um GET que só devolve os cabeçalhos

 7
Author: Matt Newman, 2013-10-26 01:46:13
A culpa não é do teu servidor. Quando o faço, tenho de matar o curl para voltar ao prompt, O que é estranho, porque um pedido de "curl GET" deixa-me de volta ao prompt.
 1
Author: Dan Ross, 2013-10-26 01:45:52