浏览器缓存相关

浏览器缓存机制

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每次重复访问

posted @ 2012-08-24 11:07  谈笑间LD  阅读(175)  评论(0编辑  收藏  举报