HTTP Caching 优化网站

HTTP Caching 用好了,可以极大的减小服务器负载和减少网络带宽。十分有必要深入了解下 http 的 caching 协议。

先来看下请求/响应过程:

http 请求/响应

1、用 Last-Modified 头

在第一次请求的响应头返回 Last-Modified 内容,时间格式如:Wed, 22 Jul 2009 07:08:07 GMT。是零时区的 GMT
时间,servlet 中可以用 response.addDateHeader ("Last-Modified", date.getTime ());
加入响应头。如图:

last-modified 和 If-Modified-Since

Last-Modified 与 If-Modified-Since 对应的,前者是响应头,后者是请求头。服务器要处理 If-Modified-Since
请求头与 Last-Modified 对比看是否有更新,如果没有更新就返回 304
响应,否则按正常请求处理。如果要在动态内容中使用它们,那就要程序来处理了。

ps:servlet 取 If-Modified-Since 可以用 long last = requst.getDateHeader
("If-Modified-Since");

2、用 Etag 头

很多时间可能不能用时间来确定内容是否有更新。那可以用 Etag 头,etag 是以内容计算一个标识。计算的方式可以自己决定,比如可以用
crc32、md5等。

Etag 和 If-None-Match

Etag 与 If-None-Match 是对应的,前者是响应头,后者是请求头。服务器要判断请求内容计算得到的 etag 是否与请求头
If-None-Match 是否一致,如果一致就表示没有更新,返回 304 就可,否则按正常请求处理。可以参考:
HttpServletResponseWrapper 实现 Etag 过滤器

3、用 Expires 头,过期时间

当请求的内容有 Expires 头的时候,浏览器会在这个时间内不去下载这个请求的内容(这个行为对 F5 或 Ctrl+F2 无效,用
IE7,Firefox 3.5 试了,有效的比如:在地址输入后回车)。

expires 过期时间

在 servlet 中可以用 response.addDateHeader ("Expires", date.getTime ());
添加过期内容。

ps:在 httpwatch 中可以看到 Result 为 (Cached) 状态的。

4、用 max-age 的 Cache-Control 头

max-age 的值表示,多少秒后失效,在失效之前,浏览器不会去下载请求的内容(当然,这个行为对 F5 或 Ctrl+F2 无效)。比如:服务器写
max-age 响应:response.addHeader ("Cache-Control", "max-age=10");

ps:如果你还要加一些 Cache-Control 的内容,比如:private,最好不要写两个 addHeader,而是一个
response.addHeader ("Cache-Control", "private, max-age=10"); 否则 ie 可能对 max-age
无效,原因它只读第一个 Cache-Control 头。

小结:

Last-Modified 与 Etag 头(即是方式 1 和2)还是要请求服务器的,只是仅返回 304 头,不返回内容。所以浏览怎么 F5 ,304
都是有效的。但用 Ctrl+F5 是全新请求的(这是浏览器行为,不发送缓存相关的头)。

Expires 头与 max-age 缓存是不需要请求服务器的,直接从本地缓存中取。但 F5 会忽视缓存(所以使用 httpwatch 之类的 http
协议监察工具时,不要 F5 误认为 Expires 和 max-age 是无效的)。

http 协议监察工具:

Firebox:httpfox、live http header

IE:httpwatch、iehttpheader

重要参考文章:How
To Optimize Your Site With HTTP Caching

时间: 2024-10-10 23:01:06

HTTP Caching 优化网站的相关文章

利用HTTP Cache来优化网站

原文地址: http://www.cnblogs.com/cocowool/archive/2011/08/22/2149929.html 对于网站来说,速度是第一位的.用户总是讨厌等待,面对加载的Video和页面,是非常糟糕的用户体验.所以如何利用Cache来优化网站,值得深入研究. 什么是缓存? 缓存是一个到处都存在的用空间换时间的例子.通过使用多余的空间,我们能够获取更快的速度.用户在浏览网站的时候,浏览器能够在本地保存网站中的图片或者其他文件的副本,这样用户再次访问该网站的时候,浏览器就

优化网站加载速度的14个技巧

本文为转载,原作者版权声明在最下方.个人觉得总结的很好 优化了加载速度的网站不仅可以提高其搜索引擎的排名,同时也可以降低网站的跳出率,提高其转换率,还能提供更好的终端用户体验,这是当今基于Web环境取得成功的关键. 下面我将介绍几个优化网站加载网页速度的简单方法,一起来看一下. 1.服务器响应时间 即使网站已经格外优化,但是除非服务器响应时间非常快,否则就不会有什么大的效果.当涉及到提高网站的速度,服务器响应时间起着重要的作用.下面是一些提高服务器响应时间的小贴士. ●有独立的服务器,而不是选择

