标签:win files read str etag 未来 未能 last img
通用缓存、条件缓存、缓存控制三大类
| 头部名称 | 说明 | 请求/响应 |
| 通用缓存头部 | 控制客户端是否向服务器发送请求或者是服务端响应请求 | |
| cache-control | 用于随报文传递的缓存提示 | |
| pragma | http1.0的,等于cache-control:no-cache,pragma优先级高于expires | |
| 条件头部 | ||
| Last-Modified | 服务器响应时将文本最后修改时间放在此头部一起传送,如:Last-Modified:GMT | 响应 |
| If-Modified-Since | 客户端发送收到的last-Modified的时间,让服务器验证,资源没有修改则是304 | 请求 |
| If-Unmodified-Since | 若last-Modified没有匹配上,返回412(预验证失败) | |
| ETag | 服务器响应时将文本的md5值跟随此头发送到客户端 | 响应 |
| If-None-Match | 告诉服务器如果没有匹配上ETag相关资源就重发,否则304 | |
| If-Match | 如果服务器没有匹配上ETag相关资源,则响应412 |
其他缓存头部 Vary | 向服务器请求时以Vary指定的字段来区分内容是否缓存了 data/age | 服务器响应时输出资源的最后响应时间(从本地缓存读取的资源不会有变化,也就是cache-control控制),而304的吃响应是有变化的
Vary: User-Agent, Accept-Encoding
告知服务器以User-Agent、Accept-Encoding两个头部的值区分缓存版本
cache-control与expires是一致的,但expires是http1.0的东西,现代浏览器用得很少。
请求头部
实现离线缓存的步骤:
<html manifest="test.appcache" > <head> <meta charset="UTF-8"> </head> <body> </body> </html>
CACHE MANIFEST
# 首次下载后需要缓存的文件
# 禁止缓存的文件
network:
# 回退文件(页面无法访问时回退的页面)
fallback:
5.1 状态
| 状态值 | 说明 |
| 0 | 未缓存 |
| 1 | 空闲(缓存为最新状态) |
| 2 | 检查中 |
| 3 | 下载中 |
| 4 | 更新就绪 |
| 5 | 缓存过期 |
5.2 事件
| 事件名 | 说明 |
| checking | 正在检查 |
| downloading | 正在下载 |
| updatereadey | 更新完成 |
| obsolete | 缓存过期 |
| cached | 空闲,缓存为最新状态 |
| error | 缓存报错时触发的事件 |
| noupdate | 检查更新结束,没有需要更新的文件 |
window.applicationCache.addEventListener("cached",function(){
console.log("cached");
});
window.applicationCache.addEventListener("noupdate",function(){
console.log("noupdate");
})
标签:win files read str etag 未来 未能 last img
原文地址:http://www.cnblogs.com/cqhaibin/p/7198520.html