2011-10-11 135 views
0

创建彗星连接(挂起)我没有在HTTP头中指定内容长度。这适用于我的系统,但会从另一台机构局域网请求,它为请求提供502错误网关。HTTP头获取没有内容的响应长度给502坏的网关

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

回答

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标题。如果客户端可以支持,则使用持久性协商规则建立持久连接。

+0

感谢您的回复。我试着保持连接:保持活着的头,但如果内容长度没有指定,它也会抛出502错误的网关。学院之间有代理和防火墙。但是,在连接关闭之后,我无法提供内容长度。请任何解决方法? – prat0318

+0

你在回复中发送'HTTP/1.0'还是'HTTP/1.1'?另外,它是'Connection:Keep-Alive'。 –

+0

我发回客户端的HTTP版本,我应该保持它始终1.1?是的,我保持它保持活力。我知道有一个代理服务器不允许悬挂连接。即使在标题中提及内容长度,什么是创建持久连接的方法。 – prat0318