国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

基于 HTTP/2 的 WEB 內(nèi)網(wǎng)穿透實(shí)現(xiàn)

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
HTTP/2 引入了二進(jìn)制分幀層,將 HTTP/1.1 中的請(qǐng)求和響應(yīng)拆成顆粒度更細(xì)的幀(frame),從而實(shí)現(xiàn)了優(yōu)先級(jí)、流量控制和 Server Push 等功能;HTTP/2 在單條 TCP 連接上可以打開(kāi)多個(gè)流,從而實(shí)現(xiàn)了多路復(fù)用;HTTP/2 使用靜態(tài)字典、動(dòng)態(tài)字典以及哈夫曼編碼,對(duì)請(qǐng)求 / 響應(yīng)頭部進(jìn)行壓縮。總之,HTTP/2 從協(xié)議層面解決了 HTTP/1.1 的諸多問(wèn)題。

HTTP/2 引入了二進(jìn)制分幀層,將 HTTP/1.1 中的請(qǐng)求和響應(yīng)拆成顆粒度更細(xì)的幀(frame),從而實(shí)現(xiàn)了優(yōu)先級(jí)、流量控制和 Server Push 等功能;HTTP/2 在單條 TCP 連接上可以打開(kāi)多個(gè)流,從而實(shí)現(xiàn)了多路復(fù)用;HTTP/2 使用靜態(tài)字典、動(dòng)態(tài)字典以及哈夫曼編碼,對(duì)請(qǐng)求 / 響應(yīng)頭部進(jìn)行壓縮。總之,HTTP/2 從協(xié)議層面解決了 HTTP/1.1 的諸多問(wèn)題。

在我之前寫(xiě)的文章里,我介紹了如何通過(guò) ngrok 讓內(nèi)網(wǎng) WEB 在其它網(wǎng)絡(luò)環(huán)境中能夠被訪問(wèn)。本文要實(shí)現(xiàn)的服務(wù)與 ngrok 類似,我把它稱之為 Pangolin,中文是穿山甲的意思(名字來(lái)自于同事的類似項(xiàng)目,在此表示感謝)。Pangolin 客戶端和服務(wù)端之間的報(bào)文轉(zhuǎn)發(fā),是用 node-http2 這個(gè) Node.js 模塊提供的 HTTP/2 服務(wù)來(lái)實(shí)現(xiàn)的。

Pangolin 的需求來(lái)自于本博客用戶評(píng)論(via)。實(shí)際上,能實(shí)現(xiàn)類似功能的軟件很多,有使用私有協(xié)議進(jìn)行轉(zhuǎn)發(fā)的,有使用 WebSocket 進(jìn)行轉(zhuǎn)發(fā)的。而我認(rèn)為 HTTP/2 應(yīng)該是個(gè)不錯(cuò)的選擇,打算試一下。最終我花了一個(gè)小時(shí)實(shí)現(xiàn)了一個(gè)初步能用的版本,除開(kāi) node-http2,全部代碼不超過(guò) 200 行。代碼我放在了 github 上,有興趣的同學(xué)可以玩一下。

下面簡(jiǎn)單介紹它的原理,我畫(huà)了一張草圖:

 基于 HTTP/2 的 WEB 內(nèi)網(wǎng)穿透實(shí)現(xiàn)

最左側(cè)是最終用來(lái)訪問(wèn)服務(wù)的瀏覽器,它可能位于公網(wǎng),也可能位于其它內(nèi)網(wǎng);最右側(cè)是實(shí)際提供 WEB 服務(wù)的 HTTP Server,它位于內(nèi)網(wǎng)。顯然,左側(cè)瀏覽器沒(méi)辦法直接訪問(wèn)右側(cè) WEB 服務(wù),只能借助公網(wǎng)節(jié)點(diǎn)作為橋梁。中間的 pangolin 服務(wù)端運(yùn)行在公網(wǎng)節(jié)點(diǎn)上;Pangolin 客戶端運(yùn)行在與 WEB 服務(wù)同臺(tái)機(jī)器或者同一網(wǎng)段內(nèi)。

