HTTP标头中的连接和代理连接有什么区别?

时间:2013-03-17 12:43:32

标签: http proxy http-headers http-proxy

HTTP标头中的ConnectionProxy-Connection之间有什么区别?

代理是否添加了Proxy-Connection字段?还是客户端和服务器?代理,客户端或服务器在收到带有值keep-alive和close这两个字段的标题后会做什么?

2 个答案:

答案 0 :(得分:14)

Connection标头是HTTP 1.0和1.1规范(RFC 2068和RFC 2616)中定义的标准标头,用于维护HTTP连接上的保持活动行为。

Proxy-Connection是由Netscape开发人员创建的实验性标题,由于对可以使用Connection标头的误解而做类似的事情。它从未正常工作,并且被当今存在的许多常见HTTP系统所忽略。当它按设计工作时,两者之间没有区别。

答案 1 :(得分:0)

引自https://tools.ietf.org/html/rfc7230#appendix-A.1.2

  

在HTTP / 1.0中,每个连接都是由客户端在   请求,并在发送响应后由服务器关闭。   但是,某些实现实现了显式协商的   部分中介绍的(“保持活动”)版本的持久连接   [RFC2068]的19.7.1。

     

某些客户端和服务器可能希望与它们兼容   持久连接的先前方法,通过显式   用“连接:保持活动”请求标头为他们协商   领域。但是,HTTP / 1.0的一些实验性实现   持续连接有故障;例如,如果是HTTP / 1.0代理   服务器不了解连接,它将错误地转发   该标头字段到下一个入站服务器,这将导致   挂起的连接。

     

一种尝试的解决方案是引入代理连接   标头字段,专门针对代理。实际上,这   也是不可行的,因为代理通常部署在多个位置   层,带来了上面讨论的相同问题。

     

因此,鼓励客户端不要发送代理连接   标头字段。

     

还鼓励客户考虑使用Connection:   认真保持请求的积极性;他们可以启用持久性   与HTTP / 1.0服务器的连接,使用它们的客户端将需要   监视连接是否有“挂起”请求(这表明   客户应该停止发送标头字段),并且该机制应该   使用代理时,客户端完全不会使用该客户端。