HTTP请求是否需要响应?

3
我认为这是一个普遍适用的问题,但这就是我想要做的事情:创建一个小型的Node.JS应用程序,每当在群组中发布消息时,它会接收来自GroupMe的POST请求以触发并执行完全独立的操作。他们指出,回调URL将每次群组发布消息时从我们那里接收到HTTP POST请求。如果我需要响应POST,对我来说没有太大区别,但我很好奇是否有必要或是否有任何负面影响。
var server = http.createServer(function(request, response) {
    doStuff(request);
});
2个回答

4

这真的取决于你在做什么,但通常情况下,如果没有发送任何响应,则期望有响应的应用程序或用户将等待连接超时,这可能需要一分钟或更长时间,然后会收到超时错误并认为您的服务无法工作。

你不必发送任何文本,只需发送一个HTTP响应代码即可。让doStuff()返回是否成功,并根据其发送适当的代码:

var server = http.createServer(function(request, response) {
    response.send(doStuff(request) ? 200 : 400);
});

200 表示正常,400 表示错误请求。


1
在响应POST请求时,通常会附带一个响应体的200。如果没有响应体,则最好返回204,表示成功但没有内容被返回。 - Steve Swinsburg

1
在HTTP请求和响应领域,我知道的是,你至少应该使用response.end()。如果不使用response.end,客户端将一直等待响应。因此最好在任务完成后使用response.end
var server = http.createServer(function(request, response) {
    doStuff(request);
    response.end(); //It tells browser/client that server has finished it's work on this request.
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接