首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么curl发送代理连接头,即使RFC似乎不鼓励它呢?

为什么curl发送代理连接头,即使RFC似乎不鼓励它呢?
EN

Stack Overflow用户
提问于 2020-07-03 12:41:20
回答 2查看 1.8K关注 0票数 9

RFC 7230,超文本传输协议(HTTP/1.1):附录中的消息语法和路由状态

因此,鼓励客户端不要在任何请求中发送代理连接标头字段。

那么,当使用代理时,卷曲为什么要发送这个头呢?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ 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节

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-03 13:22:46

多棒的问题啊!谢谢你的关心。

这是一个例子,在网络上,规格和我们应该做的事情并不真正符合现实,如果我们试图遵循那些书面指南会发生什么!

早在2016年,我们(在curl项目中)实际上删除了对代理执行的curl请求中的Proxy-Connection: Keep-Alive头,这正是出于这个原因:没有必要,因为协议意味着保持生存,而规范是这样说的!

然后(在更改之后),我们立即从代理连接完全崩溃的人那里得到了一个bug报告流(),并且持久的连接根本无法工作。一旦我们恢复这一改变,一切又重新开始运作。

所以,也许在2026年前后,事情已经发生了很大的变化,所以我们可以再次进行这个实验。在此之前,我们将这个头保存在代理请求中,这样所有那些在那里使用的糟糕的遗留代理都不会发疯!

世界野生网是个疯狂的地方。

票数 28
EN

Stack Overflow用户

发布于 2022-03-09 21:32:24

只是一个解决办法的笔记,

我发现我的代理正在转发代理连接头,并且由于某种原因,如果web服务器看到了该头,它将返回403。设法删除标题,使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -v -x proxyserver --proxy-header "Proxy-Connection:" http://example.com
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62722430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文