當CDN節點上的緩衝到期或者沒有命中緩衝時,CDN節點會向來源站點發起請求來擷取最新內容,來源站點返回的內容以及相關的HTTP頭部資訊就是回源回應標頭。您可以通過調整來源站點修改入站回應標頭,來設定緩衝策略、跨域資源共用等,從而最佳化網站的載入速度、增強Alibaba Content Security Service性、控制資源可訪問性,並提高使用者體驗。
背景資訊
HTTP回應標頭是HTTP的響應訊息頭的組成部分之一,可攜帶特定響應參數資訊並傳遞給用戶端。
當CDN節點上沒有緩衝使用者請求的內容時,CDN會回來源站點拉取資源,來源站點收到CDN的請求後會給出響應。為了便於使用者識別來源站點的響應資訊,您可以修改入站回應標頭功能,改寫使用者來源站點響應報文中的HTTP Header資訊。例如,改寫回源回應標頭中Content-Type參數的值,然後再傳遞給用戶端,以確保用戶端解析正常(如果來源站點返回的Content-Type值有誤,用戶端直接解析將出現亂碼,因此需要在CDN上改寫)。
入站響應指來源站點收到CDN節點的請求後,返回給CDN節點的HTTP訊息。修改入站回應標頭配置只會影響來源站點響應給CDN節點的HTTP訊息,對於CDN節點直接響應給使用者的HTTP訊息不做修改。
不支援對泛網域名稱修改入站回應標頭。
適用情境
以下是一些常見的情境和樣本:
內容類型不正確:如果來源站點返回的內容類型(
Content-Type)與實際內容不符,用戶端可能會無法正確解析。例如,一個HTML檔案被錯誤地標記為純文字。這時可以通過配置回源回應標頭來修正。樣本:將
Content-Type: text/plain更改為Content-Type: text/html。緩衝策略控制:如果您需要對CDN緩衝策略進行更精細的控制,可以調整來源站點的回源回應標頭中的
Cache-Control或Expires欄位。這有助於最佳化內容的更新頻率和快取命中率。樣本:將
Cache-Control: max-age=3600更改為Cache-Control: max-age=86400,以延長緩衝有效期間。CDN的預設緩衝規則具體請參見阿里雲CDN預設緩衝規則及優先順序。跨域資源共用(CORS):如果您希望允許其他網域名稱的Web應用訪問CDN上託管的資源,則需要在來源站點設定
Access-Control-Allow-Origin和其他相關的CORS頭。這些設定確保在瀏覽器執行跨域請求時,CDN能夠提供適當的回應標頭給用戶端,避免CORS錯誤。關於跨域訪問問題,您可以參見配置跨域資源共用。樣本:
Access-Control-Allow-Origin: *:允許所有網域名稱進行跨域資源請求。Access-Control-Allow-Methods: GET, POST, OPTIONS:指定允許跨域請求的HTTP方法。
壓縮傳輸:如果來源站點支援壓縮傳輸但沒有啟用,或者使用的壓縮演算法不是最有效,可以通過設定回源回應標頭中的
Accept-Encoding來讓來源站點使用最優的壓縮方式。樣本:將
Accept-Encoding: gzip, deflate更改為Accept-Encoding: br,以優先使用Brotli壓縮。關於Brotli壓縮相關內容具體請參見Brotli壓縮。重新導向:當來源站點需要重新導向使用者到另一個URL時,回源回應標頭可以設定正確的重新導向回應標頭。關於重新導向具體請參見配置回源301/302跟隨。
樣本:
Location: https://www.example.com/new-page.html:通知CDN及使用者瀏覽器新的資源位置,用於301或302重新導向。自訂回源行為:在某些情況下,來源站點可能需要提供一些自訂的頭部資訊給用戶端,以實現特定的功能或跟蹤目的,您可以通過配置回源回應標頭來添加這些自訂頭部。
注意事項
在添加了多條配置的情況下,配置的執行順序是按配置列表從上到下的順序逐條執行,因此需要注意對名稱相同的“HTTP回應標頭”的多個配置操作將會疊加,最終結果可能會與預期不符。例如:
配置1:增加HTTP回應標頭:
cache-control: max-age=3600配置2:增加HTTP回應標頭:
cache-control: no-cache
以上兩個配置疊加的結果是配置2最終生效
操作步驟
登入CDN控制台。
在左側導覽列,單擊域名管理。
在域名管理頁面,找到目標網域名稱,單擊操作列的管理。
在指定網域名稱的左側導覽列,單擊回源配置。
單擊修改入站回應標頭頁簽。
單擊添加。
修改入站回應標頭資訊。
重要當不同的操作方式同時作用於同一個回源回應標頭參數時,會存在操作衝突。此時按照操作類型的優先順序來執行,優先順序順序為替換>增加>變更和刪除。例如,當增加和刪除操作同時作用於同一個參數時,會先增加再刪除。
增加回應標頭參數
刪除回應標頭參數
變更回應標頭參數
替換回應標頭參數
單擊確定。
預設預設回應標頭
阿里雲CDN預設預設了Cache-Control、Content-Type、Expires、Last-Modified四個修改入站回應標頭,這四個回應標頭是HTTP協議中的重要組成部分,它們分別用於控制緩衝、定義內容類型、設定到期時間以及記錄資源的最後修改時間。
CDN預設預設回應標頭 | 說明 | 樣本 |
Cache-Control | 用於控制資源在CDN緩衝中的行為和時間周期的頭資訊。它為CDN節點和用戶端瀏覽器提供了緩衝指示,例如何時緩衝內容、緩衝多久,以及緩衝的內容何時被認為是過時的。優先順序高於舊的 |
|
Content-Type | 描述了返回給用戶端的資源的資料類型。它協助用戶端正確地解釋和顯示接收到的資料。CDN使用這個頭資訊來處理對應的資料類型以及如何傳輸它們。 |
|
Expires | 提供了一個具體的日期/時間,這個時間點之後資源被認為是到期的。CDN使用這個頭來確定資源是否仍然有效,如果到期,CDN將回源請求新的資源。 |
|
Last-Modified | 表示資源最後一次被修改的時間。CDN和瀏覽器使用這個回應標頭來判斷自從該資源上次被緩衝後是否有被修改過。 |
|
配置樣本
樣本一:配置響應文檔屬於某種MIME類型
配置情境
如果您希望配置響應文檔屬於某種MIME類型。
MIME類型主要包含以下幾類:
文本類型:包括文字檔(例如.txt、.csv)和HTML檔案(例如.html、.htm、.shtml)。
圖片類型:包括常見的圖片檔案(例如.jpg、.png、.gif)。
音訊類型:包括音頻檔案(例如.mp3、.wav)。
視頻類型:包括視頻檔案(例如.mp4、.avi)。
應用程式類型:包括應用程式檔案(例如.pdf、.doc、.xls)。
配置方法
回應標頭操作:增加
自訂回應標頭名稱:Content-Type。
回應標頭值:text/html。

結果說明:在來源站點發送給CDN節點的響應資訊中聲明內容類型為text/html,再次配置將覆蓋舊值。
樣本二:刪除回應標頭資訊
配置情境
如果您希望刪除回應標頭資訊。
配置方法
回應標頭操作:刪除
自訂回應標頭名稱:Content-Type。

結果說明:刪除要求標頭中的Content-Type資訊,然後返回給使用者。
如果同時完成了樣本一和樣本二,那麼會先增加回應標頭Content-Type資訊(響應的內容屬於text/html類型),然後刪除該要求標頭,最終結果為:響應的資源沒有MIME類型限制,直接以最初的類型返回使用者。



