如果我在收到请求后立即调用response.end()而不提供任何数据、调用response.write()或调用response.writeHead(),会发生什么?我从两个角度很好奇这个答案:
1) 服务器角度 - 这是否本质上是从 NodeJS 中的后端堆栈或堆中取出一些东西来释放一些资源?还是发生了完全不同的事情?
2) 客户端视角 - 如果这是来自 ajax 请求,并且不希望收到任何响应数据,会出现任何问题吗?
最佳答案
这里要做的显而易见的事情就是尝试一下。 Node.js 代码:
var http = require('http');
http.createServer(function (req, res) {
res.end();
}).listen(1337, '127.0.0.1');
从服务器角度来看,这与在其中添加数据/自定义 header 没有什么不同。
从客户的角度来看,给我空的响应正文,带有标题:
Connection:keep-alive
Date:Sun, 29 Jul 2012 07:58:51 GMT
Transfer-Encoding:chunked
与hello world example的区别是 Content-Type
header 丢失并且响应正文为空,仅此而已。
关于node.js - 如果我在不提供任何 header 或数据的情况下调用response.end(),NodeJS 中会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11707624/