邊緣安全加速 ESA節點的出站回應標頭是HTTP響應訊息頭的組成部分,用於攜帶並傳遞特定的響應參數給用戶端。通過配置ESA節點的出站回應標頭,可實現資源返回時的回應標頭控制。ESA支援對出站回應標頭規則進行新增、修改和刪除,以滿足更多實際業務需求。
功能介紹
當用戶端請求訪問資源時,請求首先到達ESA。如果未命中ESA節點的緩衝,將向來源站點發起回源請求以擷取資料。在來源站點返回資料後,ESA節點將根據您配置的回應標頭規則對原始響應進行修改(例如:添加、替換或刪除特定欄位),最終將包含回應標頭的完整資源返回給用戶端,以實現跨域存取控制、緩衝策略最佳化等業務需求。
應用情境
告知用戶端ESA回應檔的資源類型:如添加回應標頭
Content-Type: text/html,以明確告知用戶端ESA回應檔的格式為HTML,並進行相應渲染處理。實現跨域資源訪問:當使用者請求ESA上某個網域名稱的資源時,可以在ESA返回的響應訊息中配置回應標頭
Access-Control-Allow-Origin,以實現跨域訪問,請參考配置跨域資源共用。自訂響應行為:通過添加或修改自訂頭部資訊,可以根據業務需求調整用戶端接收到的響應內容和格式,以實現特定功能或跟蹤目的。
注意事項
在添加了多條配置的情況下,配置的執行順序是按配置列表從上到下的順序逐條執行,回應標頭名稱相同的配置將被後續配置覆蓋,因此最終結果可能與預期不符。
樣本一
響應資訊裡面攜帶了一個回應標頭
test:123。規則裡面新增了一個回應標頭
test:321。
響應資訊命中規則的情況下,執行結果是原始響應裡面的回應標頭test:123被覆蓋為test:321。
樣本二
響應資訊裡面攜帶了一個回應標頭
test:123。規則裡面新增了一個回應標頭
test:321,然後又配置了一條規則是刪除回應標頭test。
響應資訊命中規則的情況下,執行結果是原始響應裡面的回應標頭test:123被刪除。
操作步驟
新增規則後,當使用者發起資源訪問請求時,ESA將根據規則的生效優先順序依次進行匹配與執行。
在ESA控制台,選擇網站管理,在網站列單擊目標網站。
在左側導覽列,選擇。
選擇修改回應標頭頁簽,單擊ESA到用戶端項,單擊新增規則。

單擊新增規則,在如果請求匹配以下規則...地區設定要匹配的使用者請求特徵,具體配置規則請參見規則運算式的組成。
在修改回應標頭地區,選擇操作方式,寫入回應標頭名稱和回應標頭值後單擊確定。
操作方式
類型
說明
樣本
添加
靜態
在返回用戶端的響應中添加指定回應標頭。
如果用戶端中的回應標頭已包含同名回應標頭,則新添加的回應標頭將覆蓋該同名回應標頭。
增加名稱為
x-code,值為key1的回應標頭,請填寫:回應標頭名稱:
x-code回應標頭值:
key1
動態
回應標頭值支援設定為一個運算式。
增加名稱為
Client-Ip-Geo-Location,值為ip.geoip.country的回應標頭,用於記錄用戶端IP歸屬的地理位置對應的國家或地區,請填寫:回應標頭名稱:
Client-Ip-Geo-Location回應標頭值:
ip.geoip.country
變更
靜態
在返回用戶端的響應中變更指定回應標頭的值。
修改名稱為
x-code的回應標頭,值為key2,請填寫:回應標頭名稱:
x-code回應標頭值:
key2
動態
回應標頭值支援設定為一個運算式。
修改名稱為
Client-Ip-Geo-Location的回應標頭,值為ip.geoip.country,將回應標頭值變更為用戶端IP歸屬的地理位置對應的國家或地區,請填寫:回應標頭名稱:
Client-Ip-Geo-Location回應標頭值:
ip.geoip.country
刪除
在返回用戶端的響應中刪除所有與回應標頭名稱匹配的參數值,無論是否有重複的回應標頭參數。
刪除名稱為
x-code的回應標頭,請填寫回應標頭名稱:x-code。說明禁止配置以
ali-inner或者ali-swift開頭的回應標頭名稱。回應標頭值中可以配置多個值,用英文逗號
,分隔。刪除操作不區分靜態模式和動態模式,效果一致。
變更是對已存在的回應標頭做修改,僅在原始回應標頭中存在對應名稱的回應標頭時,變更操作才會生效。
配置樣本:開啟跨域資源共用
若使用OSS作為來源站點,OSS與ESA控制台同時配置CORS,ESA的配置將覆蓋OSS的跨網域設定。
針對所有請求生效
情境描述
允許當前網站(如example.com)下的所有請求均可跨域訪問任意地址上的資源。
配置步驟
在ESA控制台,選擇網站管理,在網站列單擊目標網站。
在左側導覽列,選擇,在轉換規則頁面選擇修改回應標頭頁簽,選擇回應標頭位置為ESA到用戶端,單擊新增規則按鈕。