瀏覽器發(fā)起請(qǐng)求后,請(qǐng)求報(bào)文沿著綠色箭頭從左到右流動(dòng),每個(gè)節(jié)點(diǎn)都相當(dāng)于左側(cè)相鄰節(jié)點(diǎn)的 HTTP Server。***的問(wèn)題出現(xiàn)在 Pangolin 服務(wù)端和客戶端之間:客戶端位于內(nèi)網(wǎng),正常情況下 Pangolin 服務(wù)端連不上客戶端提供的 HTTP Server。

這個(gè)問(wèn)題我用了一個(gè)取巧的辦法解決:由于 Pangolin 服務(wù)端有公網(wǎng) IP,可以開(kāi)啟 TCP Server,客戶端可以通過(guò) IP 和約定的端口與服務(wù)端建立 TCP 連接。那么只要稍微改造一下 node-http2 的代碼,使它可以基于指定 socket 創(chuàng)建 HTTP/2 Server、發(fā)送 HTTP/2 Request,就可以打通所有節(jié)點(diǎn)了。這個(gè)問(wèn)題解決后,左側(cè)的請(qǐng)求可以順利到達(dá)右側(cè),響應(yīng)數(shù)據(jù)也可以沿著之前的連接逐級(jí)返回。

Pangolin 服務(wù)端和客戶端內(nèi)部之間使用 HTTP/2,可以大幅提高性能,降低程序復(fù)雜性;對(duì)外使用 HTTP/1.1,保證了與已有系統(tǒng)的兼容性。

為了實(shí)現(xiàn)內(nèi)網(wǎng)穿透,Pangolin 需要做以下準(zhǔn)備工作:

Pangolin 服務(wù)端開(kāi)啟 TCP Server;

Pangolin 客戶端啟動(dòng) TCP Client,與 Pangolin 服務(wù)端連接,得到 socket 長(zhǎng)連接;

Pangolin 客戶端基于這個(gè) socket 連接,開(kāi)啟 HTTP/2 Server;

Pangolin 服務(wù)端開(kāi)啟 HTTP/1.1 Server,等待瀏覽器來(lái)訪問(wèn);

實(shí)際的數(shù)據(jù)傳輸流程如下:

瀏覽器向 Pangolin 服務(wù)端發(fā)起請(qǐng)求(HTTP/1.1);

Pangolin 服務(wù)端基于已有 socket,向 Pangolin 客戶端發(fā)起請(qǐng)求(HTTP/2);

Pangolin 客戶端向內(nèi)網(wǎng) WEB 服務(wù)發(fā)起請(qǐng)求,得到響應(yīng)(HTTP/1.1);

Pangolin 客戶端基于已有 socket,將響應(yīng)返回給 Pangolin 服務(wù)端(HTTP/2);

Pangolin 服務(wù)端將響應(yīng)返回給瀏覽器(HTTP/1.1);

由于 Pangolin 客戶端采用了 HTTP 轉(zhuǎn)發(fā),而不是 TCP 隧道,所以可以輕松實(shí)現(xiàn) ngrok 那樣的管理界面,用來(lái)查看完整的 Request/Response 信息。目前我還只是簡(jiǎn)單地打印了請(qǐng)求日志。

HTTP/2 協(xié)議本身并沒(méi)有規(guī)定它必須基于 TLS 部署,沒(méi)有安全層的 HTTP/2 被稱之為 h2c(HTTP/2 Cleartext)。目前來(lái)看,所有瀏覽器都不打算支持 h2c。但如果一個(gè)系統(tǒng)的某些環(huán)節(jié)對(duì)安全沒(méi)有那么高的要求,或者已經(jīng)通過(guò)了其它方案確保了安全,部署 h2c 也是一個(gè)非常好的選擇。現(xiàn)在很多 HTTP/2 工具和類庫(kù)同時(shí)支持 h2 和 h2c,node-http2 也是如此。

