缓存漫谈-浏览器端的缓存

浏览器与服务器交互,都是靠http(https)协议来完成的。如何高效的把一些数据缓存在浏览器端,一直是一个话题。浏览器需要与服务器协商来完成缓存的过程,浏览器不能私自缓存。
浏览器的刷新有三个级别:
  1. Ctrl+f5强制刷新,不用任何缓存。
  2. f5,发出请求,一般带上Last-Modified或者ETag数值,浏览器如果接受到304,那就用本地缓存,如果是200,那就用返回的内容。
  3. 单击转到,或者通过超链接跳转到此页面。浏览器会使用所有没有过期的内容(Expires标志的)。
协商一、基本是通过Last-Modified或者ETag来协商,具体就是浏览器发出请求,服务器会返回一个304的状态码。表示可以用本地缓存。
协商二、如果想彻底消灭缓存,需要用Expires,在第三个刷新级别下,压根就不请求服务器了.

此处注意的是,如果我以前设置的过期时间比较长,现在有内容更新了,浏览器不请求服务器,怎么办呢?如果是一些js、css等,可以通过添加版本号解决。如果是网页等,基本没有好的解决办法,需要合理设置时间,不过客户大部分情况下,对于网页,用户还是经常f5的,所以也不需要担心了。

你可能感兴趣的:(浏览器,css,服务器,etag)