配置節(jié)點(diǎn)HTTP響應(yīng)頭
節(jié)點(diǎn)HTTP響應(yīng)頭是HTTP響應(yīng)消息頭的組成部分之一,可攜帶特定響應(yīng)參數(shù)并傳遞給客戶端,用來(lái)控制緩存行為。通過(guò)配置節(jié)點(diǎn)HTTP響應(yīng)頭,當(dāng)用戶請(qǐng)求加速域名下的資源時(shí),CDN返回的響應(yīng)消息會(huì)攜帶您配置的響應(yīng)頭,從而實(shí)現(xiàn)跨域訪問(wèn)等特定功能。
背景信息
節(jié)點(diǎn)HTTP響應(yīng)頭是HTTP協(xié)議中用于控制緩存的一種機(jī)制。當(dāng)客戶端請(qǐng)求一個(gè)資源時(shí),CDN節(jié)點(diǎn)返回給客戶端的HTTP響應(yīng)頭部信息,它允許客戶端和CDN節(jié)點(diǎn)在特定條件下緩存響應(yīng)內(nèi)容。
HTTP響應(yīng)頭的配置屬于域名維度的配置,一旦配置生效,便會(huì)對(duì)域名下所有資源的響應(yīng)消息生效。
配置HTTP響應(yīng)頭僅影響客戶端(例如瀏覽器)的響應(yīng)行為,不會(huì)影響到CDN節(jié)點(diǎn)的緩存行為。泛域名暫不支持配置節(jié)點(diǎn)HTTP響應(yīng)頭。
適用場(chǎng)景
告知客戶端CDN響應(yīng)文件的資源類型:添加響應(yīng)頭
Content-Type: text/html
告知客戶端CDN響應(yīng)文件的格式是HTML格式。實(shí)現(xiàn)跨域資源訪問(wèn):當(dāng)用戶請(qǐng)求CDN上某個(gè)域名的資源時(shí),您可以在CDN返回的響應(yīng)消息中配置響應(yīng)頭Access-Control-Allow-Origin,以實(shí)現(xiàn)跨域訪問(wèn),請(qǐng)參考配置跨域資源共享。
另外,阿里云CDN還支持按照已配置CORS規(guī)則對(duì)接收到的用戶的跨域請(qǐng)求進(jìn)行校驗(yàn),以實(shí)現(xiàn)更靈活的跨域資源訪問(wèn)控制。
自定義響應(yīng)行為:添加或修改自定義頭部信息,可以根據(jù)業(yè)務(wù)需求調(diào)整客戶端接收到的響應(yīng)內(nèi)容和格式,實(shí)現(xiàn)特定的功能或跟蹤目的。
注意事項(xiàng)
在添加了多條配置的情況下,配置的執(zhí)行順序是按配置列表從上到下的順序逐條執(zhí)行,因此需要注意對(duì)名稱相同的“HTTP響應(yīng)頭”的多個(gè)配置操作將會(huì)疊加,最終結(jié)果可能會(huì)與預(yù)期不符。例如:
配置1:增加HTTP響應(yīng)頭:
cache-control: max-age=3600
配置2:增加HTTP響應(yīng)頭:
cache-control: no-cache
以上兩個(gè)配置疊加的結(jié)果是配置2最終生效
操作步驟
登錄CDN控制臺(tái)。
在左側(cè)導(dǎo)航欄,單擊域名管理。
在域名管理頁(yè)面,找到目標(biāo)域名,單擊操作列的管理。
在指定域名的左側(cè)導(dǎo)航欄,單擊緩存配置。
單擊節(jié)點(diǎn)HTTP響應(yīng)頭頁(yè)簽。
單擊添加,配置節(jié)點(diǎn)HTTP響應(yīng)頭。
下面以增加節(jié)點(diǎn)HTTP響應(yīng)頭為例,為您介紹配置方法。
參數(shù)
說(shuō)明
響應(yīng)頭操作
您可以增加、刪除、變更和替換指定的響應(yīng)頭。
自定義響應(yīng)頭參數(shù)
選擇自定義響應(yīng)頭參數(shù)。詳細(xì)信息,請(qǐng)參見(jiàn)響應(yīng)頭參數(shù)。
自定義響應(yīng)頭名稱
當(dāng)自定義響應(yīng)頭參數(shù)選擇為自定義時(shí),需要配置自定義響應(yīng)頭名稱。自定義響應(yīng)頭名稱要求如下:
由大小寫字母、短劃線(-)和數(shù)字組成。
長(zhǎng)度為1~100個(gè)字符。
響應(yīng)頭值
輸入您要設(shè)置的響應(yīng)頭值。詳細(xì)信息,請(qǐng)參見(jiàn)響應(yīng)頭參數(shù)。
是否允許重復(fù)
允許:允許重復(fù)將會(huì)保留源站返回的頭,同時(shí)會(huì)加上一個(gè)同名的頭。
不允許:如果不允許重復(fù),源站返回的頭會(huì)被新配置的同名頭覆蓋。
跨域驗(yàn)證
跨域校驗(yàn)?zāi)J(rèn)為關(guān)閉狀態(tài),只有在響應(yīng)頭操作為“增加”,自定義響應(yīng)頭參數(shù)為“Access-Control-Allow-Origin”的時(shí)候才可以配置。
開(kāi)啟:開(kāi)啟狀態(tài)下CDN節(jié)點(diǎn)將按以下規(guī)則對(duì)用戶做跨域校驗(yàn),并根據(jù)校驗(yàn)結(jié)果響應(yīng)“Access-Control-Allow-Origin”的值。
關(guān)閉:關(guān)閉狀態(tài)下CDN節(jié)點(diǎn)不會(huì)校驗(yàn)用戶請(qǐng)求中攜帶的Origin頭,只會(huì)固定響應(yīng)已配置的Access-Control-Allow-Origin值。
跨域校驗(yàn)規(guī)則請(qǐng)參見(jiàn)跨域校驗(yàn)規(guī)則。
規(guī)則條件
規(guī)則條件能夠?qū)τ脩粽?qǐng)求中攜帶的各種參數(shù)信息進(jìn)行識(shí)別,以此來(lái)決定某個(gè)配置是否對(duì)該請(qǐng)求生效。
不使用:不使用規(guī)則條件。
選擇已配置的規(guī)則引擎,新增或修改規(guī)則引擎請(qǐng)參見(jiàn)規(guī)則引擎。
單擊確定,完成配置。
成功配置節(jié)點(diǎn)HTTP響應(yīng)頭后,您可以在節(jié)點(diǎn)HTTP響應(yīng)頭列表中,對(duì)當(dāng)前的配置進(jìn)行修改或刪除操作。
跨域校驗(yàn)規(guī)則
是否允許重復(fù)和跨域校驗(yàn)這兩個(gè)配置項(xiàng)之間存在互斥,是否允許重復(fù)配置為允許的情況下,跨域校驗(yàn)將會(huì)失效。
任意匹配:自定義響應(yīng)頭參數(shù)“Access-Control-Allow-Origin”的值設(shè)置為“*”不論用戶請(qǐng)求里面是否攜帶“Origin”參數(shù),也不論攜帶的“Origin”參數(shù)為何值,都固定返回“Access-Control-Allow-Origin:*”。
精確匹配:自定義響應(yīng)頭參數(shù)“Access-Control-Allow-Origin”的值設(shè)置了單個(gè)或者多個(gè)值(多個(gè)值之間用“,”分隔)。
如果用戶請(qǐng)求頭里攜帶的“Origin”參數(shù)值與被設(shè)置的任意一個(gè)值精確匹配,就會(huì)響應(yīng)對(duì)應(yīng)的跨域頭。
如果都沒(méi)有精確匹配上,則不響應(yīng)跨域頭。
泛域名匹配:自定義響應(yīng)頭參數(shù)“Access-Control-Allow-Origin”的值設(shè)置了泛域名,則會(huì)校驗(yàn)請(qǐng)求頭中Origin值是否能匹配上“Access-Control-Allow-Origin”的泛域名。
配置示例請(qǐng)參見(jiàn)配置跨域資源共享。
響應(yīng)頭參數(shù)
響應(yīng)頭參數(shù) | 說(shuō)明 | 示例 |
自定義 | 支持添加自定義響應(yīng)頭。自定義響應(yīng)頭名稱要求如下:
| Test-Header |
Cache-Control | 指定客戶端程序請(qǐng)求和響應(yīng)遵循的緩存機(jī)制。 | no-cache |
Content-Disposition | 指定客戶端程序把請(qǐng)求所得的內(nèi)容存為一個(gè)文件時(shí)提供的默認(rèn)的文件名。 | examplefile.txt |
Content-Type | 指定客戶端程序響應(yīng)對(duì)象的內(nèi)容類型。 | text/plain |
Pragma | Pragma 是一個(gè)在 HTTP/1.0 中規(guī)定的通用首部,這個(gè)首部通常用于在服務(wù)器的響應(yīng)中定義客戶端對(duì)文件的緩存行為。 | no-cache |
Access-Control-Allow-Origin | 指定允許的跨域請(qǐng)求的來(lái)源。填寫星號(hào)(*)表示全部域名;您也可以填寫完整域名,例如 說(shuō)明
|
|
Access-Control-Allow-Methods | 指定允許的跨域請(qǐng)求方法。可同時(shí)設(shè)置多個(gè)方法,多個(gè)方法用英文逗號(hào)(,)分隔。 | POST,GET |
Access-Control-Allow-Headers | 指定允許的跨域請(qǐng)求字段。 | X-Custom-Header |
Access-Control-Expose-Headers | 指定允許訪問(wèn)的自定義頭信息。 | Content-Length |
Access-Control-Allow-Credentials | 該響應(yīng)頭表示是否可以將對(duì)請(qǐng)求的響應(yīng)暴露給頁(yè)面。
| true |
Access-Control-Max-Age | 指定客戶端程序?qū)μ囟ㄙY源的預(yù)請(qǐng)求返回結(jié)果的緩存時(shí)間,單位為秒。 | 600 |