浏览器、缓存服务器、源服务器

    浏览器:资源请求直接发起方。
    源服务器:资源实际提供方。
    缓存服务器:在浏览器、源服务器之间架设的中间服务器,由它代替浏览器,向源服务器发起资源请求,如Squid等各类代理服务器;

副本有效性校验

    指源服务器上的资源是否更新

本地副本是否过期

    本地副本通过max-age指定缓存有效期


常用 Cache-Control 值

    public
    
    所有内容都将被缓存(客户端和代理服务器都可缓存)

    private
    
    内容只缓存到私有缓存中(仅客户端可以缓存,代理服务器不可缓存)

    no-cache
    
    必须先与服务器确认返回的响应是否被更改,然后才能使用该响应来满足后续对同一个网址的请求。因此,如果存在合适的验证令牌 (ETag),no-cache 会发起往返通信来验证缓存的响应,如果资源未被更改,可以避免下载。

    no-store
    
    所有内容都不会被缓存到缓存或 Internet 临时文件中

    must-revalidation/proxy-revalidation
    
    如果缓存的内容失效,请求必须发送到服务器/代理以进行重新验证

    max-age=xxx (xxx is numeric)
    
    缓存的内容将在 xxx 秒后失效, 这个选项只在HTTP 1.1可用, 并如果和Last-Modified一起使用时, 优先级较高


特别说明

    no-store: 告诉浏览器、缓存服务器,不要缓存本地副本。

    no-cache: 告诉浏览器、缓存服务器,不管本地副本是否过期,使用资源副本前,一定要到源服务器进行副本有效性校验。

    must-revalidate:告诉浏览器、缓存服务器,本地副本过期前,可以使用本地副本;本地副本一旦过期,必须去源服务器进行有效性校验。

posted on 2022-11-26 17:06  lbnnbs  阅读(15)  评论(0编辑  收藏  举报