Skip to content
ADP
API Design PrincipleBETA

[ADP-369] HTTP 快取: ETag

概述

ETag 標頭用於資源版本控制和快取驗證。有關 ETag 的詳細資訊,請參閱 ADP-128: ETag

流程

  1. 客戶端發起第一個 GET 請求,不帶任何快取相關標頭。
  2. 伺服器返回數據,並計算出 ETag
  3. 客戶端再次請求相同的 GET,帶上 If-None-Match
  4. 伺服器檢查 If-None-Match 請求與最新數據的 ETag
    1. 如果不匹配,返回 200
    2. 如果匹配,返回 304

指導

  • 可以(MAY)提供 ETag 來快取回應

實現細節

  • ETag 有兩種類型:弱 ETag強 ETag
  • express (nodejs web 伺服器框架)中,默認會生成弱 ETag;可以通過更改配置生成強 ETag
  • gin (golang web 伺服器框架)中,可以通過中間件生成 ETag。

參考