1. 程式人生 > >HTTP1.0、HTTP1.1以及HTTP2.0 主要特性對比

HTTP1.0、HTTP1.1以及HTTP2.0 主要特性對比

HTTP1.0
早期1.0版本的http協議是一種無狀態、無連線的應用層協議。瀏覽器每次傳送請求都和伺服器建立一個tcp連線,進行三次握手,伺服器處理完後立即斷開連線,伺服器也不記錄過去的狀態。
對於資料量大的長連線請求來說,如果該請求沒有得到及時響應,就會阻塞下一個請求。
http1.1就是來解決這些問題的。

HTTP1.1
首先是長連線,http1.0需要在請求中加上connection:keep-alive來告訴伺服器不要關閉,後面還有請求要傳送。而http1.1預設支援長連線,它能夠傳送多個請求,節約頻寬。如果請求太頻繁,並且有一個請求處理很久的話,後面的請求還是可能會阻塞。
於是就有了http2.0。

HTTP2.0
1、多路複用
所有的http2.0通訊都在一個tcp連線上完成,並且這個連線可以處理任意數量的請求,所以把多個js、css檔案合併成一個對於頁面的優化已經沒什麼效果了。
不同的請求對應著不同的stream id,當有請求被阻塞時,伺服器就會先處理別的請求,然後再根據stream id找到被阻塞的請求進行處理。
2、頭部壓縮
在http2.0之前,頭部是以純文字的形式傳送的,通常會給每個請求增加500-800位元組的負荷,而http2.0利用HPACK對訊息頭進行壓縮傳輸,並且相同的頭部資訊不會通過請求傳送,會使用之前請求攜帶的頭部資訊,節省了報文頭佔用的流量。
3、伺服器推送
客戶端發起第一個請求的時候,伺服器會知道其附加的資原始檔(js、css),它會順便把客戶端需要的資源一起推送到客戶端,以免客戶端再次發起請求。速度自然是快了很多。