自1990年代初以來(lái),HTTP協(xié)議一直是整個(gè)Internet上數(shù)據(jù)通信的基礎(chǔ)。隨著前端開發(fā)中新技術(shù)的出現(xiàn),HTTP已無(wú)意識(shí)地發(fā)展到HTTP/3。對(duì)于前端開發(fā)人員而言,保持改進(jìn)和專業(yè)競(jìng)爭(zhēng)力的核心事情,是跟隨技術(shù)趨勢(shì)的發(fā)展。在HTTP/3中,將放棄TCP協(xié)議,改為使用基于UDP協(xié)議的QUIC協(xié)議實(shí)現(xiàn)。實(shí)際上,HTTP/3的前身是HTTP over QUIC,QUIC是Google開發(fā)的快速UDP網(wǎng)絡(luò)連接的縮寫,該協(xié)議旨在取代TCP協(xié)議,從而使網(wǎng)頁(yè)傳輸更快,更穩(wěn)定,更安全。本文為大家總結(jié)并分析了HTTP/3的發(fā)展歷程和原理。
1、HTTP/3的發(fā)展歷程
(1)HTTP/1.1出現(xiàn)
隨著網(wǎng)絡(luò)技術(shù)的不斷進(jìn)步,早在1999年設(shè)計(jì)的HTTP/1.1不能滿足現(xiàn)實(shí)技術(shù)的需求,所以 2009基于TCP的SPDY被Google 設(shè)計(jì)了出來(lái)。
(2)SPDY是HTTP/2的前身
再后來(lái)SPDY的開發(fā)組推動(dòng)SPDY成為正式標(biāo)準(zhǔn),但是最終沒能通過。不過曾經(jīng)設(shè)計(jì)過SPDY的開發(fā)組,在后來(lái)全程參與HTTP/2的制定過程,因此在參考了SPDY的設(shè)計(jì)下,HTTP/2出現(xiàn)了。可以說SPDY就是HTTP/2的前身,因此無(wú)論是SPDY還是HTTP/2,都是基于TCP的開發(fā)出來(lái)的。
(3)HTTP/3的出現(xiàn)
但是,我們都知道TCP與UDP相比,效率上存在天然的缺陷,所以在2013年的時(shí)候,Google開發(fā)團(tuán)隊(duì)又了基于UDP的名為QUIC的傳輸層協(xié)議,QUIC英文全名叫做Quick UDP Internet Connections。Google開發(fā)團(tuán)隊(duì)希望它能替代TCP,幫助網(wǎng)頁(yè)傳輸可以更加高效。再后來(lái)經(jīng)過提議,互聯(lián)網(wǎng)工程任務(wù)組正式將基于 QUIC協(xié)議的HTTP(HTTP over QUIC)重命名為HTTP/3。這就是HTTP/3的由來(lái)和出現(xiàn)的原因。
2、HTTP/3的原理
(1) QUIC協(xié)議
在了解HTTP/3的原理之前,我們要先了解QUIC協(xié)議。與TCP一直是傳輸層中舉足輕重的協(xié)議不同,UDP一直默默無(wú)聞,長(zhǎng)期以來(lái)UDP給人的印象就是一個(gè)很快但不可靠的傳輸層協(xié)議。但有時(shí)候從另一個(gè)角度看,缺點(diǎn)可能也是優(yōu)點(diǎn)。QUIC(Quick UDP Internet Connections,快速UDP網(wǎng)絡(luò)連接)基于UDP,正是看中了UDP的速度與效率。同時(shí)QUIC也整合了TCP、TLS和HTTP/2的優(yōu)點(diǎn),并加以優(yōu)化。
(2)QUIC和HTTP/3的關(guān)系
QUIC是用來(lái)替代TCP、SSL/TLS 的傳輸層協(xié)議,在傳輸層之上還有應(yīng)用層,我們熟知的應(yīng)用層協(xié)議有HTTP、FTP、IMAP等,這些協(xié)議理論上都可以運(yùn)行在QUIC之上,其中運(yùn)行在QUIC之上的HTTP協(xié)議被稱為HTTP/3,這就是”HTTP over QUIC即HTTP/3“的含義。
(3)HTTP/3的核心
HTTP/3功能的核心是圍繞著底層的QUIC協(xié)議來(lái)實(shí)現(xiàn)的。TCP可能會(huì)間歇性地掛起數(shù)據(jù)傳輸,它不支持流級(jí)復(fù)用,還會(huì)產(chǎn)生冗余通信,QUIC協(xié)議在以下設(shè)計(jì)選擇的基礎(chǔ)上,通過引入一些底層傳輸機(jī)制的改變,解決了這些問題。通過在QUIC之上構(gòu)建基于HTTP/3的應(yīng)用層,您可以獲得增強(qiáng)型傳輸機(jī)制的所有優(yōu)勢(shì),同時(shí)保留HTTP/2的語(yǔ)法和語(yǔ)義。除此之外,HTTP/3還使用了一種新的HTTP頭壓縮機(jī)制,稱為QPACK,是對(duì)HTTP/2中使用的HPACK的增強(qiáng)。
看完了HTTP/3的發(fā)展歷程和原理的介紹,相信大家對(duì)于HTTP/3有了更進(jìn)一步的認(rèn)識(shí)。更多關(guān)于HTTP/3的信息,請(qǐng)繼續(xù)關(guān)注中培偉業(yè)吧。