Node.js HTTP 模块:响应 + 请求



我刚刚开始观看一些节点教程,我想帮助理解我从http.createServer((获得的响应和请求流。响应和请求是流,那么这是否意味着Node.js以块的形式发送和接收数据?

例如,如果我打电话

res.write("test1");
res.write("test2");
res.end();

当我调用 end(( 时,它只会写入这两件事,还是会刷新到流并在我调用 write(( 时发送到发出请求的客户端?

另一个详细说明我的问题的例子是,如果我有一个包含大量明文数据的 txt 文件,那么我设置了一个读取流,将数据从该文件传输到 res 对象,它会以块的形式传输该数据还是在缓冲区中一切都这样做。

我想我的问题也适用于请求对象。例如,请求的主体是逐个数据包构建并流式传输到服务器,还是一次全部发送,而节点只是选择让我们使用流来访问它。

多谢!

第一次调用 response.write(( 时,它会将缓冲的标头信息和正文的第一个块发送到客户端。第二次调用 response.write(( 时,Node.js 假设数据将被流式传输,并单独发送新数据。也就是说,响应被缓冲到正文的第一个块。

全 FOC

所以基本上,如果你.write((一小段数据,它可能会被缓冲,直到有一个完整的块或.end((被调用。如果 .write(( 已经有一个块的大小,它将被不可估量地传输。

最新更新