實(shí)際上,我為了測(cè)試方便,在實(shí)現(xiàn) pangolin 時(shí)也選擇了 h2c。通過(guò) Wireshark 抓包可以看出,HTTP/2 層下面直接就是 TCP 層:

 基于 HTTP/2 的 WEB 內(nèi)網(wǎng)穿透實(shí)現(xiàn)

責(zé)任編輯:何妍 來(lái)源: Jerry Qu的小站
相關(guān)推薦

2024-04-30 09:10:55

HTTP2TCP內(nèi)網(wǎng)

2020-10-15 08:52:36

Frp內(nèi)網(wǎng)Web

2020-10-13 14:03:50

搭建ngrok服務(wù)

2020-09-03 08:03:52

內(nèi)網(wǎng)穿透

2024-10-12 20:56:19

ProxyChain

2024-11-25 16:25:23

內(nèi)網(wǎng)穿透網(wǎng)絡(luò)協(xié)議

2025-02-25 10:56:32

內(nèi)網(wǎng)穿透開(kāi)源桌面應(yīng)用程序

2019-06-12 09:02:20

2022-09-19 13:11:56

命令SSH內(nèi)網(wǎng)穿透

2019-02-28 08:44:19

內(nèi)網(wǎng)釘釘Web

2021-10-27 20:40:24

辦公

2021-11-02 10:40:51

內(nèi)網(wǎng)穿透代理工具Linux

2015-09-15 10:40:26

HTTP2 WEB 性能優(yōu)化

2015-09-15 10:46:29

2015-09-15 10:54:54

HTTP2 WEB 性能優(yōu)化

2024-03-13 08:03:02

2013-04-22 10:07:08

2025-04-29 10:28:25

2022-02-17 13:46:15

SSH命令內(nèi)網(wǎng)

2023-11-29 10:16:45

內(nèi)網(wǎng)開(kāi)源
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

