zoukankan      html  css  js  c++  java
  • 浏览器缓存类

    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,否则返回新资源

  • 相关阅读:
    201621123059《Java程序设计》第二周学习总结
    学习计划表
    201621123059《java程序设计》第一周学习总结
    C语言I作业06
    C语言I博客作业05
    C语言I博客作业04
    志勇的C语言I博客作业03
    志勇的C语言I博客作业02
    志勇的第一周作业
    pdf文件完美转换技巧分享
  • 原文地址:https://www.cnblogs.com/liangshuang/p/8985155.html
Copyright © 2011-2022 走看看