如果我调用response.end()而不提供任何头文件或数据,NodeJS会发生什么?

如果我在收到没有提供任何数据,调用response.write()或调用response.writeHead()的请求时立即调用response.end(),NodeJS会发生什么? 我很好奇两个angular度的答案:

1)服务器的angular度 – 这是否实际上采取了一些后端堆栈或堆节点JJ内释放一些资源? 或做一些完全不同的事情发生?

2)客户端的angular度 – 如果这是来自ajax请求,不希望收到任何数据作为回应,是否会出现任何问题?

1)与请求和响应相关的所有资源都被放弃(可用于垃圾收集)

2)节点发出一个响应,默认标题和一个空的主体。 这完全取决于客户如何处理。 在大多数情况下,客户端会将默认标题视为不完整,但是在没有响应主体的情况下,没有其他select。

在这里做的显而易见的事情就是尝试。 Node.js代码:

var http = require('http'); http.createServer(function (req, res) { res.end(); }).listen(1337, '127.0.0.1'); 

从服务器的angular度来看,在这里添加数据/自定义标题并没有什么不同。

从客户的angular度来看,给我空的响应正文,标题:

 Connection:keep-alive Date:Sun, 29 Jul 2012 07:58:51 GMT Transfer-Encoding:chunked 

与hello世界的例子不同的是, Content-Type头部缺失,响应主体为空,就是这样。