HTTP/1.1、HTTP/2、HTTP/3演變
- 一、HTTP1.1比較HTTP1.0提升的地方
- HTTP1.1的性能瓶頸
- 二、HTTP2的優化
- 頭部壓縮
- 二進制格式
- 資料流
- 多路復用
- 服務器推送
- 三、針對HTTP2的缺陷,HTTP做的優化
- HTTP2的缺陷
- 優化
一、HTTP1.1比較HTTP1.0提升的地方
- 使用長連接改善了短連接造成的性能消耗
- 支持管道網路傳輸,減少整體的回應時間
HTTP1.1的性能瓶頸
- 請求頭未經壓縮就發送,只能壓縮Body的部分
- 發送冗長的首部,每次互相發送相同的首部造成浪費
- 服務器是按請求的順序回應的,易造成對頭阻塞
- 沒有請求優先級控制
- 請求只能從客戶端開始,服務器只能被動回應
二、HTTP2的優化
HTTP2是基于HTTPS的,所以HTTP2的安全性是有保障的
頭部壓縮
HPACK演算法:在客戶端和服務器同時維護一張頭資訊表,所有的欄位都會存入這張表,生成一個索引號,以后不發送同樣的欄位,直接發送索引號,這樣就提高速度了,
二進制格式
HTTP2不再像HTTP1.1里的純文本形式的報文,而是全面使用二進制格式,統稱為幀:頭資訊幀和資料幀,增加了資料傳輸的效率,
資料流
每個請求或回應的所有資料包,稱為?個資料流( Stream ),每個資料流都標記著?個獨一無二的編號,其中規定客戶端發出的資料流編號為奇數, 服務器發出的資料流編號為偶數 客戶端還可以指定資料流的優先級,優先級高的請求,服務器就先回應該請求,
多路復用
TTP2是可以在一個連接中并發多個請求或回應,而不是按照順序一一對應,降低了延遲,大幅度提高了連接的利用率,例如在?個TCP連接?,服務器收到了客戶端 A 和 B 的兩個請求,如果發現 A 處理程序非常耗時,于是就回應 A 請求已經處理好的部分,接著回應 B 請求,完成后,再回應 A 請求剩下的部分,
服務器推送
服務器不再是被動地回應,可以主動向客戶端發送訊息,
三、針對HTTP2的缺陷,HTTP做的優化
HTTP2的缺陷
HTTP/2 多個請求復??個TCP連接,?旦發生丟包,就會觸發TCP的重傳機制,就會阻塞住所有的 HTTP 請求,
優化
HTTP3直接把下層的TCP協議改成了UDP,

但是UDP又是不可靠傳輸,但是基于UDP的QUIC協議可以實作類似TCP的可靠傳輸,
- QUIC 有??的?套機制可以保證傳輸的可靠性的,當某個流發?丟包時,只會阻塞這個流,其他流不會受到 影響,
- TLS3 升級成了最新的 1.3 版本,頭部壓縮演算法也升級成了 QPack ,
- HTTPS 要建立?個連接,要花費 6 次互動,先是建立三次握手,然后是 TLS/1.3 的三次握手,QUIC 直接 把以往的 TCP 和 TLS/1.3 的 6 次互動合并成了 3 次,減少了互動次數,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/305158.html
標籤:其他
下一篇:IP地址詳解
