首页 价格 教程中心 图形识别new

免费送1G流量

CN
HTTP、HTTPS、SOCKS代理的区别

HTTP/HTTPS/SOCKS 代理指的是客户端连接代理服务器的协议,指客户端和代理服务器之间交互的协议。


如服务器支持代理HTTP协议就叫HTTP代理服务器,支持代理SOCKS协议就叫SOCKS代理服务器。如代理服务器同时支持代理HTTP/SOCKS协议,则既可以叫HTTP代理服务器,也可以叫SOCKS服务器。


补充:SOCKS协议工作在比HTTP、HTTPS更低的层次,所以HTTP协议,HTTPS协议可以使用SOCKS代理(即HTTP、HTTPS协议和代理服务器之间可以采用SOCKS协议),但反过来,SOCKS协议就不能通过HTTP/HTTPS来代理了。

这里IE的代理意思是,配置哪种协议走哪个代理服务器(注意并不是什么协议代理服务器,IE仅支持HTTP代理)。比如你这里配的是让HTTP协议走HTTPS代理服务器(这里的HTTPS代理服务器指仅支持代理HTTPS,不支持代理其他协议如HTTP),那么HTTP协议将不能够被代理成功。


其实,IE的代理设置都只支持HTTP代理的。上图中无论怎么设置,都是使用HTTP协议直接转发到对应的代理服务器,也就是代理服务器必须是支持代理HTTP协议的服务器(代理服务器支持其他协议比如HTTPS也是多余的,并不会使用HTTPS代理)。这里大家可能会有疑问,那HTTP代理服务器是如何可以代理HTTPS协议的呢?其实是用了HTTP隧道(HTTP tunnel)(感兴趣请自己查阅相关资料),客户端和HTTP代理服务器之间并没有进行HTTPS的握手过程。


上面说了,IE代理仅支持HTTP代理,谷歌浏览器Chrome代理配置也只能是配置IE代理,也就是只能使用HTTP代理了。那比如我想使用HTTPS代理怎么办(客户端和HTTPS代理服务器之间采用HTTPS协议)?


可以使用插件Proxy SwithchyOmega:

“网址协议”就是IE代理设置里的“类型”,和IE代理相比,多了个“代理协议”选项,即什么协议走什么代理选项。


比如可配置HTTP/HTTPS协议走SOCKS5协议代理。其实这插件也是调用了chromium提供的接口(https://www.chromium.org/developers/design-documents/network-stack/socks-proxy):

————————————————

可看出FTP协议通过SOCKS协议代理还没有实现。。


 


最后说下ss的原理:


ss的运行原理与其他代理工具基本相同,使用特定的中转服务器完成数据传输。在服务器端部署完成后,用户需要按照指定的密码、加密方式和端口,使用客户端软件与其连接。在成功连接到服务器后,客户端会在用户的电脑上构建一个本地Socks5代理。浏览网络时,网络流量会被分到本地socks5代理,客户端将其加密之后发送到服务器,服务器以同样的加密方式将流量回传给客户端,以此实现代理上网。


有人会问,ss(R)是Socks5代理,但我上面说了IE代理(不安装Proxy SwithchyOmega情况下)只支持HTTP代理,为什么也可以访问google呢?


其实ss(R)默认在1080端口开启了Socks5代理,但是它为了兼容HTTP代理模式,会使用ss_privoxy.exe开启了一个HTTP代理(随机端口,返回拒绝则默认8123端口。