关注前端 | 前端博客
当前位置: Http > http请求缓存

http请求缓存

2018-06-27 分类:Http 作者:管理员 阅读(80)

浏览器缓存分为强缓存和协商缓存。当客户端请求某个资源时,获取缓存的流程如下:

  • 先根据这个资源的一些 
    1
    http header

     判断它是否命中强缓存,如果命中,则直接从本地获取缓存资源,不会发请求到服务器;

  • 当强缓存没有命中时,客户端会发送请求到服务器,服务器通过另一些 
    1
    request header

    验证这个资源是否命中协商缓存,称为 

    1
    http

    再验证,如果命中,服务器将请求返回,但不返回资源,而是告诉客户端直接从缓存中获取,客户端收到返回后就会从缓存中获取资源;

  • 强缓存和协商缓存共同之处在于,如果命中缓存,服务器都不会返回资源;
  • 区别是,强缓存不对发送请求到服务器,但协商缓存会。
  • 当协商缓存也没命中时,服务器就会将资源发送回客户端。
  • 当 
    1
    ctrl+f5

     强制刷新网页时,直接从服务器加载,跳过强缓存和协商缓存;

  • 当 
    1
    f5

     刷新网页时,跳过强缓存,但是会检查协商缓存;

强缓存

  • Expires(该字段是 
    1
    http1.0

     时的规范,值为一个绝对时间的 

    1
    GMT

     格式的时间字符串,代表缓存资源的过期时间)

  • Cache-Control:max-age(该字段是 
    1
    http1.1

     的规范,强缓存利用其 

    1
    max-age

     值来判断缓存资源的最大生命周期,它的值单位为秒)

协商缓存

  • Last-Modified(值为资源最后更新时间,随服务器response返回)
  • If-Modified-Since(通过比较两个时间来判断资源在两次请求期间是否有过修改,如果没有修改,则命中协商缓存)
  • ETag(表示资源内容的唯一标识,随服务器response返回)
  • If-None-Match(服务器通过比较请求头部的If-None-Match与当前资源的ETag是否一致来判断资源是否在两次请求之间有过修改,如果没有修改,则命中协商缓存)

「两年博客,如果觉得我的文章对您有用,请帮助本站成长」

赞(0) 打赏

感谢您让我添加个鸡腿!

支付宝
微信
0

感谢您让我添加个鸡腿!

支付宝
微信

上一篇:

下一篇:

共有 0 条评论 - http请求缓存

博客简介

一位不知名的前端工程师,专注全栈技术,分享各种所遇问题与个人心得,梦想成为一位知名大神!

最近更新

精彩评论

服务热线:
 177****6038

 QQ在线交流

 旺旺在线