我想知道 HTTP 隧道是如何工作的。我试过谷歌,但没有找到我要找的东西。
据我所知,HTTP 代理就像反向代理。您请求一个网站,HTTP 代理获取并理解此请求并将其发送到原始服务器。答案从原始服务器传输到 HTTP 代理,然后返回到您的 PC。除了仅隧道 TCP/IP 的 SOCKS 代理之外,HTTP 代理读取 HTTP 请求,对吗?
如果这是对的,那么我的问题是:
如何通过 HTTP 代理隧道传输其他协议?例如,Instant Messenger 提供此类代理设置,并且它们使用自己的协议。
除了一般的GET/ POST/ HEAD/ PUT,许多HTTP代理服务器理解的附加CONNECT请求,它建立一个原始TCP连接到远程主机。这是正确支持 HTTPS 所必需的,但通常可用于其他协议。
$ nc proxy.example.com 8080
-> CONNECT mail.example.com:587 HTTP/1.0
->
<- HTTP/1.0 200 Connection Established
<- Proxy-agent: Apache/2.2.19 (Debian)
<-
<- 220 mail.example.com ESMTP Badger badger badger badger badger postfix postfix!
-> ehlo grawity-pc
<- 250-mail.example.com
<- 250-PIPELINING
<- 250-SIZE 10240000
<- 250-STARTTLS
<- 250-ENHANCEDSTATUSCODES
<- 250-8BITMIME
<- 250 DSN
-> quit
<- 221 2.0.0 Bye
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3335 次 |
| 最近记录: |