回覆列表
  • 1 # 淺析架構

    在HTTP1.0之後還有HTTP1.1了,先簡單說下HTTP1.1和1.0的區別,再說與2.0的區別。

    HTTP1.0和HTTP1.1主要區別主要體現在:

    1、長連線

    HTTP 1.1支援長連線,在一個TCP連線上可以傳送多個HTTP請求和響應,但連線不能同時發出,而HTTP2.0的多路複用可以同時發出,在HTTP1.1中預設開啟Connection: keep-alive。

    2、快取處理:

    在HTTP1.0中主要使用header裡的If-Modified-Since,Expires來做為快取判斷的標準,HTTP1.1則引入了更多的快取控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等。

    3、網路頻寬最佳化:

    添加了range頭域,它允許只請求資源的某個部分,一般用於斷點下載。

    4、錯誤通知的管理:

    在HTTP1.1中新增了24個錯誤狀態響應碼,如409。

    5、Host頭處理:

    HTTP1.1的請求訊息和響應訊息都應支援在報文頭增加Host欄位,主要區分一個IP對應多 個HostName的情況。

    HTTP2.0和HTTP1.X主要區別主要體現在:

    1、多路複用

    多個請求可以同時使用一個連線,可以同時使用一個連線主要也是藉助了HTTP2.0的二進位制分幀,請求被分為多個幀,不同請求之間也就不會亂序了。

    2、首部壓縮

    HTTP/1.x中,訊息主體都會經過 gzip 壓縮,但狀態行和頭部卻沒有經過任何壓縮,直接以純文字傳輸,在大量請求下必然存在著浪費。所以對頭部進行壓縮可以大大減少傳輸的資料量節約頻寬。

    3、伺服器推送

    HTTP/

    1.x

    中瀏覽器一般都是先請求html頁面,請求回來之後再發起請求js和css等,但是HTTP2.0可以在伺服器響應了html頁面後,直接把js和css推送到瀏覽器,這樣瀏覽器需要的時候直接從本地快取就可以拿到了

    可以看出來http從1.0到1.1再到2.0做的最佳化都是為了使用者的體驗更好,頁面載入更快,在有限的網路資源下傳送的有效內容更多。有了協議的最佳化,也可以使前端工程師把使用者體驗做的更好。

  • 中秋節和大豐收的關聯?
  • 老人與海的環境描寫有那些?