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的代理意思是,配置哪種協議走哪個代理服務器(注意並不是什么協議代理服務器,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(R)的原理:

ss的運行原理與其他代理工具基本相同,使用特定的中轉服務器完成數據傳輸。在服務器端部署完成后,用戶需要按照指定的密碼、加密方式和端口,使用客戶端軟件與其連接。在成功連接到服務器后,客戶端會在用戶的電腦上構建一個本地Socks5代理。瀏覽網絡時,網絡流量會被分到本地socks5代理,客戶端將其加密之后發送到服務器,服務器以同樣的加密方式將流量回傳給客戶端,以此實現代理上網。

有人會問,ss(R)是Socks5代理,但我上面說了IE代理(不安裝Proxy SwithchyOmega情況下)只支持HTTP代理,為什么也可以訪問google呢?

其實ss(R)默認在1080端口開啟了Socks5代理,但是它為了兼容HTTP代理模式,會使用ss_privoxy.exe開啟了一個HTTP代理(隨機端口,返回拒絕則默認8123端口)。

 

 

不僅如此,ss(R)在1080端口也支持HTTP代理。

我們知道,IE的代理設置是僅支持HTTP代理的。也正是因為ss(R)支持HTTP代理方式,才能使IE以及一些其他不支持Socks5代理(但支持HTTP代理)的軟件進行代理。

瀏覽器一般會自動啟用系統代理,而其它軟件則需要自身支持HTTP代理或Socks5代理,而且一般需要進行手動配置才可以進行代理。

補充:分別使用HTTP協議和SOCKS5協議訪問ss本地Windows客戶端情況(注:事先要下載curl小工具):

 

 可看出,HTTPS協議使用HTTP代理是通過了HTTP隧道

 

 

注:

socks5 和 socks5h 的區別僅用於 curl。在 curl 中,socks5 會使用本地DNS,socks5h 會使用代理提供的遠程DNS。

在其它軟件中,socks5h 基本不起作用,使用 socks5 即可。一旦設置了代理,多數時候會采用遠程DNS。

 

 

 可見,因為ss本地Windows客戶端(相當於本地代理服務器)不支持HTTPS協議,因此不會響應Client hello

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM