iT邦幫忙

2022 iThome 鐵人賽

DAY 16
0
Software Development

剛入職軟體工程師會需要知道的常見工具篇系列 第 16

[Day16] 簡單搞懂HTTP1.X / HTTP2 名詞解釋

  • 分享至 

  • xImage
  •  

HTTP1.X 就是指通訊協定,HTTP2就是HTTP通訊協定的第二版,主要是改善瀏覽器瀏覽網頁的加載時間

  • HTTP1.X

    • 請求是按順序發出的,下一個請求只有在當前請求收到應答過後才會被發出,可能會受網路延遲影響,因此可能需要等待很長時間
    • client端傳需要什麼資料, server端就回傳什麼
    • header & body 用明文傳遞
  • HTTP2

    • Binary framing layer (二進制影格層)
      • HTTP2核心增強的功能就是Binary framing layer!!
      • 主要是在傳遞header & body時用二進制傳輸
      • 這邊可以想像成原先的資料被拆成細小部分,這些細小部分都適用二進制編成的,那這樣有什麼好處?
        • 首先這些細小部分是什麼?
          • Stream (流):包含一個或一個以上的Message
            • 擁有唯一識別 及 優先訊息(optional)
          • Message (消息):是一個logical HTTP message,像是請求(request)或是回覆(response)的,包含一個或一個以上的Frame
          • Frame (貞):最小單位,含有Frame header & 所屬Stream的識別
        • 好處?
          • 每一次溝通(TCP connection),都可以帶多個Stream,就是下方說的多路複用~

            圖片來源
    • Request and response multiplexing (多路複用)
      • 可以client端 利用同一個連線傳遞多個request給server端,反之,Server端也能用同一連線傳遞多個response 回去
    • Header compression (標頭壓縮)
      • 每次傳遞都會帶著header資訊,利用HPACK進行壓縮,減少傳輸的bytes大小
    • Server push (伺服器推送)
      • 允許server端主動推送有相關的資料給client
  • 這邊需要釐清,HTTP2是對HTTP標準的擴展,基本上像是HTTP methods, status codes, URIs, and header fields都是一樣的喔

  • 來玩玩看差別

  • 參考資料

  1. HTTP/2 從零到一
  2. Http/2 是什麼?
  3. HTTP/1.x 的連接管理
  4. 必讀文件Introduction to HTTP/2

上一篇
[Day15] 簡單搞懂 Gunicorn & Uvicorn 名詞解釋
下一篇
[Day17] 簡單搞懂CGI / FastCGI 名詞解釋
系列文
剛入職軟體工程師會需要知道的常見工具篇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言