吴才亮微博

关注高压输电线路设计、施工、运行与检修;关注互联网技术,网站推广、运营与盈利的微博客!
  • 首页
  • 关于
  • 输电线路
  • 网络营销
  • 站长技术
  • 网络工程
  • 网络推广博客

图片缓存:浏览器刷新 和 304 Not Modified 与 If-Modified-Since 及 Cache-Control

2011/09/25 1120 Views
今天在用chrome浏览淘宝页面的时候,发现很多来自淘宝图片HTTP状态码是 304 Not Modified,到百度搜索了一下,明白了 304状态的含义:

304 Not Modified:客户端有缓冲的文件并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。

如果客户端在请求一个文件的时候,发现自己缓存的文件有 Last Modified ,那么在请求中会包含 If Modified Since ,这个时间就是缓存文件的 Last Modified 。因此,如果请求中包含 If Modified Since,就说明已经有缓存在客户端。只要判断这个时间和当前请求的文件的修改时间就可以确定是返回 304 还是 200 。对于静态文件,例如:CSS、图片,服务器会自动完成 Last Modified 和 If Modified Since 的比较,完成缓存或者更新。但是对于动态页面,就是动态产生的页面,往往没有包含 Last Modified 信息,这样浏览器、网关等都不会做缓存,也就是在每次请求的时候都完成一个 200 的请求。

我突然想起我所写的图片服务器没有实现HTTP 304 缓存功能。

这个 304 状态一般主要在用户刷新页面(F5键)的时候触发,当用户在刷新页面的时候,因为原来的页面里的很多图片已经缓存过,客户端的浏览器已经记录了图片的最后更新时间(Last Mod),所以在用户刷新页面的时候,会向服务器提交一个字段:If-Modified-Since: Wed, 08 Sep 2010 21:35:06 GMT

这个时候,服务器端的程序先取得这个字段的值,然后与服务器上的图片最后修改时间对比,如果相同,就直接返回 304 Not Modified ,然后停止。这样就不用把图片重新传输到客户端,达到节省带宽的目的。

关于 Cache-Control: max-age=秒 和 Expires

Expires = 时间,HTTP 1.0 版本,缓存的载止时间,允许客户端在这个时间之前不去检查(发请求)
max-age = 秒,HTTP 1.1版本,资源在本地缓存多少秒。
如果max-age和同时存在,则被Cache-Control的max-age覆盖。

Expires 的一个缺点就是,返回的到期时间是服务器端的时间,这样存在一个问题,如果客户端的时间与服务器的时间相差很大,那么误差就很大,所以在HTTP 1.1版开始,使用Cache-Control: max-age=秒替代。

今天我还发现一个小的问题,是关于客户端的日期格式:

Wed, 08 Sep 2010 21:35:06 GMT 与 Wed, 8 Sep 2010 21:35:06 GMT

注意上面的格式,一个是8的前面有个前置的0,一个没有。

我发现firefox和chrome对这个日期格式处理一致,ie有点不同。
最终我修改了服务器端的程序:
//HTTP 日期格式: Wed, 08 Sep 2010 21:35:06 GMT
DateFormat dateFormatGMT = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.ENGLISH); //时间格式

相关日志 随机日志 热门日志
Javascript中的def
兼容FireFox/IE的系统
解决火狐访问localhost
三星I5508成功刷至andr
话说小博因为博百优被降权了
photoshop、firew
导线年平均运行应力上限25%的
解决网页漂浮内容显示在FLAS
向家坝—上海±800千伏特高压
如何打开注册表?打开注册表命令
如何判断输电线路的电压等级?
微博力量是博客200倍?
信用卡滞纳金
合肥42中“诱奸门事件”纯属炒
三星I5508成功刷至andr
为什么微博都是140个字?
开机出现Non- system
bluehost和Godadd
三星I5508刷至2.2测评
如何打开注册表?打开注册表命令
dedecms安装出现:�
利用批处理文件实现一键清除系统
dede发布文章后空白的解决办
站长技术 » HTML/CSS firefox , modified , 图片缓存
引用地址:
注意: 该地址仅在今日23:59:59之前有效
Leave a comment
赞助商链接
随机日志
  • MTU是什么?如何确定并修改MTU值?
  • 用极值I型分布计算最大风速极值
  • 三星GT-I5508到手初体验
  • 宜昌做网站一般的价格标准
  • 什么是主分区,什么是逻辑分区,什么是扩展分区?
  • 每晚看新三国
  • 三星I5508成功刷至android2.2并开启...
  • 什么是虚拟主机的脚本映射?
  • 开始参加博百优大赛!
  • SEO无法修复愚蠢的营销行为
归档
  • 2012/05
  • 2012/04
  • 2012/03
  • 2012/02
  • 2012/01
  • 2011/12
  • 2011/11
  • 2011/10
  • 2011/09
  • 2011/08
热门标签
udp cookie作用域 感恩 通信管制 防雷保护 同步登陆 网络版 分辨率 三峡大学门户 关键词 笔记本电池 三维电网 tfod2006 步步惊心剧情 今日天气 生日 抄袭 fckeditor 新浪微博,腾讯微博,搜狐微博,微博字数,搜狐微博 传统媒体

Top
Copyright © 电力设计博客 | 网站推广 | 策划方案