CDN API Header

以下是一些常見的 CDN Header,以及它們的用法和效果:

  • Cache-Control:指定 HTTP 響應的緩存策略,可以控制 CDN 的緩存行為。常見的值包括 public、private、no-cache、max-age 等。例如,設置 Cache-Control: public, max-age=3600 表示該響應可以被 CDN 緩存,並在 3600 秒後過期。
  • Expires:指定 HTTP 響應的過期時間,可以讓 CDN 在此時間之前緩存該響應。例如,設置 Expires: Thu, 31 Mar 2023 23:59:59 GMT 表示該響應的過期時間為 2023 年 3 月 31 日 23:59:59。
  • ETag:指定 HTTP 響應的實體標籤,可以讓 CDN 判斷響應是否有變化。例如,設置 ETag: "abc123" 表示該響應的實體標籤為 "abc123"。
  • Last-Modified:指定 HTTP 響應的最後修改時間,可以讓 CDN 判斷響應是否有變化。例如,設置 Last-Modified: Thu, 31 Mar 2023 00:00:00 GMT 表示該響應的最後修改時間為 2023 年 3 月 31 日 00:00:00。
  • If-Modified-Since:指定 HTTP 請求的最後修改時間,可以讓 CDN 判斷是否需要返回新的響應。例如,如果上一次響應的 Last-Modified 時間為 2023 年 3 月 31 日 00:00:00,則設置 If-Modified-Since: Wed, 30 Mar 2023 23:59:59 GMT 表示只有在該時間之後修改的響應才會返回,否則返回 304 Not Modified。
  • Vary:指定 HTTP 響應的可變因素,可以讓 CDN 根據不同的可變因素緩存不同的響應。例如,設置 Vary: Accept-Encoding 表示該響應的可變因素為 Accept-Encoding,CDN 可以根據不同的 Accept-Encoding 緩存不同的響應。

Cache-Control

Cache-Control: must-revalidate
Cache-Control: no-cache
Cache-Control: no-store
Cache-Control: no-transform
Cache-Control: public
Cache-Control: private
Cache-Control: proxy-revalidate
Cache-Control: max-age=<秒數>
Cache-Control: s-maxage=<秒數>

cache-control: private 具有「private」指令的回應只能由用戶端快取,而不能由中繼代理程式(如 CDN 或代理)快取。這些通常是包含私人資料的資源,例如顯示使用者個人資訊的網站。

cache-control: public 相反,「public」指令意味著資源可以由任何快取儲存。

cache-control: no-store 帶有「no-store」指令的回應無法在任何地方快取。這意味著每次使用者請求此資料時,都必須向原始伺服器傳送請求以獲取新複本。此指令通常保留用於包含極其敏感資料(如銀行帳戶資訊)的資源。

cache-control: no-cache 此指令意味著如果不先檢查是否有更新的版本,就無法使用所請求資源的快取版本。這通常使用 ETag 完成。

ETag 是另一個 HTTP 標頭,其中包含請求資源時專屬於資源版本的權杖。每當更新資源時,原始伺服器上的此權杖都會變更。

當使用者返回到具有「no-cache」資源的頁面時,用戶端將始終必須連接到原始伺服器,並將快取資源上的 ETag 與伺服器上的 ETag 進行比較。如果 ETag 相同,則會向使用者提供快取的資源。如果不相同,這意味著資源已更新,用戶端需要下載新版本以提供給使用者。此過程可確保使用者始終獲得該資源的最新版本,而又不需要進行不必要的下載。

cache-control: max-age 此指令規定了存留時間,換句話說,在下載資源后可以從快取中提供該資源的秒數。例如,如果「最大壽命」設定為 1800,這意味著在首次從伺服器請求資源後的 1,800 秒(30 分鐘)內,將在後續請求中向使用者提供該資源的快取版本。如果使用者在 30 分鐘後再次請求資源,則用戶端必須從原始伺服器請求新複本。

「s-maxage」指令專門用於共用快取(如 CDN),它規定了這些共用快取可以從快取中持續提供資源的時間。此指令將覆寫單個用戶端的「max-age」指令。

HTTP標頭(HTTP headers)是在HTTP請求和回應中用於傳遞附加信息的部分。以下是一些常見的規則和準則,關於HTTP標頭的名稱定義:

  1. 名稱大小寫:HTTP標頭名稱不區分大小寫,因此Content-Type和content-type被視為相同的標頭名稱。

  2. 字符集:標頭名稱僅限於ASCII字符集,不包括任何非ASCII字符。

  3. 字元限制:標頭名稱不能包含空格、制表符(tab)、換行符(line feed)或冒號(colon)等特殊字符。

  4. 唯一性:標頭名稱在單個HTTP請求或回應中應該是唯一的,重複的標頭名稱會被視為無效。

  5. 自定義標頭:除了一些標準的HTTP標頭(例如Content-Type、User-Agent等),你也可以自定義自己的HTTP標頭名稱。為了避免與其他應用程序或標準衝突,建議在自定義標頭名稱前面添加特定的前綴,例如X-。

Reference

© Kimi Tsai all right reserved.            Updated : 2023-07-12 09:04:54

results matching ""

    No results matching ""

    results matching ""

      No results matching ""