男女无套免费网站| 一级视频在线观看| 日韩中文字幕国产| 亚洲成人免费在线| 性久久久久久| 亚洲瘦老头同性70tv| 91久久国产综合久久91猫猫| 男人j桶女人的网站| 综合一区中文字幕| 国产精品综合久久久久久| 欧美性做爰毛片| 国产一区二区免费| 精品88久久久久88久久久| 在线精品亚洲一区二区不卡| 国产三级一区二区三区| 成人av资源站| 亚洲在线视频| 亚洲精品字幕| 极品中文字幕一区| 99热国内精品| 林ゆな中文字幕一区二区| 北条麻妃在线| 二区三区在线| 一级片在线视频| 真不卡电影网| 国产中文字幕在线看| 亚洲欧洲成人| 午夜在线网站| 伊人网在线观看| 日本一本草久在线中文| 在线看的黄色网址| 久久av综合网| 中文字幕一区二区三区乱码 | 日韩电影免费一区| 欧美区国产区| 媚黑女一区二区| 免费久久99精品国产自在现线| 大片网站久久| 亚洲桃色综合影院| 你懂的视频欧美| 狂野欧美xxxx韩国少妇| 精品一区二区三区免费看| 国产亚洲人成a在线v网站 | 国产天堂在线播放视频| 国产免费a∨片在线观看不卡| 日韩av地址| 伦理在线一区| 日韩三级一区| 不卡中文字幕| 六月丁香婷婷久久| 国产日韩欧美亚洲| 在线视频一区二区免费| 亚洲国产日韩欧美在线动漫| 久久精品中文字幕免费mv| 国产欧美日韩精品丝袜高跟鞋| 国产欧美一区二区三区不卡高清| 欧美与动交zoz0z| 国产午夜视频在线观看| 在线免费观看视频黄| 国产在线资源一区| 久久91亚洲人成电影网站| 免费91在线视频| 精品视频在线视频| 亚洲日本一区二区| 精品一区二区三区免费播放| 偷拍精品福利视频导航| 99久久久国产精品免费调教网站 | 亚洲天堂av在线免费| 日韩欧美在线免费| 日日夜夜免费精品| 成人激情动漫在线观看| 亚洲成人自拍一区| 久久天天躁夜夜躁狠狠躁2022| 欧美激情久久久久久| 国产精品99久久久久久久久| av日韩免费电影| 神马影院午夜我不卡| 日韩高清在线播放| 日本人妻伦在线中文字幕| 中文字幕www| 麻豆传媒在线免费看| 日韩视频一二区| 国产日韩欧美三区| 中文字幕一区二区三区乱码在线| 久久99久久精品| 久久一区二区三区四区五区| 三级不卡在线观看| 好看不卡的中文字幕| 国产麻豆成人传媒免费观看| 国产精品传媒入口麻豆| 日韩毛片在线观看| 91成人免费观看网站| 蜜桃视频一区二区在线观看| 写真片福利在线播放| 久九九久频精品短视频| 欧美成人久久| 亚洲高清免费观看高清完整版在线观看 | 精品视频二区| 七七成人影院| 激情校园亚洲图片| 手机在线观看av| 亚洲一区日本| 欧美亚洲综合一区| 欧美精品在线免费播放| 国产精品推荐精品| 爱草在线视频| 欧美极度另类| 秋霞国产午夜精品免费视频| 精品日本高清在线播放| 超在线视频97| 国产免费黄色av| **国产精品| 香蕉成人伊视频在线观看| 欧美大奶子在线| 亚洲一区3d动漫同人无遮挡| lutube成人福利在线观看| 美女福利一区| 99视频有精品| 伊人久久久久久久久久| 尤物国产精品| 制服丝袜专区在线| 91在线观看地址| 欧美在线观看一区二区三区| 久久精品无码中文字幕| av在线二区| 久操精品在线| 亚洲高清一区二区三区| 亚洲淫片在线视频| 在线免费福利| 亚洲高清自拍| 亚洲免费中文字幕| 黄色录像1级片| 影视先锋久久| 欧美国产日韩亚洲一区| 欧美黑人性生活视频| 欧美牲交a欧美牲交aⅴ免费真 | 男女视频在线| 久久av老司机精品网站导航| 欧美日本一区二区| 精品国产一区二区三区日日嗨| av网址在线看| 国产乱淫av一区二区三区| 亚洲精品wwwww| 国产网站免费在线观看| 亚洲一区二区电影| 午夜国产精品影院在线观看| 天天干天天操天天干天天操| 国产欧美久久一区二区三区| 亚洲免费在线视频一区 二区| 97超视频免费观看| 污网站在线观看视频| 国产欧美69| 亚洲香蕉成视频在线观看| 中文字幕在线导航| 欧美91大片| 亚洲人成网站免费播放| 日本一区二区三区电影| 亚洲欧美日韩一区二区三区在线观看| 国产91九色视频| 91九色在线看| 久久综合一区二区| 久久国产精品偷| 成人免费视频| 91麻豆.com| 裸体丰满少妇做受久久99精品| av综合网页| 一区二区欧美久久| 欧美挠脚心网站| 国产精品久久| 这里只有精品视频在线观看| 亚洲最新免费视频| 精品亚洲免a| 欧美日韩视频一区二区| 成人av资源网| 在线视频资源站| 国产丝袜一区| 中文字幕亚洲一区| 性欧美videos高清hd4k| 国产精品短视频| 福利视频一二区| 天堂资源在线中文精品| 波多野结衣精品久久| 51vv免费精品视频一区二区| 日日摸夜夜添一区| 欧美一区观看| 欧美一区=区三区| 亚洲另类欧美自拍| 成人av观看| 日韩在线观看免费全| 97久久网站| 最近2019中文免费高清视频观看www99 | 福利一区二区在线| 麻豆中文字幕在线观看| 欧美成人tv| 麻豆传媒一区二区| 老牛嫩草一区二区三区日本 | 欧美黄色免费网站| 青青草成人影院| 国产日韩三区| 国产一区在线看|