浏览器缓存

来源:互联网 发布:linux 守护进程 服务器 编辑:程序博客网 时间:2024/06/18 17:12

1. Expires和Cache-Control: max-age比较

Expires: 过期时间 (从1970年算起,毫秒为单位)

resp.setDateHeader("Expires",System.currentTimeMillis()+30000);// 设置缓存有效期,30秒后缓存失效 

Cache-Control: max-age=60(从当前时间算,以秒为单位)

resp.setHeader("Cache-Control", "max-age=60"); //设置缓存有效时间,60秒后缓存失效

HTTP/1.0 时使用 Expires 控制缓存有效时间,到了HTTP/1.1 ,使用Cache-Control:max-age 设置,HTTP/1.1 兼容HTTP/1.0

当只设置Expires 时,按Expires算;
当同时设置Expires 、Cache-Control:max-age时,Cache-Control:max-age优先级高

2. cache-control: max-age取值

max-age>0 时 直接从浏览器缓存中 提取
max-age<=0 时 向server 发送http 请求确认 ,该资源是否有修改
有的话 返回200 ,无的话 返回304.

3. cache-control 取值为 no-cache 和 max-age=0的区别

当页面设置 <meta http-equiv="cache-control" content="no-cache">时,每次请求该页面必须重新从服务器中获得数据,请求头不会包含 If-Modified-Since 字段,服务器不会返回304,服务器必须返回200,并携带响应内容

当页面设置 <meta http-equiv="cache-control" content="max-age=0">, 请求该页面时可能会携带 If-Modified-Since 字段, 服务器可能会返回 304,也可能返回200

原创粉丝点击