HTTP请求
当您使用代理发出 HTTP cURL 请求时,您将执行以下操作:
curl -x http://myproxy:8888 http://github.com
Run Code Online (Sandbox Code Playgroud)
cURL 向代理 myproxy:8888 发送一个 HTTP 请求,该代理创建一个到http://github.com的新 HTTP 请求
The request content is :
GET /
Host: myproxy:8888
Location: http://github.com
Run Code Online (Sandbox Code Playgroud)
HTTPS 连接
当您使用代理发出 HTTPS cURL 请求时,您将执行以下操作:
curl -x http://myproxy:8888 https://github.com
Run Code Online (Sandbox Code Playgroud)
cURL 向代理 myproxy:8888 发送 CONNECT 请求,这会在您和 github 之间创建 TCP 隧道。所有 SSL 协商均在您和 github 之间进行。
HTTPS 请求
我想在没有 CONNECT 的情况下使用代理发出 HTTPS cURL 请求。我想为 HTTPS URL 的代理创建 HTTP 请求。
请求内容将是:
GET /
Host: myproxy:8888
Location: **https**://github.com
Run Code Online (Sandbox Code Playgroud)
是否可以 ?这个怎么做 ?
不,这是不可能的,因为 CONNECT 是您用来通过 HTTP 代理执行 HTTPS 的方法。移交控制权就等于放弃安全性和隐私性,而这是 HTTPS 首先要提供的两件事。
几天前,我还在curl 邮件列表上回答了这个问题,时间稍长一些。
列表中的一个后续问题是,我们是否可以想象提供一个选项,允许在未来版本中通过代理执行 HTTPS,是的,只要有人为所述新选项编写代码,我们就可以做到这一点。
| 归档时间: |
|
| 查看次数: |
5208 次 |
| 最近记录: |