浏览器缓存相关
浏览器缓存机制
HTTP缓存协商:请求-服务器返回并告知缓存->再次请求并询问是否使用缓存->服务器接收询问,决定 使用缓存或者返回数据。
在使用F5和地址栏enter之后,浏览器对缓存的处理是有所区别的,在web前端开发中,浏览器缓存属于必备知识,所以在这个地方简要写点自己的理解:
Cache-Control:
关于浏览器最重要的设置Cache-Control,覆盖其他设置,比如说Expires,Last-Modified
Cache-Control = "Cache-Control" ":" cache-directive
cache-directive=public/private/no-cache/no-store/must-revalidation/proxy-revalidation/max-age=xxx(xxx is numeric)
max-age = xxx,xxx表示多少秒之后失效,优先级高于Last-Modified
cache-directive response
public 浏览器呈现来自缓存的页面
private
no-cache/no-store
must-revalidation/proxy-revalidation
max-age=xxx(xxx is numeric)
失效
Expire头部(例:Expires: Sun, 08 Nov 2009 03:37:26 GMT)
用户打开一个新的浏览器窗口时失效操作
用户在原始浏览器窗口中单击Enter按钮失效操作
F5
back/Forward
Last-Modified/E-Tag
总结结论:
新窗口打开:
1.指定cache-control为private/no-cache/must-relalidate 打开新窗口时重新访问服务器。
2.指定max-age在这个值内不会重新访问服务器
F5,重复访问
地址栏回车:
1.private或must-revalidate,第一次访问的时候访问服务器,以后不再访问
2.no-cache每次重复访问
后退:
1.private,must-revalidate,max-age不会重复访问
2.no-cache每次重复访问