Chinaunix首页 | 论坛 | 博客
  • 博客访问: 477775
  • 博文数量: 104
  • 博客积分: 3455
  • 博客等级: 中校
  • 技术积分: 1216
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-18 18:33
文章分类

全部博文(104)

文章存档

2015年(3)

2014年(1)

2013年(7)

2012年(8)

2011年(11)

2010年(18)

2009年(56)

我的朋友

分类:

2010-07-29 23:46:42

Last-Modified
(1) 第一次请求的响应头返回Last-Modified内容,时间格式如:Wed, 22 Jul 2010 07:08:07 GMT
(2)第二次发送的请求头包含If-Modified-Since(值为第一次请求的响应包中的Last-Modified),服务器对比If-Modified- Since请求头与Last-Modified,如果没有更新就返回304响应,否则按正常请求处理.

Etag
(1)第一次请求的响应头返回Etag内容,该内容默认由文件的索引节点(Inode),大小(Size),最后修改时间(MTime)决定.
(2)第二次发送的请求头包含If-None-Match(值为第一次请求的响应包中的 Etag),服务器对比请求头If-None-Match与Etag,如果一致就表示没有更新返回304响应,否则按正常请求处理.
FileETag INode MTime Size    默认值
FileETag None                去掉Etag字段

Expires
如果请求头有Expire,浏览器在这段时间内就不会去服务器请求,直接使用本地缓存.时间格式同Last-Modified.
修改expires 的同时会相应修改max-age的值,两者保持一致.Date + Max-age = Expires
LoadModule expires_module modules/mod_expires.so
ExpiresActive On
ExpiresByType image/gif "access plus 14 days"

Cache-control: max-age=
max-age的值表示多少秒后失效,失效之前不会去服务器请求,功能同Expires,但优先级高于Expries.

Last-Modified与Etag还是要请求服务器的,只是仅返回304头,不返回内容.
Expires与max-age缓存是不需要请求服务器的,直接从本地缓存中取.


F5 与 Ctrl+F5
F5        四种方式都会向服务器发送请求,没有过期返回304,过期就更新cache返回200.
          (根据 Last- Modified 判断是否过期, 如果没有此头,将以过期处理,返回200)
Ctrl+F5   清空本地缓存,全部从服务器重新获取.返回200.

在firefox下:
F5        HTTP请求头包含 Cache-Control  max-age=0
Ctrl+F5   HTTP请求头包含 Cache-Control  no-cache
                        Pragma        no-cache

:(1)在浏览器直接输入URL并按回车 (2)链接跳转.以上两种方式HTTP请求处理不同.
一.使用Expires和Cache-control,会直接本地判断是否过期,不会请求服务器.
二.单独使用Last-Modified 跟浏览器设置有关系:
  ie6          同expires方式(默认)
  firefox3.6   url后面无参数同expires方式, 反之同F5方式
  chrome8.0    同F5方式
阅读(1028) | 评论(0) | 转发(0) |
0

上一篇:jvm学习

下一篇:笔记

给主人留下些什么吧!~~