• 浏览器缓存类


    1:浏览器的缓存分为哪几种?请简要说明。

    分为两种:强缓存和协商缓存

    强缓存

    强缓存利用http的头部的expires和cache-control来控制

    expires:是一个绝对时间,表示缓存的过期时间,在这个时间点之前,表示命中缓存,缺点:这是服务器上的时间,有可能与客户端的时间有差异

    cache-control:max-age 是一个相对时间,单位是秒,比expires要可靠些

    协商缓存

    当浏览器第一次向服务器请求资源的时候,会把资源返回给浏览器,并将资源的一些信息如(文件摘要,最后修改时间)等返回给浏览器,并告诉浏览器将这些信息缓存起来,当浏览器再次向服务器请求时,会将这些信息一起发送给服务器,服务器根据浏览器的缓存资源判断是否需要进行更新,如果不需要更新,就返回304,和not-modified,否则就返回新的资源

    协商缓存利用[last-modified,if-modified-since] 和[etag,if-not-match]来管理

      1:浏览器第一次请求服务器资源的时候,服务器返回该资源,并将last-modified返回给浏览器

      2:当浏览器再次向服务器请求该资源的时候,会带上if-modified-since,它的值就是三次服务器返回的last-modified

      3:服务器根据if-modified-since的值和资源最后一次修改的时间对比,如何两者相等,返回304,则命中协商缓存,否则重新返回新的资源

    有时候last-modified不是很精确,比如修改了某些注释,这时候就得用上etag 和if-not-match

      1:浏览器第一次请求服务器资源的时候,服务器返回该资源,并将etag返回给浏览器,etag表示资源内容的唯一标识,只用资源的内容修改,etag就会发生改变

        2:当浏览器再次向服务器再次请求该资源的时候,会带上if-not-match,它的值就是上次服务器返回的etag,这时候服务器会根据if-not-match和资源的etag做比较,如果两者相等,说明资源内容没有发生改变,返回304,否则返回新资源

  • 相关阅读:
    查询SGA,PGA pool 内存分配情况
    为2229岁的人解释一下什么叫工作
    关于log的一些脚本
    关于ARM公司的cortex系列
    git reset 小结
    git push 小结
    git push 小结
    关于ubuntu的aptget 包
    TTL接口 液晶屏 与 LVDS接口 液晶屏的 区别
    git reset 小结
  • 原文地址:https://www.cnblogs.com/liangshuang/p/8985155.html
Copyright © 2020-2023  润新知