304 Not Modified
Date:Tue, 28 Jun 2011 10:08:05 GMT
Expires:Fri, 25 Jun 2021 10:08:05 GMT
Last-Modified:Thu, 04 Nov 2010 05:17:08 GMT
在response.setStatus(304);之后,在IE,Firefox上正常,在Chrome中,请求返回状态码还是200,根据日志已经是走的缓存.
几经查询,才发现,
response.addHeader("Expires:","Fri, 25 Jun 2021 10:08:05 GMT");
是标准的格林时间"EEE, dd MMM yyyy HH:mm:ss z";
如下:
Calendar c = Calendar.getInstance(new SimpleTimeZone(0, "GMT"));
SimpleDateFormat s = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z",Locale.US);
s.setTimeZone(TimeZone.getTimeZone("zh_CN"));
System.out.println(s.format(c.getTime()));
Tue, 28 Jun 2011 10:05:06 GMT
分享到:
相关推荐
本篇将详细阐述如何设置页面的缓存与不缓存,以及HTML页面中`meta`标签的作用。 首先,页面缓存主要通过HTTP协议头信息来控制。HTTP1.0使用`Pragma`字段,而在HTTP1.1中,`Cache-Control`字段成为了更强大的控制...
本篇文章将深入探讨如何利用Retrofit2和OkHttp3的Cache机制来实现数据缓存,并且着重讲解如何修改缓存时间,以便自定义缓存策略。 首先,Retrofit2是一个类型的网络请求库,它允许开发者用Java注解来声明HTTP操作,...
2. **设置HTTP响应头**:通过修改响应头信息来控制客户端浏览器的缓存行为。具体操作如下: ```java response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response....
`no-cache`表示页面不应被缓存,而`must-revalidate`表示即使页面被缓存了,也必须先验证其有效性。 - **示例**: ```php header("Cache-Control: no-cache, must-revalidate"); ``` - **解析**:这行代码告诉...
例如,设置`If-Modified-Since`为0可以强制服务器检查资源是否已更改,如果未更改,则返回304状态码,而不是实际的数据。 ```javascript xmlHTTP.setRequestHeader("If-Modified-Since","0"); ``` ### JSP与缓存...
如果图片未被修改,就返回一个304 Not Modified状态码,并且不输出任何内容,这样浏览器就会继续使用缓存的图片。 当图片内容有更新时,如果仍然希望使用缓存(但内容是更新后的),可以对比文件最后修改时间和HTTP...
如果服务器发现资源未修改,它会返回304 Not Modified状态码,浏览器则使用本地缓存的版本,从而减少网络传输。 ```php header("Last-Modified: " . gmdate("r", $max)); ``` 其中,`gmdate()`函数用于格式化...
使用 header 头设置缓存控制头 Cache-control 可以使用 PHP 的 header 函数来设置缓存控制头 Cache-control,例如: `header('Cache-control: private, must-revalidate');` 这将告诉浏览器将表单信息缓存在私有...
总结来说,解决nginx缓存不起作用的问题,可以通过修改源服务器的响应头或直接在nginx配置中使用proxy_ignore_headers指令来控制nginx的缓存行为。需要注意的是,忽略服务器端的缓存控制可能会影响到内容的实时更新...
如果资源未修改,服务器将返回304状态码,告诉浏览器使用本地缓存的版本。 三、使用Nginx设置协商缓存 1. 配置Nginx作为静态资源服务器,将静态资源的请求映射到磁盘路径。 例如,将/picture/路径下的请求映射到D:...
消除浏览器的301重定向缓存需要修改RedirectServlet.java的doGet()方法,使其不再缓存301重定向的结果。同时,也可以使用response.setHeader("Cache-Control", "no-cache");来禁止浏览器缓存重定向的结果。
此外,还可以使用Java的`HttpServletResponse`接口的`setLastModified()`方法来设置页面的最后修改时间,以便浏览器可以根据此时间判断是否需要从服务器获取新数据。 对于部分数据缓存,我们可能需要针对特定的组件...
- 为了实现自适应,我们可能需要监听某些数据源的变化,如数组的更新,然后重新计算并设置header的高度。 3. **设置代理方法**: - 对于`UITableView`,确保设置了`tableView.delegate`,并且实现了`tableView(_:...
2. **协商缓存**:当强制缓存失效时,客户端会向服务器发送带有缓存验证信息(如`If-Modified-Since`或`If-None-Match`)的HTTP请求,由服务器决定是否返回304状态码(未修改)来告知客户端使用缓存。 #### 二、...
当文件被修改时,只需更改版本号(这里用日期表示),浏览器会认为这是新的资源,从而强制加载。更智能的做法是使用当前时间戳,确保每次请求的URL都是唯一的。 3. **动态加载JS并控制缓存**: 对于频繁请求的...
在Prototype库中,可以通过传递`requestHeaders`选项来设置这些头信息,确保每次请求都是新鲜的,不受缓存影响。这不仅适用于Prototype,也适用于其他JavaScript库,如jQuery、axios等,它们都提供了类似的API来配置...
"Header Editor" 插件让用户能够自由添加、修改或删除这些头信息,以满足特定需求。 1. **添加请求头**:当你需要在请求中携带特定的令牌、Cookie或其他自定义信息时,"Header Editor" 可以方便地添加这些额外的头...