HTTP标头获取没有内容长度的响应会给出502坏网关

时间:2011-10-11 14:44:59

标签: http http-headers

要创建一个comet连接(挂起get),我没有在HTTP Header中指定content-length。这适用于我的系统但是会从学院局域网的另一台机器请求,它为请求提供了502 Bad Gateway。

如果我提到内容长度,我得到响应,但连接关闭,我不想要。有什么可以替代呢?

1 个答案:

答案 0 :(得分:0)

遵循HTTP / 1.1规范以实现连接持久性。在回复中返回HTTP/1.1。如果查询是HTTP / 1.1,则默认为保持连接打开。如果查询不是,则默认关闭它。如果您获得Connection: close标头,请在发送响应后关闭连接。如果您获得Connection: keep-alive标头,请保持连接打开,即使这不是协议默认值。

如果您不想关注HTTP/1.1,则无论如何都可能会获得连接持久性。如果您通过上述规则成功建立持久性,请始终包含Connection: Keep-Alive标头。如果您不支持持久连接,请发送Connection: Close标头,即使客户端请求了一个。

基本上,请关注HTTP specification。如果您知道内容长度,则应始终发送Content-Length标头。如果客户端可以支持持久连接,则使用持久性协商规则建立持久连接。