http状态码304

服务器对客户端返回HTTP/1.1 304 

  意思是服务端告诉客户端 我的的缓存没有改变你不需要来取了,就用你自己本地的吧!

浏览器的三种缓存协商机制:

  if-modified-since (基于最后修改时间)

    该时间内浏览器多不用去源站获取数据

    响应头部:

      Last-Modified: Fri, 17 Mar 2017 09:42:02 GMT

    浏览器请求头部中会增加:

      If-Modified-Since:  Fri, 17 Mar 2017 09:42:02 GMT

  Etag (If-None-Match)

    请求文件的md5值没有改变就不用去源站取数据

    响应头部:

      ETag: "bgc7-rb-46585209c1bc0"

    浏览器在请求头中会总结:

      If-None-Match: "bgc7-rb-46585209c1bc0"

  expires (过期时间)

    浏览器一旦看到某个内容附带Expires标记后,便拥有了极大的权力,它无须在过期之前每次都询问服务器,完全可以自作主张,而Last-Modified标记让浏览器感到拘束,它们不得不每次都询问服务器,即便它们认为这样做毫无意义。

      expires中设置时间 (这种方式如果本地系统时间不准可能造成缓存一直失效)

    cache-control 头中设置时间

原文地址:https://www.cnblogs.com/fanxuanhui-linux/p/6581361.html