http 1.1 connect 方法

connect 方法是用来实现 http 代理的。

假设我们在 243 服务器上的 8080 端口搭建了代理服务器。那么客户端如果需要通过 243 代理服务器去请求外部的数据,可以这样做。

建立与 243 服务器的 8080 端口的 tcp 连接,发送以下报文。

CONNECT www.baidu.com:80 HTTP/1.1
Host: www.baidu.com:80
Proxy-Connection: Keep-Alive
Proxy-Authorization: Basic *
Content-Length: 0

如果代理服务器不需要认证,那么 Proxy-Authorization 可以省略,如果需要认证,那么星号(*)需要提供用户名和密码,格式为用户名,冒号,密码的 base64形式。

如果认证成功,那么服务器会返回如下响应头。

HTTP/1.1 200 Connection Established

如果认证失败会返回如下响应头,可能会带上一些 html 数据来让浏览器显示,我们可以不用管,直接判断响应状态码即可。

HTTP/1.1 407 Unauthorized

如果认证成功,那么客户端完全可以把 243 的 8080端口当做是目的 web服务器发送普通的http请求了,它都会帮我们去连接到远程服务器去取数据。

由于 connect 方法建立的代理是明文传输,就算 243 代理服务器在国外,当我们发送一些敏感请求时还是会被检测到。因为这些数据先会明文方式传递到 243 代理服务器。如果需要逃过本国的网络监视就必须使用加密的连接方式,比如SOCK5代理或者加密的VPN。


上一篇: sock5代理协议
下一篇: 无
作者邮箱: 203328517@qq.com