• 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都匹配,才能使用缓存的响应

  • 相关阅读:
    单精度和双精度
    @Transactional注解用法
    JPA No EntityManager with actual transaction available for current thread
    上传文件Request Entity Too Large解决办法
    PG数据库查看当前会话和结束会话
    Chrome浏览器记不住密码也不提示保存密码win10
    ARM平台VMP保护开发入门
    关于我
    HDU7072:Boring data structure problem——题解
    HDU7067:Just another board game——题解
  • 原文地址:https://www.cnblogs.com/huangyuanning/p/11984137.html
Copyright © 2020-2023  润新知