出站回應標頭是HTTP響應訊息頭的組成部分之一,可攜帶特定響應參數並傳遞給用戶端,用來控制緩衝行為。通過修改出站回應標頭,當使用者請求加速網域名稱下的資源時,CDN返回的響應訊息會攜帶您配置的回應標頭,從而實現跨域訪問等特定功能。
背景資訊
出站回應標頭是HTTP協議中用於控制緩衝的機制。當用戶端請求資源時,CDN節點返回的HTTP回應標頭允許在特定條件下緩衝內容。
HTTP回應標頭的配置屬於網域名稱維度配置,一旦配置生效,便會對網域名稱下所有資源的響應訊息生效。
配置HTTP回應標頭僅影響用戶端(例如瀏覽器)的響應行為,不影響CDN節點的緩衝行為。泛網域名稱暫不支援修改出站回應標頭。
適用情境
告知用戶端CDN回應檔的資源類型:添加回應標頭
Content-Type: text/html告知用戶端CDN回應檔的格式是HTML格式。實現跨域資源訪問:當使用者請求CDN上某個網域名稱的資源時,您可以在CDN返回的響應訊息中配置回應標頭
Access-Control-Allow-Origin,以實現跨域訪問,您可以參考配置跨域資源共用來瞭解詳細資料。阿里雲CDN還支援按照已配置CORS規則對接收到的使用者的跨域請求進行校正,以實現更靈活的跨域資源存取控制。自訂響應行為:根據業務需求添加或修改自訂頭部資訊,調整用戶端接收的響應內容和格式。
注意事項
在添加了多條配置的情況下,配置的執行順序是按配置列表從上到下的順序逐條執行,因此需要注意對名稱相同的“HTTP回應標頭”的多個配置操作將會疊加,最終結果可能會與預期不符。例如:
配置1:增加HTTP回應標頭:
cache-control: max-age=3600配置2:增加HTTP回應標頭:
cache-control: no-cache
以上兩個配置疊加的結果是配置2最終生效
操作步驟
登入CDN控制台。
在左側導覽列,單擊域名管理。
在域名管理頁面,找到目標網域名稱,單擊操作列的管理。
在指定網域名稱的左側導覽列,單擊缓存配置。
單擊修改出站回應標頭頁簽。
單擊添加,修改出站回應標頭。
下面以增加出站回應標頭為例,為您介紹配置方法。
參數
說明
响应头操作
增加、刪除、變更和替換指定的回應標頭。
自定义响应头参数
選擇自訂回應標頭參數。詳細資料,請參見回應標頭參數。
自定义响应头名称
當自訂回應標頭參數選擇為自訂時,需要配置自訂回應標頭名稱。自訂回應標頭名稱要求如下:
由大小寫字母、短劃線和數字組成。
長度為1~100個字元。
响应头值
輸入您要設定的回應標頭值。詳細資料,請參見回應標頭參數。
是否允许重复
允许:保留來源站點返回的頭,同時會加上一個同名的頭。
不允许:來源站點返回的頭會被新配置的同名頭覆蓋。
跨域驗證
跨域校正預設為關閉狀態,只有在响应头操作為“增加”且自定义响应头参数為“Access-Control-Allow-Origin”的時候才可以配置。
開啟:開啟狀態下CDN節點將按以下規則對使用者做跨域校正,並根據校正結果響應“Access-Control-Allow-Origin”的值。
關閉:關閉狀態下CDN節點不會校正使用者請求中攜帶的Origin頭,只會固定響應已配置的Access-Control-Allow-Origin值。
跨域校正規則請參見跨域校正規則。
規則條件
規則條件能夠對使用者請求中攜帶的各種參數資訊進行識別,以此來決定某個配置是否對該請求生效。
不使用:不使用規則條件。
選擇已配置的規則條件,新增或修改規則條件請參見規則引擎。
單擊確定,完成配置。
成功修改出站回應標頭後,您可以在出站回應標頭節點HTTP回應標頭列表中,對當前的配置進行修改或删除操作。
跨域校正規則
是否允许重复和跨域校正這兩個配置項之間存在互斥,是否允许重复配置為允许的情況下,跨域校正將會失效。
任意匹配:自訂回應標頭參數
Access-Control-Allow-Origin的值設定為*不論使用者請求裡面是否攜帶Origin參數,也不論攜帶的Origin參數為何值,都固定返回Access-Control-Allow-Origin:*。精確匹配:自訂回應標頭參數
Access-Control-Allow-Origin的值設定了單個或者多個值(多個值之間用,分隔)。如果使用者要求標頭裡攜帶的
Origin參數值與被設定的任意一個值精確匹配,就會響應對應的跨域頭。如果都沒有精確匹配上,則不響應跨域頭。
泛網域名稱匹配:自訂回應標頭參數
Access-Control-Allow-Origin的值設定了泛網域名稱,則會校正要求標頭中Origin值是否能匹配上Access-Control-Allow-Origin的泛網域名稱。
您可以參考配置跨域資源共用來瞭解如何配置。
回應標頭參數
回應標頭參數 | 說明 | 樣本 |
自訂 | 支援添加自訂回應標頭。自訂回應標頭名稱要求如下:
| Test-Header |
Cache-Control | 指定用戶端程式請求和響應遵循的緩衝機制。 | no-cache |
Content-Disposition | 指定用戶端程式把請求所得的內容存為一個檔案時提供的預設的檔案名稱。 | examplefile.txt |
Content-Type | 指定用戶端程式響應對象的內容類型。 | text/plain |
Pragma | Pragma 是一個在 HTTP/1.0 中規定的通用首部,這個首部通常用於在伺服器的響應中定義用戶端對檔案的緩衝行為。 | no-cache |
Access-Control-Allow-Origin |
|
|
Access-Control-Allow-Methods | 指定允許的跨域要求方法。多個方法用英文逗號 | POST,GET |
Access-Control-Allow-Headers | 指定允許的跨域請求欄位。 | X-Custom-Header |
Access-Control-Expose-Headers | 指定允許訪問的自訂頭資訊。 | Content-Length |
Access-Control-Allow-Credentials | 該回應標頭表示是否可以將對請求的響應暴露給頁面。
| true |
Access-Control-Max-Age | 指定用戶端程式對特定資源的預請求返回結果的緩衝時間,單位為秒。 | 600 |
回應標頭值支援配置為“*”,表示任意來源。
回應標頭值非“*”的情況下,支援配置單個或者多個IP、網域名稱、或者IP和網域名稱混合。相互間用英文(,)分隔。
回應標頭值非“*”的情況下,必須包含協議頭“http:// ”或者“https://”。
回應標頭值支援攜帶連接埠。
回應標頭值支援泛網域名稱。