如果对GET请求的响应没有Content-Length或Transfer-encoding:chunked字段,会发生什么?客户如何知道消息何时结束?
答案 0 :(得分:1)
RFC 7230 section 3.3.3包含一个很好的条件清单,用于查找邮件正文大小。基本上它说答案取决于状态代码是什么。相关条件为#1和#7。
“1。任何回复......用1xx (信息),204(无内容)或304(未修改)状态 代码总是在第一个空行后终止 标题字段,无论标题字段是否存在 消息,因此不能包含消息体。“
“7。否则,这是没有声明消息的响应消息 体长,所以消息体长度由 在服务器关闭之前收到的八位字节数 连接强>“。
还值得知道消息可能在身体部分结束后继续。 RFC 7230 section 4.4定义了预告片功能,其中有效负载可能后跟第二组mime标头。如果存在,则消息将在他们所在的位置结束。
答案 1 :(得分:0)
邮件正文的长度由以下之一决定(in 优先顺序):
- [...]
- 否则,这是一条没有声明消息体长度的响应消息,因此消息体长度由服务器关闭连接之前收到的八位字节数决定。
客户端需要检测连接是否已关闭。