Connection和Proxy-Connection在HTTP头部有什么区别?
Proxy-Connection字段是否由代理添加?还是客户端和服务器?代理、客户端或服务器在收到这两个字段分别具有值keep-alive和close的头部后会做什么?
发布于 2013-05-31 10:12:31
HTTP头是HTTP1.0和1.1规范(RFC2068和RFC2616)中定义的标准头,用于维护Connection连接上的保活行为。
由于对什么时候可以使用Connection头存在误解,Proxy-Connection是由网景开发人员创建的一个实验性头,目的是做类似的事情。它从来没有正常工作过,并且被当今存在的许多常见的HTTP系统所忽略。当它按照设计工作时,两者之间没有区别。
发布于 2019-05-28 09:40:22
引用自https://www.rfc-editor.org/rfc/rfc7230#appendix-A.1.2
在HTTP1.0中,每个连接由客户端在请求之前建立,并在发送响应后由服务器关闭。但是,一些实现实现了RFC2068的19.7.1节中描述的显式协商(“保持活动”)版本的持久连接。一些客户端和服务器可能希望通过使用"Connection: keep-alive“请求报头字段显式地协商它们,从而与这些先前的持久连接方法兼容。但是,HTTP/1.0持久连接的一些实验实现是有缺陷的;例如,如果HTTP/1.0代理服务器不理解连接,它将错误地将标头字段转发到下一个入站服务器,这将导致连接挂起。一种尝试的解决方案是引入专门针对代理的代理连接报头字段。在实践中,这也是不可行的,因为代理通常部署在多个层中,带来了上面讨论的相同问题。因此,我们鼓励客户端不要在任何请求中发送Proxy-Connection报头字段。也鼓励客户端仔细考虑在请求中使用Connection: keep-alive;虽然它们可以启用与HTTP1.0服务器的持久连接,但使用它们的客户端将需要监视连接中的“挂起”请求(这表示客户端应该停止发送报头字段),并且当使用代理时,客户端根本不应该使用此机制。
https://stackoverflow.com/questions/15460819
复制相似问题