簡體   English   中英

緩存POST:什么是合適的標頭?

[英]Caching POST: What are appropriate headers?

根據RFC 2616第9.5節(POST):

除非響應包含適當的Cache-Control或Expires標頭字段,否則對此方法的響應不可緩存。

什么是合適的標題

背景:服務器使用以下標頭進行響應,我擔心響應可能會被緩存。 響應頭示例:

Cache-Control:max-age=2592000, public
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:22
Content-Type:application/json
Date:Sun, 20 May 2012 13:46:06 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive:timeout=15, max=100
Pragma:no-cache
Server:Apache/2.2.22 (Amazon)
Vary:Accept-Encoding,User-Agent
X-Powered-By:PHP/5.3.13

使用jQuery的$.ajax函數從JavaScript發出發布請求,並將cache設置為false 但是,jQuery忽略了該選項。 引用自其截至2012-05-20 CEST的文獻

用POST獲取的頁面永遠不會被緩存,因此jQuery.ajaxSetup()中的緩存和ifModified選項對這些請求沒有影響。

更新資料

可能是jQuery的文檔錯誤嗎? 請參閱jQuery論壇中的相關主題

這個頭

Cache-Control:max-age=2592000, public

將導致響應被任何中介長時間存儲。 響應有點混亂,因為pragma: no-cache與此矛盾。 但是,我懷疑只是某些較老的代理甚至會查看編譯指示頭。

jQuery無法控制中間緩存,因此,例如在您的ISP處可能存在一些公共緩存,用於緩存響應。

似乎令人困惑, Cache-Control看起來像啟用緩存,而PragmaExpires似乎同時禁用了緩存。 無論如何,HTTP狀態代碼應准確告知請求是否已緩存。 200未緩存, 304或類似內容-已緩存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM