JSON内容上的Spring MVC缓存控件头

时间:2015-02-02 14:24:29

标签: http spring-mvc

我有一个应用程序,我正在使用文本编辑器插入图像和横幅等。它通过调用AJAX请求来获取横幅获得横幅,然后它编译JS。

我想要一种快速/简单的方法来缓存请求。所以我希望只将缓存中的响应缓存30秒。

所以我试图让它在Chrome中运行,但它会继续发送请求,服务器会继续响应200 Ok。

以下是我的网络配置的相关部分:

WebContentInterceptor webContentInterceptor = new WebContentInterceptor();
webContentInterceptor.setUseCacheControlHeader(true);
webContentInterceptor.setUseExpiresHeader(true);
webContentInterceptor.setUseCacheControlNoStore(true);
webContentInterceptor.setCacheSeconds(30);

registry.addInterceptor(webContentInterceptor);

根据chrome的缓存控制标头:

Request URL:https://localhost:8443/admin/banners/json/by_shortcode/banner_test
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Cookie:sidebar_closed=1; SPRING_SECURITY_REMEMBER_ME_COOKIE=UmljaGFyZC5HaWxsaW5nQGdtYWlsLmNvbToxNDIzODgzOTI1MTY4OmU1OGM2YzVjNjIwMWIyNWM3OTZlMWM5MThjMDc0MDg4; JSESSIONID=70842F221D3172686E406242AD3F5E02
Host:localhost:8443
Referer:https://localhost:8443/admin/pages/new
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.94 Safari/537.36
X-Requested-With:XMLHttpRequest

Response Headers

Cache-Control:max-age=30
Content-Type:application/json;charset=UTF-8
Date:Mon, 02 Feb 2015 14:03:13 GMT
Expires:Mon, 02 Feb 2015 14:03:43 GMT
Pragma:no-cache
Server:Apache-Coyote/1.1
Strict-Transport-Security:max-age=31536000 ; includeSubDomains
Transfer-Encoding:chunked
X-Content-Type-Options:nosniff
X-Frame-Options:DENY
X-XSS-Protection:1; mode=block

我想知道的是:

a)为什么浏览器会在30秒窗口内重新请求相同的请求?我希望将它缓存30秒。

1 个答案:

答案 0 :(得分:0)

实际上,您告诉浏览器不要缓存任何内容:Pragma:no-cache