ftp 客户端 使用http代理 源码_代理服务器连接HTTPS过程
說到HTTPS代理很多人瞬間就會聯(lián)想到HTTPS的各種證書和各種加密,覺得很高端很復(fù)雜的樣子。其實不然,代理服務(wù)器不需要配置證書、也不需要處理任何加密。因為HTTPS代理是通過Web隧道(Web tunnel)工作的。
Web隧道允許用戶通過HTTP連接發(fā)送非HTTP流量(例如FTP,Telnet,SMTP),這就使得那些使用非HTTP協(xié)議的應(yīng)用程序可以通過HTTP代理工作了。你現(xiàn)在應(yīng)該就明白了為什么QQ可用設(shè)置使用HTTP代理工作。Web隧道這么強(qiáng)大,但它并不復(fù)雜。
Web隧道是用HTTP協(xié)議的CONNECT方法建立起來的。CONNECT方法不是HTTP/1.1核心規(guī)范的一部分,但確是一種得到廣泛應(yīng)用的擴(kuò)展。客戶端通過CONNECT方法請求代理服務(wù)器創(chuàng)建一條到達(dá)任意目的服務(wù)器和端口的TCP鏈接,代理服務(wù)器僅對客戶端和服務(wù)器之間的后續(xù)數(shù)據(jù)進(jìn)行盲轉(zhuǎn)發(fā)(只是轉(zhuǎn)發(fā),不關(guān)心、也不懂發(fā)送的內(nèi)容是什么)。
建立Web隧道的詳細(xì)步驟如下:
1) 客戶端通過HTTP協(xié)議發(fā)送一條CONNECT方法的請求給代理服務(wù)器,告知代理服務(wù)器需要連接的主機(jī)和端口。
例如:
CONNECT www.alipay.com:443 HTTP/1.1
User-agent: Mozilla/5.0
在本例中客戶端通過CONNECT方法請求代理服務(wù)器打開一條到www.alipay.com主機(jī)443端口的TCP鏈接。
2) 代理服務(wù)器一旦建立了和目標(biāo)主機(jī)(上例中的www.alipay.com:443)TCP連接,就會回送一條HTTP 200 Connection Established應(yīng)答給客戶端。
例如:
HTTP/1.1 200 Connection Established
Poryx-Agent: Squid/3.2
3) 此時隧道就建立起來了。客戶端通過該HTTP隧道發(fā)送的所有數(shù)據(jù)都會被代理服務(wù)器(通過之前建立起來的與目標(biāo)主機(jī)的TCP連接)原封不動的轉(zhuǎn)發(fā)給目標(biāo)服務(wù)器。目標(biāo)服務(wù)器發(fā)送的所有數(shù)據(jù)也會被代理服務(wù)器原封不動的轉(zhuǎn)發(fā)給客戶端。注意:是原封不動的轉(zhuǎn)發(fā),代理服務(wù)器并不需要知道內(nèi)容的含義,也不會嘗試去對內(nèi)容進(jìn)行解析。
http://www.site-digger.com/html/articles/20151203/107.html
總結(jié)
以上是生活随笔為你收集整理的ftp 客户端 使用http代理 源码_代理服务器连接HTTPS过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Yahoo网站性能最佳体验的34条黄金守
- 下一篇: [导入]【翻译】WF从入门到精通(第八章