在新增修改回應標頭規則頁面根據業務需求填寫相關欄位。可參考以下填寫:
規則名稱:填寫自訂規則名稱,如
rule-cors-for-all。如果請求匹配以下規則...:設定規則條件,用於匹配和過濾用戶端請求。本例中選擇所有傳入請求即可。
則執行…:設定修改回應標頭的規則執行動作,本例中填寫:
類型:選擇靜態
操作方式:選擇添加
回應標頭名稱:輸入
Access-Control-Allow-Origin回應標頭值:輸入
*

配置效果
在進行任意跨域請求時,ESA都會在回應標頭中增加Access-Control-Allow-Origin:*,瀏覽器即可成功響應並展示跨域資源。

針對指定請求生效
情境描述
針對用戶端請求中攜帶的origin標題的值包含網域名稱example.com下的任意子網域名稱,並且同時支援http協議和https協議,例如以下情況都允許跨域訪問資源:
origin:http://www.example.comorigin:https://www.example.comorigin:http://image.example.comorigin:https://image.example.com
在響應中添加CORS頭,CORS回應標頭內容與要求標頭中的origin一致。
配置步驟
在ESA控制台,選擇網站管理,在網站列單擊目標網站。
在左側導覽列,選擇,在轉換規則頁面選擇修改回應標頭頁簽,選擇回應標頭位置為ESA到用戶端,單擊新增規則按鈕。

在新增修改回應標頭規則頁面參考以下填寫:
規則名稱:填寫自訂規則名稱,如
rule-cors-origin。如果請求匹配以下規則...:設定規則條件,用於匹配和過濾用戶端請求,只對滿足特定條件的請求執行添加回應標頭的操作。本例中填寫
標題 origin的值 與Regex匹配 ^https?://(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?\.)+example\.com$。也可直接編輯運算式如下:
(http.request.headers["origin"] matches "^https?://(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?\.)+example\.com$")說明若您的套餐不支援使用Regex匹配,可以使用運算子
等於其中任意一個來匹配,並枚舉出允許跨域的origin標題值。也可直接編輯運算式如下:
(http.request.headers["origin"] in {"http://www.example.com" "https://www.example.com" "http://image.example.com" "https://image.example.com"})
則執行…:設定修改回應標頭的規則執行動作,本例中填寫:
類型:選擇動態
操作方式:選擇添加
回應標頭名稱:輸入
Access-Control-Allow-Origin回應標頭值:輸入
http.request.headers["origin"]

配置效果
在進行跨域請求時,請求中的origin頭符合規則時,則ESA將在回應標頭中增加Access-Control-Allow-Origin標題,標題值內容與用戶端請求中攜帶的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 |
相關文檔
規則相關的功能,在生效優先順序、可重新進入性、生效顆粒度上存在差異,詳細情況請查看規則相關功能的特性說明。