http2.0
阿新 • • 發佈:2018-11-10
二進位制
Http2 採用二進位制傳輸資料,而非http1.x的文字格式。
多路複用
http2的一個非常重要的改進。多路複用,簡單來說就是一條TCP連線上面可以併發多個請求。
http1.x: 一個TCP連線上面同時只能傳送一個http請求,也就是說第二個請求必須等第一個請求的響應返回才能傳送。
http 管線化:多個請求可在一個TCP連線中傳送,傳送過程中無需等待前面請求的響應(也就是說第二個請求不必等第一個的請求的響應返回即可傳送)。但是,客戶端必須順序接收響應,也就是說請求1響應未返回,那麼請求2響應也不會返回。如果前一個請求非常耗時,那麼後面的請求都會受到影響,這就是所謂的線頭阻塞。http管線化只能傳送冪等請求
http管線化並未實現真正的併發請求,大部分瀏覽器預設會關閉這一功能。
伺服器端推送
伺服器端可以主動推送資料到客戶端。
應用場景: 當客戶端請求一個web頁面的時候,伺服器端返回這個頁面。(http1.x)客戶端再次去請求這個頁面中的內嵌的js、css資源,(http/2)這個時候伺服器端就可以主動把客戶端需要的資源推送給客戶端。
http首部壓縮
為什麼要做首部壓縮呢?一個web頁面傳送的多個請求,http的首部可能都是相同的,http2.0採用HPACK壓縮,是專為http2.0設計的。
參考文章: