• HTTP 缓存Cache-control 头


    缓存是一种保存资源副本并在下次请求时直接使用该副本的技术

    缓存控制  

    Cache-control 头

    属性值 功能 说明
    no-store
    禁止进行缓存 缓存中不得存储任何关于客户端请求和服务端响应的内容
    no-cache
    强制确认缓存 每次有请求发出时,缓存会将此请求发到服务器,服务器端会验证请求中所描述的缓存是否过期,若未过期(注:实际就是返回304),则缓存才使用本地缓存副本
    private
    私有缓存  表示该响应是专用于某单个用户的,中间人不能缓存此响应,该响应只能应用于浏览器私有缓存中
    public
    公共缓存  表示该响应可以被任何中间人(译者注:比如中间代理、CDN等)缓存
    max-age
    缓存过期机制  表示资源能够被缓存(保持新鲜)的最大时间
    must-revalidate
     缓存验证确认  缓存在考虑使用一个陈旧的资源时,必须先验证它的状态,已过期的缓存将不被使用

    Pragma 头

    是HTTP/1.0标准中定义的一个header属性,请求中包含Pragma的效果跟在头信息中定义Cache-Control: no-cache相同,通常定义Pragma以向后兼容基于HTTP/1.0的客户端

    缓存验证

    ETag

    如果资源请求的响应头里含有ETag, 客户端可以在后续的请求的头中带上 If-None-Match 头来验证缓存

    对比资源的签名判断是否使用缓存

    配合 If-Match 或 If-Non-Match 使用

    Last-Modified

    弱校验器,只能精确到一秒。如果响应头里含有这个信息,客户端可以在后续的请求中带上 If-Modified-Since 来验证缓存

    对比上次修改时间以验证资源是否需要更新

    配合 If-Modified-Since 或 If-Unmodified-Since 使用

    带Vary头的响应

    Vary HTTP 响应头决定了对于后续的请求头,判断是请求一个新的资源还是使用缓存的文件。

    当缓存服务器收到一个请求,只有当前的请求和原始(缓存)的请求头跟缓存的响应头里的Vary都匹配,才能使用缓存的响应

  • 相关阅读:
    To select the file to upload we can use the standard HTML input control of type
    Cascading Menu Script using Javascript Explained
    网站首页head区代码规范
    轻松掌握 Java 泛型
    JDK 5.0 中的泛型类型学习
    如何在firefox下获取下列框选中option的text
    是同步方法还是 synchronized 代码? 详解多线程同步规则
    javascript select option对象总结
    Select的动态取值(Text,value),添加,删除。兼容IE,FireFox
    javascript在ie和firefox下的一些差异
  • 原文地址:https://www.cnblogs.com/huangyuanning/p/11984137.html
Copyright © 2020-2023  润新知