中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HTTP3的簡單介紹

發布時間:2021-08-27 20:54:45 來源:億速云 閱讀:151 作者:chen 欄目:開發技術

本篇內容介紹了“HTTP3的簡單介紹”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

目錄
  • 簡介

  • HTTP成長介紹

  • 不同HTTP協議解決的問題

  • HTTP3和QUIC

    • TLS1.3

    • 解決HoL阻塞

    • 連接的遷移


簡介

很多小伙伴可能還沉浸在HTTP1.1的世界無法自拔,但是時代的洪流已經帶領我們來到了HTTP3的世界了。是的,你在橋上看風景,而橋邊的房子上有人正在看你。

為了不被時代所拋棄,今天給大家講解一下HTTP3的新特性。

HTTP成長介紹

HTTP的全名叫做超文本傳輸協議,是萬維網所基于的應用層傳輸協議。最初的版本是HTTP 0.9,是在80年的后期產生的,后面在1996年升級到了1.0.

但是HTTP1.0滿足不了日益增長的物質文化需求和對美好世界的向往。所以在1997年出現了HTTP1.1,隨后到2014年,HTTP1.1都一直都在更新。

然后到了2015年,為了適應快速發送的web應用和現代瀏覽器的需求,在Google的SPDY項目基礎上發展出了新的HTTP2協議。

又過了4年,在2019年,Google又開發出了一個新的協議標準QUIC協議,它就是HTTP3的基石,其目的是為了提高用戶與網站和API交互的速度和安全性。

不同HTTP協議解決的問題

不同HTTP協議解決的問題也是不同的,HTTP1.1有什么問題呢?

1.因為HTTP1.1一個連接中數據是順序傳輸的,所以會有Head-of-line Blocking的問題,如果前面是一個大的數據包,則會導致后續數據包的阻塞。

2.HTTP1.1無法對請求頭和cookie進行壓縮,所以傳輸效率會比較低。

3.為了保證緩沖區不會溢出,HTTP1.1有一個TCP慢啟動的功能,作為擁塞控制措施,協議反復探測網絡以計算可用容量,但是這樣就會導致多次數據的傳輸,從而導致消息的延時。

對于HTTP2來說,它使用二進制進行消息傳輸,并且將消息拆分成一個個的stream,在stream中又包含了多個frame,允許資源通過多路復用使用同一個連接發送,解決了行頭阻塞的問題,并且還支持數據包的優先級和服務器推送。

但是HTTP2的服務器推送會導致應用程序變得復雜,TCP級別的頭阻塞的問題在數據包丟失并且必須重新以正確的順序重新發送時,仍然可能發生。

要注意,HTTP/2是HTTP/1.1的擴展,而不是它的替代品。 應用程序語義保持不變,具有相同的HTTP方法、狀態代碼、URI和標頭字段。 所以HTTP/2可以被用在任何使用HTTP/1.1的地方。

HTTP/2在客戶端和服務器之間使用單個TCP連接,該連接在交互期間保持打開狀態。

雖然HTTP/2支持并發,但是過多的并發會導致HTTP/2服務器接收到大批量的請求,從而導致請求超時。

HTTP3和QUIC

HTTP/3的目標是通過解決HTTP/2的傳輸相關問題,在所有形式的設備上提供快速、可靠和安全的Web連接。為此,它使用了一種不同的傳輸層網絡協議,稱為QUIC,該協議最初由Google開發的。

感慨一下,雖然最近中國在系統的應用方面有了一定的進步,但是看看這些底層的協議,還都是外國人搞出來的。

HTTP/2和HTTP/3的根本區別在于,HTTP/2底層使用的是TCP協議,而HTTP/3使用的是QUIC,而QUIC的底層使用的是UDP協議。

我們看一下HTTP/2和HTTP/3的協議棧對比:

HTTP3的簡單介紹

TCP協議主要保證服務的可靠性和有序交付,但是TCP需要同握手來建立連接,這樣做是為了確保客戶端和服務器都存在并且他們愿意并且能夠交換數據。但是,它也需要一個完整的網絡往返才能完成,然后才能在連接上完成任何其他操作。 如果客戶端和服務器端相距比較遠,那么就需要花費較多的時間來進行連接。

我們知道UDP是無連接的,所以它要比TCP簡單很多。它不需要TCP這種建立多次連接的步驟,只需要發送數據包出去就夠了。

