Open vaynedu opened 5 years ago
Expires = 时间,HTTP 1.0 版本,缓存的载止时间,允许客户端在这个时间之前不去检查(发请求) max-age = 秒,HTTP 1.1版本,资源在本地缓存多少秒。 如果max-age和Expires同时存在,则被Cache-Control的max-age覆盖。
Expires 的一个缺点就是,返回的到期时间是服务器端的时间,这样存在一个问题,如果客户端的时间与服务器的时间相差很大,那么误差就很大,所以在HTTP 1.1版开始,使用Cache-Control: max-age=秒替代
Expires 和 Last-Modified 一般一起使用,可以减少浏览器发起请求的次数
min_cache_inter a max_cache_inter b 1、如果Cache-Control 中的max-age存在,则 (1)a<=max-age<=b;则缓存时间取max-age (2)max-age <a,则取a (3)max-age>b,则取b 2、 若无max-age , 则设置max-age = 0 , 然后匹配1
对于设计而言,客户的header仅仅是客户的header,CDN应该对业务行为有整体的把控全。 比如一个场景: 业务header中带有Cache-Control : no-cache.标准的HTTP行为,对于此类请求不缓存。但是万一客户误带,错带,难道CDN只能傻傻不缓存文件,傻傻的看着回源率非常高。 这是不可能的,如果做到一切可控? 就是互不信任原则。 内部保护机制,强制缓存。这个思想非常的好,不管别人怎么玩,我总可以控制自己的行为。可以降低风险,保护自己。