优化网站、网页、代码

网站优化做的就是细节,代码优化就是网站很重要的一个细节.许多seoer由于不懂代码放弃了优化网站代码,这对网站整体权重的提升是不利的,其实seo中的代码优化非常简单.今天我就为大家讲解一下如何进行网站代码seo优化. SEO优化,在网站优化过程中,可以说大家都沉淀在于外部优化上,很少人能把大部份时间花费在内部优化中,尤其是新手,接到网站后,站内优化吗,不就是改改标题.描述.写写Sitemap地图与HTML地图.Robost.txt.做做404错误页面.可以说把一些基本了解的常识处理完后,省下来的

目前众多企业站长在优化网站时最喜欢做的一项优化

网站锚文本是企业站长最熟悉不过的了,锚文本属于内链的一种表现形式,是目前众多企业站长在优化网站时最喜欢做的一项优化,很多站长也是重视锚文字的优化,但有些时候站长如果没有控制好锚文字可能会带来降权.K站等.从当前的数据显示,大部分的企业企业站长在优化网站的时候,都认为锚文字如果优化得当就会给关键词带来排名给网站带来权重,当然内链形式的锚文本比外链形式的锚文本要好控制的多,而且只要控制好站内锚文本就会给网站带来好处.因此,站内锚文本越来越让企业站长关注,特别是一些刚入行的新手站长. 这段时间笔者在自

优化网站设计系列文章总结和导读

摘自:http://www.cnblogs.com/chenxizhang/archive/2013/05/20/3088196.html 概述 其实想写这方面的文章由来已久,这个系列文章的想法是参照雅虎团队提供的35条性能优化的最佳实践(其实最早的时候是14条),再结合我自己多年的实际工作经验,结合具体的开发平台(ASP.NET),为读者提供既有理论知识.又有实践指导的参考资料,对于优化而言,本身是一个长期细致的工作(没有所谓的银弹),并且重在权衡利弊,选择最适合自己项目情况的解决方案.而要达

如何优化网站关键词.

第一点:做好关键词分析(也叫关键词定位):这是进行SEO优化最重要的一环,关键词分析包括:关键词注重量分析.竞争对手分析.关键词与网站相关性分析.关键词安顿.关键词排行猜想. 第二点:网站架构分析:网站结构符合搜索引擎的爬虫喜欢则有利于SEO优化.网站架构分析包括:除去网站架构不良计划.完结树状目录结构.网站导航与衔接优化,网站计划的言语最好采好DIV+CSS样式,代码很有层次和简练. 第三点:与搜索引擎对话:向各大搜索引擎登入进口提交没有录入站点.在搜索引擎看SEO的效果,通过site:你的域

14个优化网站性能提高网站访问速度技巧

相信互联网已经越来越成为人们生活中不可或缺的一部分.ajax,flex等等富客户端的应用使得人们越加“幸福”地体验着许多原先只能在C/S实 现的功能.比如Google机会已经把最基本的office应用都搬到了互联网上.当然便利的同时毫无疑问的也使页面的速度越来越慢.自己是做前端开发的,在性能方面,根据yahoo的调查,后台只占5%,而前端高达95%之多,其中有88%的东西是可以优化的. 以上是一张web2.0页面的生命周期图.工程师很形象地讲它分成了“怀孕,出生,毕业,结婚”四个阶段.如果在我们

优化网站优化网页代码

前一段时间,我个人查找了一些资料,是关于优化方面的,给大家分享一下: 网站代码的优化也是网站优化中的一种优化措施,代码对于网站优化来说非常重要.虽然HTML代码是程序员应该精通的语言,但是对于HTML代码的优化应该是SEO专员应该精通的技能. 作为一名合格的SEOer,我们不需要精通HTML代码,但我们要懂得网站代码如何优化,比如我们网站中的某些内容为重要的内容,这就需要我们为重要的内容增加附加价值,这样才能得到搜索引擎的重视,这个时候我们就可以通过HTML代码的方式将重要的内容标记,通过HTM

益阳我心网络科技有限公司专业网站建设 网站优化 网站推广

我心科技专业从事网站建设,网页设计,网站制作,网站优化,网站推广,虚拟主机,域名注册,软件开发,广告设计的高新技术企业,公司汇集了美工设计,网站开发,网站推广的各类专业人才,均在专业领域工作5年以上,有着极为丰富的经验,公司致力于为客户打造精美新颖,与客户需求紧密结合的网站,为3000多家企业和个人提供优质的网站建设服务. 制作的网站均由优秀的设计师操刀设计,力求每一款设计都独具匠心,完善的售后服务体制,使我心科技获得了百分百的客户好评."竞争从售后服务开始!我心科技的目的是要客户盈利"