https http2 http3

https

HTTPS 的產生是爲了解決 HTTP 的不安全性,它包括三個方面,機密性、完整性和身份驗證。它在 HTTP 之下 TCP 之上加了一個 TLS 層。

http2

HTTP2 有三個核心概念,Strem 流、Message 消息、Frame 幀。

在一個 TCP 連接上可以有多個流,也就是併發多請求,實現多路複用;

以前瀏覽器是隻能對一個域名開啓 6 個併發鏈接;同時流還可以設置優先級,讓服務器優先處理;一條流上可以有多個 Message 消息,每個 Message 都可以攜帶多個 Frame 幀,幀類型包括 HEADER 幀和 DATA 幀,也就對應於 HTTP/1.1 中的 header 和 data。在 HTTP/1.1 中,服務端是沒法主動向客戶端推送信息的,客戶端只能以輪詢的方式去請求,在 HTTP2 中有了服務器推送,也就是服務端可以提前將資源推送至瀏覽器緩存。

HTTP2 只在應用層解決了隊頭阻塞問題,並未在 TCP 層解決隊頭阻塞問題。

TCP 的報文傳輸時無序,接收時組裝。如果隊頭包沒有到達,即使後序數據包已經接收到了也是沒辦法交給上層應用程序處理的,只能等待重發。

http3

HTTP3 採用了 UDP,UDP 先天沒有隊列的概念,自然就解決了隊頭阻塞的問題,但是它仍然保留了 TCP 的可靠性,這也需要 QUIC 協議自己去實現重傳機制、擁塞控制等機制。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章