2013-07-06 28 views
1

我的expressjs應用程序正在appfog中運行。我放了一個簡單的日期戳來檢查路由中的時間,並將緩存控制的標題設置爲300秒。無論是鉻合金還是清漆,似乎都不會尊重它,因爲它會在我每次請求時帶來新的日期戳。緩存控制不能在鉻和清漆工作也不尊重緩存控制

這裏是頭

Request Method:GET 
Status Code:200 OK 
Request Headersview source 
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:en-US,en;q=0.8 
Cache-Control:no-cache 
Connection:keep-alive 
Cookie:__utma=215193361.324650093.1367196659.1370199358.1370202384.19; __utmz=215193361.1367196659.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); connect.sid=s%3A8E7Ja9uzypmXXBKawm02-Q3I.srSznDz5BZiS4F2amcSmDqxuWB8hIk7zL6rMAwF0xec 
Pragma:no-cache 
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36 


**Response Headers** 
view source 
Accept-Ranges:bytes 
Age:0 
Cache-Control:max-age=300 
Connection:keep-alive 
Content-Encoding:gzip 
Content-Length:46 
Content-Type:text/plain 
Date:Sat, 06 Jul 2013 16:19:57 GMT 
Expires:Sat Jul 06 2013 16:24:57 GMT+0000 (UTC) 
Server:nginx 
Vary:Accept-Encoding 
Via:1.1 varnish 
X-Powered-By:Express 
X-Varnish:2078531013 

發生了什麼

回答

0

我想有兩個不同的問題:

  1. Varnish.-光油在請求接收一個Cookie,因此通過默認它不會緩存答案[1]。
  2. Chrome.-服務器正在回答「Pragma:no-cache」,這很可能會避免Chrome緩存項目。

無論如何,調試清漆緩存問題沒有使用實際的VCL是相當困難的。

[1] https://www.varnish-software.com/static/book/VCL_Basics.html#default-vcl-recv

+1

服務器沒有設置pragma:no-cache。這是請求標題 – coool

+0

不好意思,但問題中的標題在我看到它們時有所不同。無論如何,我的反應清漆部分仍然存在。 – NITEMAN