http代理的使用介紹

          b b b

          http代理的使用介紹

          http代理是很多人在咨詢IP海客服的時(shí)候,會(huì)咨詢一種代理服務(wù)。那么,在這種協(xié)議之下的ip代理,是怎么工作的呢?下面我們來看看具體的介紹。

          httpip代理的使用介紹

            httpip代理的使用是怎么實(shí)現(xiàn)的?

           

            瀏覽器與代理進(jìn)行 TCP 握手之后,發(fā)起了 CONNECT 請求,報(bào)文起始行如下:

           

            CONNECT imququ.com:443 HTTP/1.1

           

            對于 CONNECT 請求來說,只是用來讓代理創(chuàng)建 TCP 連接,所以只需要提供服務(wù)器域名及端口即可,并不需要具體的資源路徑。代理收到這樣的請求后,需要與服務(wù)端建立 TCP 連接,并響應(yīng)給瀏覽器這樣一個(gè) HTTP 報(bào)文:

           

            HTTP/1.1 200 Connection Established

           

            瀏覽器收到了這個(gè)響應(yīng)報(bào)文,就可認(rèn)為到服務(wù)端的 TCP 連接已經(jīng)打通,后續(xù)直接往這個(gè) TCP 連接寫協(xié)議數(shù)據(jù)就可以了。通過 Wireshark 的 Follow TCP Steam 功能,可以清楚地看到瀏覽器和代理之間的數(shù)據(jù)傳遞:

           

            可以看到,瀏覽器建立到服務(wù)端 TCP 連接產(chǎn)生的 HTTP 往返,完全是明文,這也是為什么 CONNECT 請求只需要提供域名和端口:如果發(fā)送了完整 URL、Cookie 等信息,會(huì)被中間人一覽無余,降低了 HTTPS 的安全性。HTTP 代理承載的 HTTPS 流量,應(yīng)用數(shù)據(jù)要等到 TLS 握手成功之后通過 Application Data 協(xié)議傳輸,中間節(jié)點(diǎn)無法得知用于流量加密的 master-secret,無法解密數(shù)據(jù)。而 CONNECT 暴露的域名和端口,對于普通的 HTTPS 請求來說,中間人一樣可以拿到(IP 和端口很容易拿到,請求的域名可以通過 DNS Query 或者 TLS Client Hello 中的 Server Name Indication 拿到),所以這種方式并沒有增加不安全性。

           

            了解完原理后,再用 Node.js 實(shí)現(xiàn)一個(gè)支持 CONNECT 的代理也很簡單。核心代碼如下:

           

            JSvar http = require(‘http’);

           

            var net = require(‘net’);

           

            var url = require(‘url’);

           

            function connect(cReq, cSock) {

           

            var u = url.parse(‘http://’ + cReq.url);

           

            var pSock = net.connect(u.port, u.hostname, function() {

           

            cSock.write(‘HTTP/1.1 200 Connection Established ’);

           

            pSock.pipe(cSock);

           

            }).on(‘error’, function(e) {

           

            cSock.end();

           

            });

           

            cSock.pipe(pSock);

           

            }

           

            http.createServer().on(‘connect’, connect).listen(8888, ‘0.0.0.0’);

           

            以上代碼運(yùn)行后,會(huì)在本地 8888 端口開啟 HTTP 代理服務(wù),這個(gè)服務(wù)從 CONNECT 請求報(bào)文中解析出域名和端口,創(chuàng)建到服務(wù)端的 TCP 連接,并和 CONNECT 請求中的 TCP 連接串起來,最后再響應(yīng)一個(gè) Connection Established 響應(yīng)。修改瀏覽器的 HTTP 代理為 127.0.0.1:8888 后再訪問 HTTPS 網(wǎng)站,代理可以正常工作。

           

            除了http代理之外,IP海還有socks代理、https代理等多種服務(wù),用戶可以根據(jù)自己的工作要求或是使用用途來選購。

          版權(quán)聲明:本文為ipadsl.cn所屬公司原創(chuàng)作品,未經(jīng)許可,禁止轉(zhuǎn)載!

          国产一区二区精品久久91 | 国产成人精品免费视频动漫| 久久最新精品国产| 97r久久精品国产99国产精| 一本久久伊人热热精品中文| 亚洲高清专区日韩精品| 国产精品白浆在线观看无码专区| 香港三级精品三级在线专区| 无码人妻精品一区二区三区99性 | 国产精品俺来也在线观看| 久久夜色精品国产噜噜噜亚洲AV | 国产成人精品高清在线观看93| 精品人妻无码专区中文字幕 | 国产精品免费观看调教网| 国产成人精品一区二区三区无码| 久久精品成人免费观看97| 国产精品乱码一区二区三区 | 亚洲国产精品无码一线岛国| 亚洲中文字幕无码久久精品1 | 精品久久香蕉国产线看观看亚洲| 久久久久99精品成人片| 久久精品无码免费不卡| 精品久久久久久99人妻| 久久久精品无码专区不卡| 99久久成人国产精品免费 | 99亚洲乱人伦aⅴ精品| 国产精品美女在线观看| 97香蕉久久夜色精品国产| 一本色道久久88—综合亚洲精品| 国产高清国内精品福利| 蜜芽国内精品视频在线观看| 国产精品自在在线午夜蜜芽tv在线 | 久久国产加勒比精品无码| 久久精品国产99精品国产2021| 久久夜色精品国产尤物| 99热这就是里面只有精品| 亚洲精品视频专区| 国产成人精品男人的天堂538| 99精品国产第一福利网站| 亚洲а∨天堂久久精品9966| 久久精品国产亚洲av天美18 |