浏览器的“刷新”&“缓存机制”
来源:互联网 发布:闪电精灵seo怎么样 编辑:程序博客网 时间:2024/04/30 05:07
1)
Last-Modified
在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记此文件在服务期端最后被修改的时间,格式类似这样:
Last-Modified: Fri, 12 May 2006 18:53:33 GMT
客户端第二次请求此URL时,会在头部加入一个属性,询问该时间之后文件是否有被修改过:
If-Modified-Since: Fri, 12 May 2006 18:53:33 GMT
如果服务器端的文件没有被修改过,则返回状态是304,内容为空,这样就节省了传输数据量。如果服务器端的文件被修改过,则返回和第一次请求时类似。
ETag
和Last-Modified类似,由于RFC2616(也就是HTTP/1.1)中没有说明ETag该是什么格式的,只要确保用双引号括起来就行了,所以你可以用文件的hash,甚至是直接用Last-Modified,以下是服务器端返回的格式:
ETag: "50b1c1d4f775c61:df3"
客户端的查询更新格式是这样的:
If-None-Match: W/"50b1c1d4f775c61:df3"
如果ETag没改变,则返回状态304然后不返回,这也和Last-Modified一样。
Expires
这个属性就如我们在ASP中使用HttpResponse.ExpiresAbsolute一样直接,声明某某时刻过期之后浏览器就应该重新请求该URL,使用格式为:
Expires: Sun, 10 Feb 2002 16:00:00 GMT
注意HttpResponse.ExpiresAbsolute在ASP.NET中是不建议使用的,现在我们应该使用的是HttpResponse.Cache.SetExpires。
Pragma
通常我们用到的值就是no-cache,这和在Cache-Control中使用no-cache值是一样的,Cache-Control在下面讲。Pragma的使用格式如下:
Pragma: no-cache
Cache-Control
这是一个集合型属性,它里面能够包含很多子属性,并且允许用户扩展新的子属性。常见的子属性包括:
max-age - 以秒为单位的超时,覆盖Expires属性。
public - 允许保存在共享缓存中。
private - 只允许保存在私有缓存中。
no-cache - 不允许缓存。
no-store - 不允许缓存在持久介质中。
no-transform - 不允许转换存储系统。
2)
众所周知浏览器是通过Last-Modified和Expires来处理缓存的,而在具体调试中发现并不按我们想象的方式进行,其原因很有可能是在刷新浏览器的时候采用不恰当的方式导致。对于大多数浏览器而言,都包含有三种刷新方式,以下我们以IE浏览器为例:
F5 刷新
Ctrl+F5 刷新
“转至”或地址栏里回车 刷新
这些快捷键的功能,主流浏览器都是相同的。
而这三种刷新方式会导致浏览器采取不同的缓存机制:
F5:不允许浏览器直接使用本地缓存,因此Last-Modified能起作用,但Expires无效
Ctrl+F5:是强制刷新,因此缓存机制失效
“转至”或地址栏里回车:正常的访问,Last-Modified和Expires都有效
- 浏览器的“刷新”&“缓存机制”
- 浏览器的“刷新”&“缓存机制”
- 浏览器 缓存与刷新 机制
- 浏览器三种刷新方式所采取的缓存机制
- 浏览器三种刷新方式所采取的缓存机制
- 浏览器的缓存机制
- 浏览器的缓存机制
- 浏览器的缓存机制
- 浏览器的缓存机制
- 浏览器的缓存机制
- 【总结】浏览器的缓存机制
- 浏览器的缓存机制详解
- 浏览器HTTP的缓存机制
- 浏览器的缓存机制详解
- 浏览器http的缓存机制
- 浏览器http的缓存机制
- 浅谈浏览器的缓存机制
- 立即刷新Chrome浏览器缓存的方法
- hive的权限管理
- Autoconf
- GoogleCpp风格指南 1)头文件 2)作用域
- 当遇到用\来分隔字符串
- ios提供外部访问url
- 浏览器的“刷新”&“缓存机制”
- 问题解决:iOS6下shouldAutorotateToInterfaceOrientation不起作用,屏幕旋转同时支持iOS5和iOS6
- 新组织,新动态——CSDN俱乐部举办“微软创新杯”宣讲会
- Android Button基础
- 蓝牙音箱方案选用及设计注意
- Android属性(property)机制
- 代码规范中常见问题举例说明
- java并发编程(二)对象的共享
- Handler