所以使用QUIC的優點就在于減少了系統的延時,適用于可以容忍一些數據丟包的情況,比如在線游戲、廣告競價、在線視頻、實時流等地方。

另外因為UDP支持廣播,所以HTTP3還適用于廣播應用中,如精確時間協議和路由信息協議等。

另外HTTP3還可以用在物聯網、大數據和VR等方面。

既然HTTP3使用的是QUIC協議,那么QUIC到底是什么呢?

通常來說QUIC是一種通用傳輸協議,與TCP非常相似。為什么要打造一套新的協議呢?這是因為現有的TCP協議擴展起來非常困難,因為已經有太多太多的設備使用了各種不同的TCP協議的版本,如果想直接在現有的TCP協議上進行擴展非常困難,因為需要給這么多臺設備進行升級幾乎是不可能完成的任務。

所以QUIC在選擇在UDP協議之上進行構建。QUIC使用UDP,主要是因為希望能讓HTTP/3更容易部署,因為它已經被互聯網上的所有設備所知并已實現.

QUIC實際上就是在UDP基礎上重寫了TCP的功能,但是又比TCP更加智能,更高效的實現了TCP的核心功能。

接下來我們看下QUIC具體有哪些特征。

TLS1.3

TLS主要用來保證客戶端和服務器端在數據傳輸過程的數據安全性,可以對明文數據進行加密傳輸。TLS1.3是TLS協議的最新版本,在舊的版本如TLS1.2中,客戶端和服務器端的握手至少需要兩次網絡往返,但是在TLS1.3中,將其減少到只有一次往返。

雖然在HTTP/2中是支持無加密傳輸模式,但是默認情況下所有的現代瀏覽器都不支持這種模式,所以HTTP/2必須配合HTTPS一起使用。長遠看來HTTPS肯定是未來的趨勢,所以在QUIC中,直接就使用了TLS 1.3協議。QUIC本身就封裝了TLS1.3。

這樣做的好處就是QUIC沒辦法運行明文,所以更加的安全。并且QUIC內置了加密協議,將傳輸和加密握手合二為一,節省了往返。

因為QUIC是全程加密的,所以對于某些ISP和中間網絡來說,無法再對網絡數據進行分析和統計,所以可能會限制它的使用。并且因為QUIC是單獨對每個數據包進行加密的,在高并發的情況下,可能會造成性能問題。

解決HoL阻塞

傳統的HTTP1.1和HTTP2底層協議是TCP,雖然HTTP2在應用層可以將不同文件的數據拆分成一個個的stream放在同一個連接中進行傳輸。但是對于TCP本身來說,它并不知道這些stream屬于不同的文件,它會將其當成同一個文件。所以如果發送數據丟包的情況,TCP會重新發送所有的文件包。從而導致HOL阻塞的問題。

而QUIC更加細粒度一點,它可以在每個流的基礎上執行丟包檢測和恢復邏輯。從而只會重發失敗的流,而不是整個文件。

連接的遷移

在TCP中,如果我想要建立客戶端和服務器端的連接,需要知道這4個元素:客戶端IP地址 + 客戶端端口 + 服務器IP地址 + 服務器端口。

如果這4個元素中有一個發送了變化,則需要重新建立TCP連接。并且需要根據應用程序級協議,重新啟動進程中的操作。

比如你正在下載一個大的文件,但是網絡地址突然發生了變化,則可能需要重新請求該文件。

為了解決這個問題,QUIC引入了一個名為連接標識符(CID)的概念 。 每個連接都在上述4個元素中額外分配一個編號,用于標記客戶端和服務器端的唯一連接。

因為這個CID是由QUIC定義的,所以不會隨著網絡遷移的變化而變化。從而不需要新的握手,這種情況被稱為連接遷移 。

“HTTP3的簡單介紹”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

墨竹工卡县| 富川| 勃利县| 汉中市| 开化县| 金乡县| 思南县| 信阳市| 永兴县| 镇赉县| 涟水县| 洛浦县| 兰西县| 龙川县| 中宁县| 盐城市| 梁山县| 日土县| 永寿县| 古浪县| 托克托县| 普兰店市| 建瓯市| 深州市| 中阳县| 新巴尔虎右旗| 天全县| 射洪县| 庄浪县| 桐梓县| 甘德县| 株洲县| 兰西县| 封开县| 顺义区| 塘沽区| 库尔勒市| 雷山县| 枞阳县| 九龙县| 介休市|