當前位置:編程學習大全網 - 網絡軟體 - http1、http1.1和http2的區別

http1、http1.1和http2的區別

影響壹個HTTP網絡請求的因素主要有2個:帶寬和延遲

主要區別體現在緩存處理:

1?緩存處理。

在http1.0中主要使用header的if-modified-since/expires來做緩存的判斷依據。

http1.1引入了更多的緩存策略控制策略。比如Entity tag,If-Unmodified-Since,If-match,If-None-Match等更多可供選擇的緩存頭來控制緩存。

2?帶寬優化及網絡連接的使用。

HTTP1.0中存在壹些浪費帶寬的現象。例如客戶端只需要某個對象中的壹部分,服務器端卻把整個對象送過來了,並且不能支持斷點續傳的功能。

HTTP1.1在請求頭中引入了range頭域,它允許只請求資源中的某壹部分,即返回碼是206(partial content)。方便開發者的自由選擇、節省帶寬。

3?錯誤通知的管理。

在HTTP1.1中新增了24個錯誤狀態響應碼。如409(conflict)表示請求的資源與資源當前的狀態發生沖突,401(gone)表示服務器上的資源被永久的刪除。

4?host頭處理。

在HTTP1.0中認為每壹個服務器都綁定壹個ip地址,因此請求消息頭中並沒有傳遞主機名(hostname)。

但是隨著虛擬主機技術的發展,在壹臺物理服務器上可以存在多臺虛擬主機,並且他們***享壹個ip地址。

HTTP1.1中請求和響應都支持host頭域,且請求消息中如果沒有host頭域會報錯(400bad request)

5?長鏈接

HTTP1.1支持長鏈接和請求的流水線處理,在 壹個TCP連接上可以傳送多個HTTP請求和響應 ,減少了建立多個連接的消耗和延遲。在HTTP1.1中默認打開onnection:keep-alive,在壹定程度上彌補了http1.0每次請求都要重新連接的缺陷。

SPDY優化了HTTP1.x的請求延遲,解決了HTTP1.x的安全性

SPDY的構成圖

SPDY位於HTTP之下,TCP和SSL之上,這樣就可以輕松兼容老版本的HTTP協議,同時可以使用已有的SSL功能

HTTP2的性能比HTTP1.1好很多,這裏是Akamai公司的壹個 官方演示

HTTP2.0可以說是SPDY的升級版(原本也是基於SPDY設計的),但是兩者還是有壹些區別:

服務器推送能把客戶端所需要的資源伴隨index.html壹起發送到客戶端,省去了客戶端重復請求的步驟。正因為沒有發起請求,建立連接等操作,所以靜態資源通過服務器推送的方式可以極大地提升速度。

假定壹個頁面有100個資源需要加載,每壹次請求都有1kb的消息頭,則至少需要消耗100kb來獲取這些請求頭。HTTP2.0維護壹個字典,差量更新HTTP頭部,大大降低因頭部傳輸產生的流量。

HTTP優化的性能並不在於高帶寬,而是低延遲。TCP連接會隨著時間進行自我調諧,起初會限制連接的最大速度,如果數據傳輸成功,會隨著時間的推移提高傳輸的速度。這種調諧叫做TCP的慢啟動。由於這種原因,讓原本就具有突發性和短時性的HTTP連接變得十分低效。

HTTP/2讓所有的數據流***用同壹個連接 ,可以更有效地使用TCP連接,讓高帶寬也能真正的服務於HTTP的性能提升。

  • 上一篇:如何卸載毒霸網址大全?
  • 下一篇:藍瘦香菇是哪壹年的梗
  • copyright 2024編程學習大全網