美文网首页
【HTTP】缓存

【HTTP】缓存

作者: level | 来源:发表于2018-11-22 17:23 被阅读0次

    http前言

    缓存分为服务器和浏览器缓存,我们来看下浏览器端的缓存机制;浏览器缓存分为html meat标签属性和http报文头信息。

    http报文就是浏览器和服务器之间的请求和响应数据信息,报文信息主要包括两个部分头部信息和数据主体。

    http有多种缓存规则,根据是否需要向服务器请求,可分为强制缓存(不和服务器交互)和匹配缓存(不管缓存是否有效,都会向服务器发送请求比较缓存的有效性),优先级强制缓存高于匹配缓存。

    强制缓存

    浏览器发送请求到服务器,服务器响应报文头部会有缓存规则,有如下两种方式:

    Expires

    服务器返回的到期时间(绝对时间),客户端时间和服务器时间有一定的误差,所以会导致不准确

    Cache-Contro

    由于Expires会有误差,在http1.1中使用Cache-Control作为替代;Cache-Control有private、public、no-cache、max-age,no-store这几种取值,默认为private;建议使用max-age=***秒后失效,值为时no-cache需使用匹配缓存验证缓存

    匹配缓存

    浏览器发送请求到服务器和服务器响应报文头部,都会有缓存规则,有如下两种方式:

    Etag / If-None-Match

    Etag服务器响应报文返回标识,生产规则服务器决定;If-None-Match浏览器请求报文,发送到服务器进行匹配决策,当不匹配时,说明资源有改动并且返回最新整个资源,状态码为200,未改动则继续使用缓存,状态码为304

    Last-Modified / If-Modified-Since|Last-Modified

    服务器响应报文返回资源最后修改时间;If-Modified-Since浏览器请求报文,发送资源最后修改时间到服务器进行匹配决策,如果服务器的资源最后修改时间大于If-Modified-Since时间,说明已被修改过,则返回最新整个资源,状态码为200,未改动则继续使用缓存,状态码为304

    相关文章

      网友评论

          本文标题:【HTTP】缓存

          本文链接:https://www.haomeiwen.com/subject/vezlqqtx.html