当我们使用chunked属性时,是否必须保持connection-alive属性?

时间:2013-06-20 10:02:05

标签: http http-headers http-1.1 http-1.0

我的客户端设置以下标题:

Transfer-Encoding: chunked
Connection: Keep-Alive

当我检索回复时,我收到Transfer-Encoding: chunked标题,但没有Connection: Keep-Alive标题。出于这个原因,我相信我可能只会在我的客户中收到部分回复。

现在我的问题是:

是否必须在Connection: Keep-Alive中设置HTTP/1.1属性?

1 个答案:

答案 0 :(得分:2)

简而言之,没有。对于遵守HTTP / 1.1的消息缺少Connection标头,默认值是持久的Keep-Alive连接。如果存在连接头,则双方应该根据头的值进行相应的操作。

RFC 2616 Section 8.1.2所述:

  

HTTP / 1.1与早期版本的HTTP之间存在显着差异   是持久连接是任何HTTP的默认行为   连接。也就是说,除非另有说明,否则客户应该这样做   假设服务器将保持持久连接,甚至   来自服务器的错误响应后。

当然,如果您希望在传输完成后关闭连接,这不会阻止您明确设置Connection: close标头。