HTTP1.1 相對于1.0來說有進行了性能上的提升
首先HTTP1.1采用長連接的方式, 改善了1.0時期的頻繁連接和斷開短連接的性能開銷
支持管道網(wǎng)絡(luò)傳輸, 連接請求發(fā)送出去,不需要等待連接返回, 就可以發(fā)送第二個請求, 減少了整體的等待的時間
HTTP2.0
HTTP2.0 改進了HTTP1.1
HTTP2.0基于HTTPS, 安全性得到了保證
1. 多路復(fù)用,并發(fā)傳輸
一個連接可以同時發(fā)起多個請求, 請求響應(yīng)之間互不影響,多個請求,響應(yīng)可以并行交錯的進行,通過streamID進行組裝成完整的數(shù)據(jù)包, 但是還是會有隊頭阻塞的問題
2. 頭部壓縮
HTTP1.1報文頭部都是已經(jīng)純文本的形式傳輸, 同一個請求會有大量的重復(fù)數(shù)據(jù), 2.0將這些頭部數(shù)據(jù)壓縮, 重復(fù)的數(shù)據(jù)不在進行傳輸,只傳輸響應(yīng)的序號
3. 二進制格式
將以前的純文本格式, 改為二進制格式的傳輸, 統(tǒng)稱為幀(frame)
無需再講明文報文轉(zhuǎn)換為二進制格式, 提高了數(shù)據(jù)傳輸?shù)男?/p>
4. 服務(wù)端主動推送資源
HTTP2在一定程度上改善了傳統(tǒng)的[請求 - 應(yīng)答]的工作模式, 服務(wù)端也可以主動發(fā)送消息
HTTP3.0
傳輸層改用UDP沒有隊頭阻塞的問題
連接遷移: 連接模式不在依賴于 連接四要素(端口 MAC地址), 而是采用了連接ID的形式
連接更快
◎HTTP 0.9(1991年)只支持get方法不支持請求頭;
◎HTTP 1.0(1996年)基本成型,支持請求頭、富文本、狀態(tài)碼、緩存、連接無法復(fù)用;
◎HTTP 1.1(1999年)支持連接復(fù)用、分塊發(fā)送、斷點續(xù)傳;
◎HTTP 2.0(2015年)二進制分幀傳輸、多路復(fù)用、頭部壓縮、服務(wù)器推送等;
◎HTTP 3.0(2018年)QUIC 于2013年實現(xiàn)、2018年正式更名為HTTP3;