Nginx
Nginx 發送 2 個 Cache-Control 標頭
我正在使用 ngnix 提供我的靜態內容。
位置/靜態{ 別名/opt/static/blog/; access_log 關閉; 上標籤; etag_hash on; etag_hash_method md5; 1d 到期; add_header Pragma "public"; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; }
生成的標頭如下所示:
記憶體控制:公共,必須重新驗證,代理重新驗證 記憶體控制:max-age=86400 連接:關閉 內容編碼:gzip 內容類型:應用程序/x-javascript;字元集=utf-8 日期:2012 年 9 月 11 日星期二 08:39:05 GMT 電子標籤:e2266fb151337fc1996218fafcf3bcee 過期時間:2012 年 9 月 12 日星期三 08:39:05 GMT 最後修改時間:2012 年 9 月 11 日星期二 06:22:41 GMT 語用:public 伺服器:nginx/1.2.2 傳輸編碼:分塊 變化:接受編碼
為什麼 nginx 發送 2 個 Cache-Control 條目,這對客戶端來說可能是個問題嗎?
http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2
當且僅當該頭欄位的整個欄位值被定義為逗號分隔列表時,具有相同欄位名稱的多個消息頭欄位可能出現在消息中
$$ i.e., #(values) $$. 必須可以將多個頭欄位組合成一個“欄位名稱:欄位值”對,而不改變消息的語義,方法是將每個後續欄位值附加到第一個欄位值,每個欄位值用逗號分隔。因此,接收具有相同欄位名稱的頭欄位的順序對組合欄位值的解釋很重要,因此代理不能在轉發消息時更改這些欄位值的順序。