搜集了一些关于header中cache的配置信息
-------------------------------------
为了在http的响应头中添加入Expires、Cache-Control、Pragma这样的信息,我最初是使用的在网页<head></head>元素之间添加meta标签的方式,来企图添加这些http头信息到Response中,但这样的方式一直没有效果。通过查看页面源代码,发现meta标签也确实已经正确的加上了,但通过FF观察Response对象又没有输出相应的头信息。而当我改用Filter的方式,在Filter中通过获取Response对象,执行response.setHeader()方法,将http头信息写入Response对象时,就立即看到效果了。为什么会这样呢?
究其原因,其实是我对meta标签的误解造成的。Meta标签是html标准中的一个标签,是Response中html内容的一部分。它主要是用来为浏览器或搜索引擎提供与网页内容相关的信息的,也就是说它是为能够解析html语言的工具提供信息的。而http是一个应用层的协议,html文档只不过是http协议可以携带的内容之一。
那些包含meta标签信息的html文档都被http当做是普通文档而包装在body块中进行传输。因此,存在于meta标签中的这些模拟的http头信息,并不能够真正的对http头产生影响。而在程序的Filter对象中,通过response.setHeader()方法,由于操作的对象Response就是一个http响应对象的实例,所以当然可以成功的改变Response的头信息。
http://hi.baidu.com/tianpaomian/blog/item/fb4741129463925bf819b8d7.html
---------------------------------------
public static void setCacheExpireDate(HttpServletResponse response,
int seconds) {
if (response != null) {
Calendar cal = new GregorianCalendar();
cal.add(Calendar.SECOND, seconds);
response.setHeader("Cache-Control", "PUBLIC, max-age=" + seconds + ", must-revalidate");
response.setHeader("Expires", htmlExpiresDateFormat().format(cal.getTime()));
}
}
public static DateFormat htmlExpiresDateFormat() {
DateFormat httpDateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
httpDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
return httpDateFormat;
}
在setHeader expires 的时候,也可以使用
response.setDateHeader("Expires",System.currentTimeMillis()+3600*1000);
http://weblogs.java.net/blog/felipegaucho/archive/2007/08/expires_http_he.html
-------------------------------------
Max-age和mod_expires
expires指定了一个确定的时间,这就要求客户端和服务器端在时间上保持一致。
除了expires,在http1.1中还有个可选择的Cache-Control相应头,通过Cache-Control的Max-age指令可以指定缓存的内容的生
命期限,即多久后失效,cache-conctrol类似:
Cache-Control: max-age=315360000
如果同时设置了expires和max-age指令,max-age将会覆盖expires。
http://blog.sina.com.cn/s/blog_6b93a42d0100vhzj.html
-------------------------------------
分享到:
相关推荐
在这个特定的场景下,我们关注的是“Loadrunner负载测试中的浏览器缓存设置”。了解如何在LoadRunner中正确设置浏览器缓存对于获取真实用户行为的数据至关重要,因为这直接影响到测试结果的准确性。 浏览器缓存是...
综上所述,页面的缓存与不缓存设置是通过HTTP协议头和HTML的`meta`标签来实现的,这涉及到多个层次的缓存策略,包括浏览器、中间缓存服务器和Web服务器。理解并正确运用这些设置,对于提高网站性能和用户体验至关...
总的来说,通过在HTTP响应Header中设置`Content-Type`、`Content-Disposition`、`Content-Length`、`Accept-Ranges`以及防止缓存的Header,开发者可以精确控制浏览器如何处理和显示服务器发送的文件。这不仅影响到...
1. **确定缓存策略**:首页展示的新闻列表每天更新一次,因此我们可以设置一个较短的缓存时间,例如1小时。 2. **编写JSP页面**: - 在JSP页面顶部添加指令控制服务器端缓存: ```jsp ``` - 设置HTTP响应头...
- **控制缓存行为**:比如通过设置`Cache-Control`头来控制浏览器如何缓存响应。 - **自定义头部信息**:可以用来传递开发者自定义的信息,如上面示例中的`Test`头。 总之,正确地使用Header可以使得AJAX请求更加...
在Web开发中,页面缓存是提高网站性能的重要手段之一。但是,在某些情况下,为了确保用户看到的是最新的数据或页面状态,我们需要禁用页面缓存。本文将详细介绍如何通过PHP代码来实现页面缓存的禁止。 #### 一、...
- `web_cleanup_auto_headers` 和 `web_remove_auto_header`:管理和删除自定义头。 - `web_revert_auto_header`:撤销添加的特定头,但保留隐性头。 - `web_save_header`:将请求和响应头保存到变量中。 11. **...
在Web开发中,缓存机制是提升网站性能的重要手段之一。然而,在某些情况下,例如动态内容频繁更新的网页,为了确保用户始终能够看到最新的内容,开发者可能需要禁用对这些页面的缓存。本文将详细介绍如何针对ASP、...
在IT行业中,尤其是在Web开发领域,页面缓存是一种优化网站性能的重要技术。当我们谈论"jsp 页面缓存"时,我们指的是在JSP(JavaServer Pages)应用中利用缓存策略来提升网页加载速度和减少服务器负载。JSP是Java...
在互联网技术领域中,Web缓存是一种提高网站响应速度和减少服务器负载的重要技术手段。Web缓存分为两大类:强缓存和协商缓存。本文重点讲述如何使用Nginx配置协商缓存的过程,以及协商缓存的工作原理,帮助大家在...
首先,我们需要创建一个HttpClient实例,设置基础URL和其他必要的请求头,如Content-Type。 ```csharp HttpClient httpClient = new HttpClient(); httpClient.BaseAddress = new Uri("http://your-api-url.com"); ...
在Web开发中,为了提高用户体验及页面加载速度,浏览器通常会缓存一部分资源。但有时为了确保用户获取到最新的内容,我们需要禁止或控制浏览器对特定页面的缓存。本文将详细介绍如何在JSP(JavaServer Pages)应用中...
1. **设置响应头**:通过设置`response.setHeader()`方法,可以控制HTTP响应头,从而控制浏览器的缓存行为。例如,设置`Pragma`、`Cache-Control`和`Expires`头字段可以告诉浏览器不缓存页面或立即过期。 ```java ...
3. **性能优化**:合理利用缓存可以显著提高Web应用的性能,因此在设置缓存控制时应权衡好安全性和性能之间的关系。 通过上述介绍,我们可以看到,在JSP中控制缓存行为是非常灵活且强大的。开发者可以根据具体需求...
然而,对于动态网页或频繁更新的网页,不恰当的缓存设置可能会导致用户看到的是过期或错误的信息。因此,正确地管理页面缓存,尤其是在JSP和Servlet中,对于确保用户体验和数据的实时性至关重要。 ### JSP与Servlet...
在Web开发中,缓存是一项非常重要的技术,它可以显著提高网站的响应速度和用户体验。然而,在某些情况下,我们需要清除缓存以确保用户获取到最新的数据。本文将详细介绍如何在JSP(JavaServer Pages)环境中清除不同...
消除浏览器的301重定向缓存 浏览器的301重定向缓存是一种常见的问题,当用户输入特定的URL时,浏览器会自动重定向到另一个URL,而不管用户的意图是什么。这是因为浏览器会缓存301重定向的结果,以便加快网页的加载...
这段配置告诉Nginx对.css和.js文件设置1小时的过期时间,并添加`Cache-Control`头,声明为可公共缓存。这允许浏览器和代理服务器缓存这些静态资源,但具体配置应根据实际需求和服务器性能调整。 综上所述,页面缓存...
要清空浏览器缓存,可以手动通过浏览器的设置选项来完成,如在Chrome中,可以在设置->隐私和安全->清除浏览数据中选择清除缓存文件。此外,开发者可以通过在HTTP响应头中添加`Cache-Control`或`Pragma`字段来控制...