HTTP/3 来了,你了解它么?
作為我們網上沖浪最為常見,也經常被人忽視的 HTTP 已經更新換代到了 HTTP/3。本文簡單明了的帶你認識 HTTP/3 的作用。
最近二狗子看到自己存儲女神婷婷照片所用的云服務商——又拍云推出了 HTTP/3 嘗鮮功能。作為愛好學習的二狗子同學既驚喜又好奇,他對 HTTPS、HTTP/2 非常熟悉,但是對于 HTTP/3 卻是少了一些了解。
“HTTP/2 都還沒普及,沒想到又拍云竟然連 HTTP/3 功能都上了,真不愧是業界良心,果然他們常說的技術氛圍不只是說說的。看樣子這段時間自己不夠勤快,是時候去學習下 HTTP/3 相關知識了。”二狗子一邊心里想著,一邊就開始找資料學習了。
HTTP/3 是什么?
要深入了解 HTTP/3,那首先要知道什么是 HTTP/3。
如上圖所示,HTTP/3 是基于 QUIC 的協議。而 QUIC 協議是 Google 提出的一套開源協議,它基于 UDP 來實現,直接競爭對手是 TCP 協議。
另外,要聊 HTTP/3,HTTP 的發展歷程是怎么也繞不過去的,而且可以講很久。
如果想要詳細了解 HTTP 的前世今生與發展歷程,可以查看之前的內容《當我談 HTTP 時,我談些什么》。
HTTP/3 的優點及不足
今天我們在這里簡單說一下 HTTP/3 相比較 HTTP/2 進步的那些點。
回歸正題,相比 HTTP/2 而言 HTTP/3 有以下幾點提升:
-
HTTP/3 使用 stream 進一步擴展了 HTTP/2 的多路復用。在 HTTP/3 模式下,一般傳輸多少個文件就會產生對應數量的 stream。當這些文件中的其中一個發生丟包時,你只需要重傳丟包文件的對應 stream 即可。
-
HTTP/3 不再是基于 TCP 建立的,而是通過 UDP 建立,在用戶空間保證傳輸的可靠性,相比 TCP,UDP 之上的 QUIC 協議提高了連接建立的速度,降低了延遲。
-
通過引入 Connection ID,使得 HTTP/3 支持連接遷移以及 NAT 的重綁定。
-
HTTP/3 含有一個包括驗證、加密、數據及負載的 built-in 的 TLS 安全機制。
-
擁塞控制。TCP 是在內核區實現的,而 HTTP/3 將擁塞控制移出了內核,通過用戶空間來實現。這樣做的好處就是不再需要等待內核更新可以實現很方便的進行快速迭代。
-
頭部壓縮。HTTP/2 使用的 HPACK,HTTP/3 更換成了兼容 HPACK 的 QPACK 壓縮方案。QPACK 優化了對亂序發送的支持,也優化了壓縮率。
沒有哪項技術是完美無缺的,更不用說是還在發展中的 HTTP/3 了。
HTTP/3 建立傳輸用的是 UDP 協議,而在 HTTP/3 出現前 UDP 的通常出現地點是類似《計算機網絡》這樣的書面理論,即便是實際應用也大多和網絡攻擊一起出現,這就導致 UDP 的名聲不太好。名聲差了自然在硬件上的支持也捉襟見肘,大部分互聯網服務也就理所當然的對 UDP 的訪問進行限制。
準備好迎接 HTTP/3 了嗎?
但是毫無疑問的,HTTP/3 是目前最前沿的互聯網標準,它的缺點可以通過不斷的改進來完善。相比與 HTTP/3 本身的缺陷問題,作為一項新技術最致命的問題是能否獲得足夠多的有效支持,從而進行大范圍推廣。
那么當前的環境已經有迎接 HTTP/3 的能力了么?
HTTP/3 作為互聯網的標準革新之一,在支持方面無非兩點,一個是服務端,一個是客戶端。
先來看一下客戶端,大家所熟悉的瀏覽器 Chrome 以及常用 Curl 命令行工具都已經支持 HTTP/3 特性。在 Chrome 的開發者工具一欄里你可以看到一項顯示為“HTTP/2+quic/99”,這就是 Chrome 已經支持 HTTP/3 的證據。畢竟 HTTP/3 的組成離不開 QUIC 協議。
而在 Curl 命令行工具[https://github.com/curl/curl] 的最新版本, 你只需在常規的命令末尾添加“–HTTP/3”即可使用 HTTP/3,如果目標服務器支持,它會自然的返回“HTTP/3 200”。
確認了客戶端的支持,我們接下來看一下服務端。
自 2013 年 QUIC 被正式公開以來,到 2020 年已經發展了差不多7年,目前網上已經有了不少熱門開源的項目,除去帶頭大哥 Google 在完成了對自身搜索引擎的支持,還同時拉上了 Gmail 、YouTube 等站點。但對于國內的絕大部分站點來說,HTTP/3 之路,似乎還停留在東土大唐,即使 Nginx 已經公開聲明:“我們已經支持 QUIC 協議“。
我們可以看到,雖然目前環境還沒有全面迭代到 HTTP/3 ,但是 HTTP/3 的發展是不可阻攔的。
作為一家極客氛圍極強的公司,又拍云在不少廠商還沒準備好時,苦心鉆研,現已推出 HTTP/3 嘗鮮服務,您可以切身體驗 HTTP/3 帶來的變革。
[但是毫無疑問的,HTTP/3 是目前最前沿的互聯網標準,它的缺點可以通過不斷的改進來完善。相比與 HTTP/3 本身的缺陷問題,作為一項新技術最致命的問題是能否獲得足夠多的有效支持,從而進行大范圍推廣。
那么當前的環境已經有迎接 HTTP/3 的能力了么?
HTTP/3 作為互聯網的標準革新之一,在支持方面無非兩點,一個是服務端,一個是客戶端。
先來看一下客戶端,大家所熟悉的瀏覽器 Chrome 以及常用 Curl 命令行工具都已經支持 HTTP/3 特性。在 Chrome 的開發者工具一欄里你可以看到一項顯示為“HTTP/2+quic/99”,這就是 Chrome 已經支持 HTTP/3 的證據。畢竟 HTTP/3 的組成離不開 QUIC 協議。
而在 Curl 命令行工具[https://github.com/curl/curl] 的最新版本, 你只需在常規的命令末尾添加“–HTTP/3”即可使用 HTTP/3,如果目標服務器支持,它會自然的返回“HTTP/3 200”。
確認了客戶端的支持,我們接下來看一下服務端。
自 2013 年 QUIC 被正式公開以來,到 2020 年已經發展了差不多7年,目前網上已經有了不少熱門開源的項目,除去帶頭大哥 Google 在完成了對自身搜索引擎的支持,還同時拉上了 Gmail 、YouTube 等站點。但對于國內的絕大部分站點來說,HTTP/3 之路,似乎還停留在東土大唐,即使 Nginx 已經公開聲明:“我們已經支持 QUIC 協議“。
我們可以看到,雖然目前環境還沒有全面迭代到 HTTP/3 ,但是 HTTP/3 的發展是不可阻攔的。
作為一家極客氛圍極強的公司,又拍云在不少廠商還沒準備好時,苦心鉆研,現已推出 HTTP/3 嘗鮮服務,您可以切身體驗 HTTP/3 帶來的變革。
立即體驗
總結
以上是生活随笔為你收集整理的HTTP/3 来了,你了解它么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 边缘计算、区块链、5G,哪个能走的更远
- 下一篇: 浅谈 FTP、FTPS 与 SFTP