HTTP/HTTPS

HTTP(Hypertext Transfer Protocol)超文本傳輸協定,是網頁通訊的基礎協定。

HTTP 版本演進

HTTP Generations

HTTP/1.0

  • 默認短連接
  • 每次請求都需要建立新連線

HTTP/1.1

  • 默認長連接:Connection: keep-alive
  • 新增 24 個 Response Status Code
  • 增加更多緩存機制:Entity tag, If-Unmodified-Since, If-Match, If-None-Match

Head-of-line Blocking

Head-of-line Blocking

HTTP/2.0

  • 解決 HTTP/1.1 的隊頭阻塞問題(應用層)
  • Server Push 能力:允許伺服器主動推送更新

HTTP/3.0

  • 使用 QUIC 協定取代 TCP
  • QUIC 基於 UDP
  • 解決傳輸層的隊頭阻塞

HTTP Headers

HTTP Headers

Content-Type

Content-Type格式
text/htmlHTML
text/plain純文本
application/jsonJSON
application/xmlXML
application/octet-stream二進制流
application/x-www-form-urlencoded表單數據(默認)
multipart/form-data文檔上傳

Content-Disposition

控制使用者儲存檔案時的檔案名稱。

X-Forwarded-For

用於辨識通過 HTTP 代理或負載均衡連接到 Web 伺服器的客戶端原始 IP 地址。

HTTP Status Codes

範圍類型說明
1xxInformational請求已接收,繼續處理
2xxSuccess請求成功
3xxRedirection需要進一步操作
4xxClient Error客戶端錯誤
5xxServer Error伺服器錯誤

常見狀態碼

Code說明
200OK
301永久重定向
302暫時重定向
400Bad Request
401Unauthorized
403Forbidden
404Not Found
500Internal Server Error

HTTPS

HTTPS = HTTP + SSL/TLS,提供加密通訊。

HTTPS Work Flow

HTTPS 連線步驟

  1. TCP Handshake: 建立 TCP 連線
  2. Certificate Check:
    • Client 發送支援的加密演算法和 TLS 版本
    • Server 回應 SSL 憑證(公鑰、主機名、過期日期)
    • Client 驗證憑證
  3. Key Exchange:
    • Client 產生 session key 並用公鑰加密
    • Server 用私鑰解密取得 session key
  4. Secure Communication: 使用對稱加密傳輸資料

為什麼 HTTPS 要切換到對稱加密?

安全性: 非對稱加密是單向的,公鑰加密的內容任何人都可以解密。

效能: 非對稱加密計算成本高,不適合長時間的資料傳輸。

SSL/TLS

SSL & TLS
  • SSL: Secure Sockets Layer(安全通訊層)
  • TLS: Transport Layer Security(傳輸層安全性)

特性:

  • 通訊加密(先非對稱、後對稱)
  • 身份驗證(伺服器或客戶端/伺服器)
  • 可靠連線 - 防止資料被竄改