我正在使用3G UMTS连接。我正在尝试实现到我的服务器的HTTP隧道 它侦听端口80(这是为了绕过客户端的防火墙)。问题是ISP的代理服务器支持不支持持久HTTP连接的HTTP / 1.0。
结果,在我的客户端/服务器之间进行一次http请求/响应迭代之后,ISP的代理断开了底层的TCP连接。
我的客户端收到以下HTTP响应:
HTTP/1.0 200 OK
Content-Type: application/octet-stream
Content-Length: yyy
X-Cache: MISS from ipmr5
Proxy-Connection: close
Content data
当我的服务器实际发送时:
HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Type: application/octet-stream
Content-Length: yyy
Content data
有解决方法吗?
答案 0 :(得分:3)
您可以随时使用HTTPS。您将失去代理提供的任何好处(例如缓存),但所有HTTP标头都将完全按照您发送的那样到达服务器。
答案 1 :(得分:1)
HTTP 1.0代理(您的ISP似乎使用它)不应该与Connection:Keep-Alive一起用于持久连接。 RFC-2068(第19.7.1节)概述了其原因。简而言之,就是您的服务器正在为您正在使用的代理类型发送无效的标头。