这张图片是 ProxyDroid 应用程序,我看到了一些像这样的代理软件。
我找到了一些用于 http 方法的免费服务器(著名的 http 代理)并找到了 socks 4 和 5 的服务器,但我找不到任何支持 https 和 http 隧道的服务器,换句话说,我无法理解这些协议到底是什么。
这张图片是 ProxyDroid 应用程序,我看到了一些像这样的代理软件。
我找到了一些用于 http 方法的免费服务器(著名的 http 代理)并找到了 socks 4 和 5 的服务器,但我找不到任何支持 https 和 http 隧道的服务器,换句话说,我无法理解这些协议到底是什么。
代理 HTTPS 是通过使用 CONNECT 请求的 HTTP 代理完成的。使用此请求,HTTP 代理被指示创建到目标服务器的隧道。在此隧道内,客户端可以执行 HTTPS 所需的 TLS 握手:
> CONNECT example.org:443 HTTP/1.0
>
... proxy established TCP connection to example.org:443 ...
< HTTP/1.0 200 Connection established
<
... tunnel to target established
... proxy forwards data between client and target unchanged
<-> TLS handshake
<-> application data protected by TLS
HTTP 隧道类似。通常通过发送 HTTP 代理请求来代理 HTTP 请求:
> GET http://example.org/index.html HTTP/1.0
> Host: example.org
>
... proxy connects to target example.org and forwards request
... then sends response from target server back
< HTTP/1.0 200 ok
< Content-length: ...
< ...
使用 HTTP 隧道,客户端改为使用上述 CONNECT 方法创建到目标服务器的隧道并发送请求:
> CONNECT example.org:80 HTTP/1.0
>
< HTTP/1.0 200 Connection established
<
... tunnel established, send HTTP request over tunnel and get reply back
> GET /index.html HTTP/1.0
> Host: example.org
> ...
< HTTP/1.0 200 ok
< ...