RFC 7230,超文本传输协议(HTTP/1.1):附录中的消息语法和路由状态
因此,鼓励客户端不要在任何请求中发送代理连接标头字段。
那么,当使用代理时,卷曲为什么要发送这个头呢?
$ http_proxy=0.0.0.0:8080 curl -v http://google.com
...
> Accept: */*
> Referer:
> Proxy-Connection: Keep-Alive
>
...
我在x86_64-pc-linux-gnu上使用卷曲7.71.1。
增编:这是另一种协议,但HTTP/2显然不允许Connection
和相关字段,按照RFC 7540 8.1.2.2节
发布于 2020-07-03 13:22:46
多棒的问题啊!谢谢你的关心。
这是一个例子,在网络上,规格和我们应该做的事情并不真正符合现实,如果我们试图遵循那些书面指南会发生什么!
早在2016年,我们(在curl项目中)实际上删除了对代理执行的curl请求中的Proxy-Connection: Keep-Alive
头,这正是出于这个原因:没有必要,因为协议意味着保持生存,而规范是这样说的!
然后(在更改之后),我们立即从代理连接完全崩溃的人那里得到了一个bug报告流(),并且持久的连接根本无法工作。一旦我们恢复这一改变,一切又重新开始运作。
所以,也许在2026年前后,事情已经发生了很大的变化,所以我们可以再次进行这个实验。在此之前,我们将这个头保存在代理请求中,这样所有那些在那里使用的糟糕的遗留代理都不会发疯!
世界野生网是个疯狂的地方。
发布于 2022-03-09 21:32:24
只是一个解决办法的笔记,
我发现我的代理正在转发代理连接头,并且由于某种原因,如果web服务器看到了该头,它将返回403。设法删除标题,使用:
curl -v -x proxyserver --proxy-header "Proxy-Connection:" http://example.com
https://stackoverflow.com/questions/62722430
复制相似问题