痴心VS绝对 发表于 2018-11-23 11:00:36

Apache Traffic Server 判断 HTTP 对象是否新鲜(fresh)的过程

如果有 Expires 或者 max-age 头部直接定义缓存的过期时间,TS将对比当前时间和过期时间去判断对象是否新鲜

如果没有上述头部,TS 将检查 Last-Modified 和 Date 头部(其中Date是源服务器返回对象的时间,如果没有 Last-Modified 头部,TS 会用对象写入缓存的时间以作代替),然后用以下公式算出新鲜的时间范围(freshness_limit,可理解为保质期):
freshness_limit = ( Date - Last-Modified ) x 0.1

0.1 这个参数可以作调整,并且能限制 freshness_limit 的上下限,默认最小是 1 小时,最大是 1 天

如果没有 Expires 头部或者没有 Last-Modified、Date 头部,TS 将使用默认的 fressness limit

另外,TS 还会检查 cache.config 配置文件中的 revalidate 规则,该规则可以对特定的 HTTP 对象设置特定的验证时间(特定的域名、IP、一定规则的 URL、特定的客户端等等)



页: [1]
查看完整版本: Apache Traffic Server 判断 HTTP 对象是否新鲜(fresh)的过程