You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

仅支持HTTP的代理发CONNECT+GET请求HTTPS返回200而非403的原因

原因说明

你观测到的「CONNECT+GET请求返回200」并非成功通过代理访问了目标HTTPS站点,本质是作为测试节点的PROXYHOST自身返回的响应,具体逻辑如下:

  • 你的PROXYHOST本质是未部署代理服务的普通Apache Web服务器,本身不支持HTTP代理的CONNECT隧道功能。默认配置下收到CONNECT请求时会直接返回403 Forbidden,这也是你用curl、requests发起标准HTTPS代理请求失败的原因:标准客户端会先发送CONNECT example.com:443请求建立到目标站点的隧道,直接被PROXYHOST拒绝。
  • 你构造的「CONNECT+GET」属于不符合代理规范的错误请求,触发了服务器的容错逻辑:你发送的第一行CONNECT请求的目标是PROXYHOST自身,而非要访问的example.com;Apache收到不识别的CONNECT方法后,会直接跳过非法请求行,处理后续紧跟的GET请求。
  • 你发送的GET请求GET https://www.example.com:443 HTTP/1.0对于普通Web服务器来说,会自动忽略路径中的协议、域名部分,仅提取路径段匹配自身站点资源。该请求等效于请求PROXYHOST的根路径/,根路径存在的情况下自然返回200状态码,且响应体为PROXYHOST自身的HTML内容,和你附加信息中描述的特征完全吻合。

你可以自行验证该结论:查看该200响应的响应体内容,必然和你直接访问PROXYHOST的8080端口返回的内容完全一致,和example.com无关。

内容的提问来源于stack exchange,提问作者Martin Kroll

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 13:15:05