首先让我展示我的代码。
http=require("http");
fs=require("fs");
var server=http.createServer(function(req,res){
var readStream=fs.createReadStream("1.jpg");
readStream.on("data",function(data){
res.write(data);
});
readStream.on("end",function(data){
res.write("this string seems not to be sent","utf8");
res.end("end","utf8");
});
});
server.listen(3000);
我创建了图片 1.jpg 的 readStream,然后发送数据流。在“结束”事件被触发后,我发送了一个字符串“这个字符串似乎没有被发送”。我没有在标题中指定内容长度。
在客户端,我实际上得到了正确的 1.jpg。但我没有收到字符串。我想一定有什么东西标志着流的结束。如果有,标志是什么?这个怎么运作?
我知道使用“分块”分配传输编码是一种发送长度不确定的数据的方法,但我的 safari 显示响应标头是:
连接保持活动
传输编码标识