Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> 電腦軟件教程 >> 服務器技術 >> 關於服務器 >> Cache-Control(常規標頭,HTTP1.1)

Cache-Control(常規標頭,HTTP1.1)

日期:2017/2/8 10:17:09      編輯:關於服務器
.private(僅為響應標頭)
響應:告知緩存者(據我所知,是指用戶代理,常見浏覽器的本地緩存.用戶也是指,系統用戶.但也許,不應排除,某些網關,可以識別每個終端用戶的情況),只針對單個用戶緩存響應. 且可以具體指定某個字段.如private –“username”,則響應頭中,名為username的標頭內容,不會被共享緩存.

.no-cache:
請求: 告知緩存者,必須原原本本的轉發原始請求,並告知任何緩存者,別直接拿你緩存的副本,糊弄人.你需要去轉發我的請求,並驗證你的緩存(如果有的話).對應名詞:端對端重載.
響應: 允許緩存者緩存副本.那麼其實際價值是,總是強制緩存者,校驗緩存的新鮮度.一旦確認新鮮,則可以使用緩存副本作為響應. no-cache,還可以指定某個包含字段,比如一個典型應用,no-cache=Set-Cookie. 這樣做的結果,就是告知緩存者,對於Set-Cookie字段,你不要使用緩存內容.而是使用新滴.其他內容則可以使用緩存.

.no-store:
請求:告知,請求和響應都禁止被緩存.(也許是出於隱私考慮)
響應:同上.

.max-age:
請求:強制響應緩存者,根據該值,校驗新鮮性.即與自身的Age值,與請求時間做比較.如果超出max-age值,則強制去服務器端驗證.以確保返回一個新鮮的響應.其功能本質上與傳統的Expires類似,但區別在於Expires是根據某個特定日期值做比較.一但緩存者自身的時間不准確.則結果可能就是錯誤的.而max-age,顯然無此問題. Max-age的優先級也是高於Expires的.
響應:同上類似,只不過發出方不一樣.

.max-stale:
請求:意思是,我允許緩存者,發送一個,過期不超過指定秒數的,陳舊的緩存.
響應:同上.

.must-revalidate(僅為響應標頭)
響應:意思是,如果緩存過了新鮮期,則必須重新驗證.而不是試圖返回一個不在新鮮期的緩存.與no-cache的區別在於,no-cache,完全無視新鮮期的概念.總是強制重新驗證.理論上,must-revalidate更節省流量,但相比no-cache,可能並不總是那麼精准.因為即使緩存者,認為是新鮮的,也不能保證服務器端沒有做過更新.如果緩存者是一個緩存代理服務器,如果其試圖重新驗證時,無法連接上原始服務器,則也不允許返回一個不新鮮的,緩存中的副本.而是必須返回一個504 Gateway timeout.

.proxy-revalidate(僅為響應標頭)
響應:限制上與must-revalidate類似.區別在於受體的范圍.proxy-revalidate,是要排除掉用戶代理的緩存的.即,其規則並不應用於用戶代理的本地緩存上.

.min-fresh(僅為請求標頭)
請求:告知緩存者,如果當前時間加上min-fresh的值,超了該緩存的過期時間.則要給我一個新的.其實個人覺得,其功能上有點和max-age類似.但是更大的是語義上的區別.

.only-if-cached:(僅為請求標頭)
請求:告知緩存者,我希望內容來自緩存,我並不關心被緩存響應,是否是新鮮的.

.s-maxage(僅為響應標頭)
響應:與max-age的唯一區別是,s-maxage僅僅應用於共享緩存.而不引用於用戶代理的本地緩存,等針對單用戶的緩存. 另外,s-maxage的優先級要高於max-age..cache-extension (cache-extension是一個泛化的代稱.它指所有自定義,或者說擴展的,指令,客戶端和服務器端都可以自定義擴展Cache-Control相關的指令.) 那麼,實際上我們可以這樣 Cache-Control:max-age=300, custom-directive = xxx, public. 這樣我們就定義了一個被統稱為cache-extension的擴展指令.該指令如果對應的客戶端或服務器端,不認識,就會忽略掉.

.no-transform
請求:告知代理,不要更改媒體類型,比如jpg,被你改成png.
響應:同上.
Copyright © Windows教程網 All Rights Reserved