• 浏览器缓存,状态码200与304


    缓存机制

    浏览器缓存控制机制有两种:

    1、meta标签

    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Cache-Control" content="no-cache">
    <meta http-equiv="Expires" content="0">

    清除浏览器中的缓存,必须从服务端获取最新内容,但不是所有浏览器都支持.。

    2、HTTP头信息

    Expires:即在 HTTP 头中指明具体失效的时间(HTTP/1.0)

    Cache Control:max-age 在 HTTP 头中按秒指定失效的时间,优先级高于Expires(HTTP/1.1)

    Last-Modified/If-Modified-Since:文件最后一次修改的时间(精度是秒,HTTP/1.0),需要Cache-Contral过期

    Etag:当前资源在服务器的唯一标识(生成规则由服务器决定)ETag的值,默认是对文件的索引节(INode),大小(Size)和最后修改时间(MTime)进行Hash后得到的,优先级高于Last-Modified;在分布式的Web系统中,当访问落在不同的物理机上时会返回不同的ETag,进而导致304失效,降级为200请求(HTTP/1.1),需要Cache-Contral过期

    Pragma:no-cache 兼容HTTP/1.0

    缓存状态码

    200 OK (from cache) 是浏览器没有跟服务器确认,直接用了浏览器缓存;

    304 Not Modified 是浏览器和服务器多确认了一次缓存有效性,再用的缓存。

    304 Not Modified 比 200 OK (from cache) 慢,指的是浏览器还向服务器确认了下 "If-Not-Modified",才用的缓存

    200 or 304

    在没有设置Cache-Contral的情况下,设置Last-Modified和ETag缓存,会出现200(from cache)和304 交替出现的情况

    设置Cache-Contral的情况下,过期刷新会出现304(如果有更新内容,则是200),之后再过期之前刷新都是200(from cache)。如果要确保要向服务端确认,可以将Cache-Contral的max-age设置为0。

    chrome 测试 刷新 和 输入URL回车 测试并不会影响200(from cache)和304 的出现



     
     
  • 相关阅读:
    hdu 2191 珍惜现在,感恩生活(多重背包)
    《从Paxos到ZooKeeper分布式一致性原理与实践》学习知识导图
    你对ArrayList了解多少?
    JAVA酒店管理系统
    C#酒店管理系统
    C#图书管理系统
    java图书管理系统
    豆瓣高分JAVA书籍,你都读过吗?
    JAVA课程设计----------JAVA学生信息管理系统
    C#学生管理系统
  • 原文地址:https://www.cnblogs.com/kangleweb/p/13595921.html
Copyright © 2020-2023  润新知