網(wǎng)絡(luò)編程懶人入門(mén)(十二):快速讀懂Http/3協(xié)議,一篇就夠!
時(shí)間:2023-07-18 18:42:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-07-18 18:42:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)
網(wǎng)絡(luò)編程懶人入門(mén)(十二):快速讀懂Http/3協(xié)議,一篇就夠?。?blockquote data-first-child data-pid="FwwqYTB2">本文中文譯文由作者“ably.io”發(fā)布于公眾號(hào)“高可用架構(gòu)”,譯文原題:《深入解讀HTTP3的原理及應(yīng)用》、英文原題:《HTTP/3 deep dive》(文末有譯文和原文鏈接),即時(shí)通訊網(wǎng)收錄時(shí)有少許改動(dòng),感謝原作者和譯者的分享。
1、引言
HTTP3是HTTP協(xié)議的最新版本。從誕生之初,HTTP就是交換超文本文檔的首選應(yīng)用層協(xié)議。多年來(lái),為了跟上互聯(lián)網(wǎng)的發(fā)展,以及WWW上交換的內(nèi)容種類增加,HTTP進(jìn)行了幾次重大升級(jí),而HTTP/3就是目前的最新版本。
本文將從HTTP/3的基本概念、技術(shù)原理、應(yīng)用場(chǎng)景和如何使用它等方面進(jìn)行介紹,確保在有限的篇幅內(nèi),能讓你通俗地理解它。
本文是系列文章中的第12篇,本系列文章的大綱如下:《網(wǎng)絡(luò)編程懶人入門(mén)(一):快速理解網(wǎng)絡(luò)通信協(xié)議(上篇)》
《網(wǎng)絡(luò)編程懶人入門(mén)(二):快速理解網(wǎng)絡(luò)通信協(xié)議(下篇)》
《網(wǎng)絡(luò)編程懶人入門(mén)(三):快速理解TCP協(xié)議一篇就夠》
《網(wǎng)絡(luò)編程懶人入門(mén)(四):快速理解TCP和UDP的差異》
《網(wǎng)絡(luò)編程懶人入門(mén)(五):快速理解為什么說(shuō)UDP有時(shí)比TCP更有優(yōu)勢(shì)》
《網(wǎng)絡(luò)編程懶人入門(mén)(六):史上最通俗的集線器、交換機(jī)、路由器功能原理入門(mén)》
《網(wǎng)絡(luò)編程懶人入門(mén)(七):深入淺出,全面理解HTTP協(xié)議》
《網(wǎng)絡(luò)編程懶人入門(mén)(八):手把手教你寫(xiě)基于TCP的Socket長(zhǎng)連接》
《網(wǎng)絡(luò)編程懶人入門(mén)(九):通俗講解,有了IP地址,為何還要用MAC地址?》
《網(wǎng)絡(luò)編程懶人入門(mén)(十):一泡尿的時(shí)間,快速讀懂QUIC協(xié)議》
《網(wǎng)絡(luò)編程懶人入門(mén)(十一):一文讀懂什么是IPv6》
《網(wǎng)絡(luò)編程懶人入門(mén)(十二):快速讀懂Http/3協(xié)議,一篇就夠!》(本文)
學(xué)習(xí)交流:- 即時(shí)通訊/推送技術(shù)開(kāi)發(fā)交流5群:215477170 [推薦]
- 移動(dòng)端IM開(kāi)發(fā)入門(mén)文章:《新手入門(mén)一篇就夠:從零開(kāi)發(fā)移動(dòng)端IM》
歡迎關(guān)注“即時(shí)通訊技術(shù)圈”,更多好文會(huì)同步發(fā)布在公眾號(hào):(本文同步發(fā)布于:
http://www.52im.net/thread-3020-1-1.html)
2、相關(guān)文章
《從HTTP/0.9到HTTP/2:一文讀懂HTTP協(xié)議的歷史演變和設(shè)計(jì)思路》
《網(wǎng)絡(luò)編程懶人入門(mén)(七):深入淺出,全面理解HTTP協(xié)議》
《腦殘式網(wǎng)絡(luò)編程入門(mén)(三):HTTP協(xié)議必知必會(huì)的一些知識(shí)》
《網(wǎng)絡(luò)編程懶人入門(mén)(十):一泡尿的時(shí)間,快速讀懂QUIC協(xié)議》(推薦)
《技術(shù)掃盲:新一代基于UDP的低延時(shí)網(wǎng)絡(luò)傳輸層協(xié)議——QUIC詳解》(推薦)
3、HTTP協(xié)議的演進(jìn)史
在萬(wàn)維網(wǎng)誕生之時(shí),萬(wàn)維網(wǎng)僅僅是一群交換超文本文件的計(jì)算機(jī)。在計(jì)算機(jī)之間交換文件是一個(gè)簡(jiǎn)單的程序,包括請(qǐng)求和響應(yīng)。在此基礎(chǔ)上設(shè)計(jì)了一個(gè)簡(jiǎn)單的基于文本的協(xié)議。HTTP(超文本傳輸協(xié)議)應(yīng)運(yùn)而生。后來(lái),它被起草成了一個(gè)標(biāo)準(zhǔn)化的IETF協(xié)議,定義在RFC 1945中,也被稱為HTTP/1.0。
多年來(lái),HTTP從HTTP/1.0發(fā)展到HTTP/1.1,再到HTTP/2。在每一次迭代中,協(xié)議都增加了新的功能,以處理大量的需求,如應(yīng)用層需求、安全考慮、會(huì)話處理和媒體類型等。要深入了解HTTP/2及其演進(jìn)史,可詳讀《從HTTP/0.9到HTTP/2:一文讀懂HTTP協(xié)議的歷史演變和設(shè)計(jì)思路》。
盡管經(jīng)歷了幾次修訂,但HTTP的底層傳輸機(jī)制基本沒(méi)有變化。但是,隨著互聯(lián)網(wǎng)流量的激增,在移動(dòng)電話的推動(dòng)下,HTTP的傳輸機(jī)制在保證網(wǎng)頁(yè)瀏覽體驗(yàn)的流暢性方面變得問(wèn)題重重。
HTTP/3是為了處理HTTP/2.0的傳輸相關(guān)問(wèn)題而生的,可以在各種設(shè)備上更快地訪問(wèn)Web。它基于一個(gè)新的傳輸層協(xié)議,稱為QUIC(Quick UDP Internet Protocol),在UDP之上工作。這一選擇與之前版本的HTTP截然不同,之前版本都是基于TCP。TCP是一個(gè)比UDP更可靠的協(xié)議,那么為什么要在UDP之上重新設(shè)計(jì)HTTP的傳輸層呢?
讓我們來(lái)看看在TCP上運(yùn)行HTTP的局限性,并深入了解一下基于QUIC協(xié)議的HTTP/3的設(shè)計(jì)思想。
4、什么是HTTP/3
當(dāng)IETF正式標(biāo)準(zhǔn)化HTTP/2時(shí),Google正在獨(dú)立構(gòu)建一個(gè)新的傳輸協(xié)議,名為gQUIC。它后來(lái)成為新互聯(lián)網(wǎng)草案,并被命名為QUIC。gQUIC最初的實(shí)驗(yàn)證明,在網(wǎng)絡(luò)條件較差的情況下,gQUIC在增強(qiáng)網(wǎng)頁(yè)瀏覽體驗(yàn)方面的效果非常好。因此,gQUIC的發(fā)展勢(shì)頭越來(lái)越好,IETF的大多數(shù)成員贊成建立一個(gè)在QUIC上運(yùn)行的HTTP新規(guī)范。這個(gè)新的倡議被稱為HTTP/3,以區(qū)別于當(dāng)前的HTTP/2標(biāo)準(zhǔn)。
從語(yǔ)法和語(yǔ)義上看,HTTP/3與HTTP/2相似。HTTP/3遵循相同的請(qǐng)求和響應(yīng)消息交換順序,其數(shù)據(jù)格式包含方法、標(biāo)題、狀態(tài)碼和body。然而,HTTP/3的顯著的偏差在于協(xié)議層在UDP之上的堆疊順序。
有關(guān)QUIC的更多資料,可以看看《網(wǎng)絡(luò)編程懶人入門(mén)(十):一泡尿的時(shí)間,快速讀懂QUIC協(xié)議》、《技術(shù)掃盲:新一代基于UDP的低延時(shí)網(wǎng)絡(luò)傳輸層協(xié)議——QUIC詳解》。
5、HTTP/3 是如何工作的?
HTTP/3功能的核心是圍繞著底層的QUIC協(xié)議來(lái)實(shí)現(xiàn)的。在討論QUIC和UDP之前,我們有必要先列出TCP的某些限制,這也是導(dǎo)致QUIC發(fā)展的原因。
5.1 TCP可能會(huì)間歇性地掛起數(shù)據(jù)傳輸
如果一個(gè)序列號(hào)較低的數(shù)據(jù)段還沒(méi)有接收到,即使其他序列號(hào)較高的段已經(jīng)接收到,TCP的接收機(jī)滑動(dòng)窗口也不會(huì)繼續(xù)處理。這將導(dǎo)致TCP流瞬間掛起,在更糟糕的情況下,即使所有的段中有一個(gè)沒(méi)有收到,也會(huì)導(dǎo)致關(guān)閉連接。這個(gè)問(wèn)題被稱為T(mén)CP流的行頭阻塞(HoL)。
5.2 TCP不支持流級(jí)復(fù)用
雖然TCP確實(shí)允許在應(yīng)用層之間建立多個(gè)邏輯連接,但它不允許在一個(gè)TCP流中復(fù)用數(shù)據(jù)包。使用HTTP/2時(shí),瀏覽器只能與服務(wù)器打開(kāi)一個(gè)TCP連接,并使用同一個(gè)連接來(lái)請(qǐng)求多個(gè)對(duì)象,如CSS、JavaScript等文件。在接收這些對(duì)象的同時(shí),TCP會(huì)將所有對(duì)象序列化在同一個(gè)流中。因此,它不知道TCP段的對(duì)象級(jí)分區(qū)。
5.3 TCP會(huì)產(chǎn)生冗余通信
TCP連接握手會(huì)有冗余的消息交換序列,即使是與已知主機(jī)建立的連接也是如此。
QUIC協(xié)議在以下設(shè)計(jì)選擇的基礎(chǔ)上,通過(guò)引入一些底層傳輸機(jī)制的改變,解決了這些問(wèn)題。
1)選擇UDP作為底層傳輸層協(xié)議:在TCP之上建立新的傳輸機(jī)制,將繼承TCP的上述所有缺點(diǎn)。因此,UDP是一個(gè)明智的選擇。此外,QUIC是在用戶層構(gòu)建的,所以不需要每次協(xié)議升級(jí)時(shí)進(jìn)行內(nèi)核修改。
2)流復(fù)用和流控:QUIC引入了連接上的多路流復(fù)用的概念。QUIC通過(guò)設(shè)計(jì)實(shí)現(xiàn)了單獨(dú)的、針對(duì)每個(gè)流的流控,解決了整個(gè)連接的行頭阻塞問(wèn)題。
3)靈活的擁塞控制機(jī)制:TCP的擁塞控制機(jī)制是剛性的。該協(xié)議每次檢測(cè)到擁塞時(shí),都會(huì)將擁塞窗口大小減少一半。相比之下,QUIC的擁塞控制設(shè)計(jì)得更加靈活,可以更有效地利用可用的網(wǎng)絡(luò)帶寬,從而獲得更好的吞吐量。
4)更好的錯(cuò)誤處理能力:QUIC使用增強(qiáng)的丟失恢復(fù)機(jī)制和轉(zhuǎn)發(fā)糾錯(cuò)功能,以更好地處理錯(cuò)誤數(shù)據(jù)包。該功能對(duì)于那些只能通過(guò)緩慢的無(wú)線網(wǎng)絡(luò)訪問(wèn)互聯(lián)網(wǎng)的用戶來(lái)說(shuō)是一個(gè)福音,因?yàn)檫@些網(wǎng)絡(luò)用戶在傳輸過(guò)程中經(jīng)常出現(xiàn)高錯(cuò)誤率。
5)更快的握手:QUIC使用相同的TLS模塊進(jìn)行安全連接。然而,與TCP不同的是,QUIC的握手機(jī)制經(jīng)過(guò)優(yōu)化,避免了每次兩個(gè)已知的對(duì)等者之間建立通信時(shí)的冗余協(xié)議交換。
通過(guò)在QUIC之上構(gòu)建基于HTTP/3的應(yīng)用層,您可以獲得增強(qiáng)型傳輸機(jī)制的所有優(yōu)勢(shì),同時(shí)保留HTTP/2的語(yǔ)法和語(yǔ)義。但是,你也必須注意到,HTTP/2不能直接與QUIC集成,因?yàn)閺膽?yīng)用到傳輸?shù)牡讓訋成涫遣患嫒莸?。因此,IETF的HTTP工作組建議將HTTP/3作為新的HTTP版本,并根據(jù)QUIC協(xié)議的幀格式要求修改了幀映射。
除此之外,HTTP/3還使用了一種新的HTTP頭壓縮機(jī)制,稱為QPACK,是對(duì)HTTP/2中使用的HPACK的增強(qiáng)。在QPACK下,HTTP頭可以在不同的QUIC流中不按順序到達(dá)。與HTTP/2中的TCP確保數(shù)據(jù)包的按順序傳遞不同,QUIC流是不按順序傳遞的,在不同的流中可能包含不同的HTTP頭。因此,QPACK使用查找表機(jī)制對(duì)報(bào)頭進(jìn)行編碼和解碼。
6、為什么HTTP/3很重要?
TCP已經(jīng)有40多年的歷史了。它在1981年通過(guò)RFC 793從而標(biāo)準(zhǔn)化。多年來(lái),它經(jīng)歷了多次更新,是一個(gè)非常強(qiáng)大的傳輸協(xié)議,可以支持互聯(lián)網(wǎng)流量的增長(zhǎng)。然而,由于設(shè)計(jì)上的原因,TCP從來(lái)就不適合處理有損無(wú)線環(huán)境中的數(shù)據(jù)傳輸。在互聯(lián)網(wǎng)的早期,有線網(wǎng)絡(luò)將網(wǎng)絡(luò)中的每一臺(tái)計(jì)算機(jī)連接起來(lái)。
現(xiàn)在,隨著智能手機(jī)和便攜式設(shè)備的數(shù)量超過(guò)臺(tái)式機(jī)和筆記本電腦的數(shù)量,超過(guò)50%的互聯(lián)網(wǎng)流量已經(jīng)通過(guò)無(wú)線傳輸。這種趨勢(shì)給整體的網(wǎng)絡(luò)瀏覽體驗(yàn)帶來(lái)了問(wèn)題,其中最重要的是在無(wú)線覆蓋率不足的情況下,TCP中的行頭阻塞(關(guān)于TCP在移動(dòng)網(wǎng)絡(luò)下的不足,請(qǐng)閱讀《5G時(shí)代已經(jīng)到來(lái),TCP/IP老矣,尚能飯否?》)。
Google的一些初步實(shí)驗(yàn)證明,QUIC作為Google部分熱門(mén)服務(wù)的底層傳輸協(xié)議,極大地提高了速度和用戶體驗(yàn)。部署QUIC作為YouTube視頻的底層傳輸協(xié)議,導(dǎo)致YouTube視頻流的緩沖率下降了30%,這直接影響了用戶的視頻觀看體驗(yàn)。在顯示谷歌搜索結(jié)果時(shí),也有類似的改善。
網(wǎng)絡(luò)條件較差的情況下提升非常明顯,這促使谷歌更加積極地完善該協(xié)議,并最終向IETF提出標(biāo)準(zhǔn)化。
由于這些早期的試驗(yàn)所帶來(lái)的所有改進(jìn),QUIC已經(jīng)成為帶領(lǐng)萬(wàn)維網(wǎng)走向未來(lái)的重要因素。在QUIC的支持下,HTTP從HTTP/2到HTTP/3的改頭換面,朝著這個(gè)方向合理地邁出了一步。
7、HTTP/3的最佳用例
HTTP/3將改善我們上網(wǎng)的體驗(yàn),特別是在仍無(wú)法使用高速無(wú)線網(wǎng)絡(luò)的地區(qū)。盡管HTTP/2已經(jīng)解決了一部分問(wèn)題,然而HTTP/3更進(jìn)一步。
7.1 物聯(lián)網(wǎng)(IoT)
HTTP可能不是物聯(lián)網(wǎng)的首選協(xié)議,但在某些情況下,基于HTTP的通信非常適合特定的應(yīng)用。HTTP/3可以解決從傳感器收集數(shù)據(jù)的移動(dòng)電話的無(wú)線連接損耗問(wèn)題。這個(gè)問(wèn)題同樣適用于安裝在車輛或可移動(dòng)資產(chǎn)上的獨(dú)立IoT設(shè)備。通過(guò)HTTP來(lái)訪問(wèn)這些設(shè)備,可以更加可靠。
7.2 大數(shù)據(jù)
全球各地的企業(yè)都在覺(jué)醒,意識(shí)到從多個(gè)部門(mén)收集數(shù)據(jù)的潛力,并將其整合成更大的信息共享API,供內(nèi)部和外部受眾共享。這些API也為數(shù)據(jù)的貨幣化鋪平了道路,通過(guò)托管這些數(shù)據(jù)作為流API服務(wù)可以實(shí)現(xiàn)數(shù)據(jù)的貨幣化。隨著時(shí)間的推移,這些服務(wù)會(huì)吐出海量的數(shù)據(jù)。通過(guò)HTTP/3托管的流API將使它們比HTTP/2更健壯、更有彈性。
7.3 Web VR
隨著瀏覽器能力的提升,內(nèi)容格局正在快速變化。其中一個(gè)領(lǐng)域就是基于網(wǎng)絡(luò)的VR。雖然還處于起步階段,但有很多的用例可以讓VR在加強(qiáng)協(xié)作方面發(fā)揮關(guān)鍵作用。網(wǎng)絡(luò)在促進(jìn)VR互動(dòng)方面占據(jù)了核心位置。VR應(yīng)用需要更多的帶寬來(lái)渲染虛擬場(chǎng)景中的復(fù)雜細(xì)節(jié),因此遷移到HTTP/3會(huì)大有收獲。
8、HTTP/3的局限性
過(guò)渡到HTTP/3不僅涉及到應(yīng)用層的變化,還涉及到底層傳輸層的變化。因此,與它的前身HTTP/2相比,HTTP/3的采用更具挑戰(zhàn)性,因?yàn)楹笳咧恍枰淖儜?yīng)用層。傳輸層承受著網(wǎng)絡(luò)中的大量中間層審查。這些中間層,如防火墻、代理、NAT設(shè)備等會(huì)進(jìn)行大量的深度數(shù)據(jù)包檢查,以滿足其功能需求。因此,新的傳輸機(jī)制的引入對(duì)IT基礎(chǔ)設(shè)施和運(yùn)維團(tuán)隊(duì)來(lái)說(shuō)有一些影響。
然而,HTTP/3被廣泛采用的另一個(gè)問(wèn)題是,它是基于QUIC的,在UDP上運(yùn)行。大多數(shù)的Web流量,以及IETF定義的知名服務(wù)都是在TCP之上運(yùn)行的。這也是為什么長(zhǎng)時(shí)間運(yùn)行HTTP/3的UDP會(huì)話會(huì)被防火墻的默認(rèn)數(shù)據(jù)包過(guò)濾策略所影響的原因。
隨著IETF正在進(jìn)行的標(biāo)準(zhǔn)化工作,這些問(wèn)題最終都會(huì)得到解決。此外,考慮到Google在早期QUIC實(shí)驗(yàn)所顯示的積極結(jié)果,人們對(duì)HTTP/3的支持是壓倒性的,這將最終迫使中間層廠商標(biāo)準(zhǔn)化。
針對(duì)受限的IoT設(shè)備,HTTP/3由于過(guò)于繁瑣從而無(wú)法采用。許多IoT應(yīng)用部署的設(shè)備的外形尺寸非常小。因此,它們的RAM和CPU功率都是有限的。為了使設(shè)備在電池功率、低比特率和有損連接等限制條件下高效運(yùn)行,必須執(zhí)行此要求。HTTP/3在現(xiàn)有的UDP之上,以QUIC的形式在傳輸層處理,增加了HTTP/3在整個(gè)協(xié)議棧中的占用空間。這使得HTTP/3較為笨重,不適合那些IoT設(shè)備。但這種情況很少出現(xiàn),而且存在專門(mén)的協(xié)議,這就避免了直接在此類設(shè)備上支持HTTP的需要。此外,還有以物聯(lián)網(wǎng)為核心的協(xié)議,如MQTT。
9、開(kāi)始使用HTTP/3
IETF的HTTP工作組正致力于在2020年后期發(fā)布HTTP/3。因此它還沒(méi)有被NGINX和Apache等主流web服務(wù)器正式支持。不過(guò),有幾個(gè)lib可以用來(lái)實(shí)驗(yàn)這個(gè)新協(xié)議,也提供了非官方的補(bǔ)丁。
以下是支持HTTP/3和QUIC傳輸lib的列表。請(qǐng)注意,這些實(shí)現(xiàn)都是基于互聯(lián)網(wǎng)標(biāo)準(zhǔn)草案某一個(gè)版本,而這個(gè)版本很可能會(huì)被更高的版本所取代,最終的標(biāo)準(zhǔn)會(huì)在RFC中發(fā)布。
1)Quiche :Quiche提供了通過(guò)QUIC協(xié)議發(fā)送和接收數(shù)據(jù)包的底層編程接口。它還支持HTTP/3模塊,通過(guò)其QUIC協(xié)議實(shí)現(xiàn)發(fā)送HTTP數(shù)據(jù)包。除此之外,它還為NGINX服務(wù)器提供了一個(gè)非官方的補(bǔ)丁,可以安裝和托管一個(gè)能夠運(yùn)行HTTP/3的Web服務(wù)器。除此以外,還提供了額外的程序來(lái)支持Android和iOS移動(dòng)應(yīng)用上使用HTTP/3。
2)Aioquic:Aioquic是QUIC的python實(shí)現(xiàn)。它還內(nèi)置HTTP/3的測(cè)試服務(wù)器和客戶端庫(kù)。Aioquic建立在asyncio模塊之上,asyncio模塊是Python的標(biāo)準(zhǔn)異步I/O框架。
3)Neqo:Neqo 是 Mozilla 使用 Rust 實(shí)現(xiàn) QUIC 和 HTTP/3。
如果你想嘗試QUIC,請(qǐng)查看這個(gè)由QUIC工作組維護(hù)的QUIC協(xié)議的開(kāi)源實(shí)現(xiàn)鏈接:
https://github.com/quicwg/base-drafts/wiki/Implementations(本文英文原文鏈接:點(diǎn)此進(jìn)入、中文譯文鏈接:點(diǎn)此進(jìn)入)
附錄:更多有關(guān)HTTP協(xié)議的文章
《網(wǎng)絡(luò)編程懶人入門(mén)(七):深入淺出,全面理解HTTP協(xié)議》
《技術(shù)掃盲:新一代基于UDP的低延時(shí)網(wǎng)絡(luò)傳輸層協(xié)議——QUIC詳解》
《讓互聯(lián)網(wǎng)更快:新一代QUIC協(xié)議在騰訊的技術(shù)實(shí)踐分享》
《從HTTP/0.9到HTTP/2:一文讀懂HTTP協(xié)議的歷史演變和設(shè)計(jì)思路》
《腦殘式網(wǎng)絡(luò)編程入門(mén)(三):HTTP協(xié)議必知必會(huì)的一些知識(shí)》
《腦殘式網(wǎng)絡(luò)編程入門(mén)(四):快速理解HTTP/2的服務(wù)器推送(Server Push)》
《Comet技術(shù)詳解:基于HTTP長(zhǎng)連接的Web端實(shí)時(shí)通信技術(shù)》
《WebSocket詳解(四):刨根問(wèn)底HTTP與WebSocket的關(guān)系(上篇)》
《WebSocket詳解(五):刨根問(wèn)底HTTP與WebSocket的關(guān)系(下篇)》
《快速理解高性能HTTP服務(wù)端的負(fù)載均衡技術(shù)原理》
《一分鐘理解 HTTPS 到底解決了什么問(wèn)題》
《一篇讀懂HTTPS:加密原理、安全邏輯、數(shù)字證書(shū)等》
《即時(shí)通訊安全篇(八):你知道,HTTPS用的是對(duì)稱加密還是非對(duì)稱加密?》
《IM開(kāi)發(fā)基礎(chǔ)知識(shí)補(bǔ)課(四):正確理解HTTP短連接中的Cookie、Session和Token》
《即時(shí)通訊安全篇(七):如果這樣來(lái)理解HTTPS原理,一篇就夠了》
《一分鐘理解 HTTPS 到底解決了什么問(wèn)題》
《一篇讀懂HTTPS:加密原理、安全邏輯、數(shù)字證書(shū)等》
《小白必讀:閑話HTTP短連接中的Session和Token》
《IM開(kāi)發(fā)基礎(chǔ)知識(shí)補(bǔ)課:正確理解前置HTTP SSO單點(diǎn)登錄接口的原理》
《基于APNs最新HTTP/2接口實(shí)現(xiàn)iOS的高性能消息推送(服務(wù)端篇)》
《全面了解移動(dòng)端DNS域名劫持等雜癥:原理、根源、HttpDNS解決方案等》
《美圖App的移動(dòng)端DNS優(yōu)化實(shí)踐:HTTPS請(qǐng)求耗時(shí)減小近半》
《HTTPS時(shí)代已來(lái),打算更新你的HTTP服務(wù)了嗎?》
《移動(dòng)端網(wǎng)絡(luò)優(yōu)化之HTTP請(qǐng)求的DNS優(yōu)化》
(本文同步發(fā)布于:
http://www.52im.net/thread-3020-1-1.html)
關(guān)鍵詞:協(xié)議,入門(mén),網(wǎng)絡(luò)