缓存
缓存是将文件存储在边缘服务器上的过程,以便在向客户提供这些文件时缩短响应时间。 通过在离用户更近的地方存储文件,缓存可以减少数据在网络上传输所需的时间,也就是通常所说的延迟。
默认情况下,CIS 缓存静态文件,其中包括多种类型的图像和文本文件(非 HTML)。 缓存只包括您网站上的文件,不包括第三方资源,如社交网站上的文件。 目前,CIS 不会根据 MIME 类型进行缓存。
CIS 默认情况下不会缓存 HTML 文件,因为它们通常被视为动态文件。 不过,如果能将静态 HTML 与动态 HTML 明确区分开来,就有可能通过使用页面规则来缓存 HTML 文件。
缓存文件有一个指定的过期时间,称为“生存时间”(TTL),过期后将从缓存中清除。 您也可以随时手动清除缓存中的文件。 文件清除后,CIS 会返回到原始服务器重新加载文件,并用最新版本更新缓存。
有关缓存设置和选项的详细信息,请参阅在 缓存中使用页面规则。
缺省高速缓存行为
CIS 根据访客的位置、他们连接的 数据中心以及该数据中心请求资源的频率来缓存静态内容。CIS
缓存仅在为请求提供服务的 CIS 数据中心内进行。 CIS 不会缓存以下资源:
- 场外或第三方资源
- 未代理的 DNS 记录上托管的内容
默认情况下,CIS 会尊重原始网络服务器的缓存标题,除非边缘缓存 TTL 页面规则覆盖了这些标题:
- CIS 如果 标头设置为、、或,或者响应中存在 cookie,则不会缓存资源。
cache-control
private
no-store
no-cache
max-age=0
- CIS 如果 是,而 大于 0,或者 expires 标头指定了未来日期,则会缓存资源。
cache-control
public
max-age
- 当同时设置
max-age
和expires
标头时,max-age
优先。
当 cache-control
指令和 expires
标头都不存在时,CIS 会缓存某些 HTTP 响应代码,默认边缘缓存 TTL 如下:
响应代码 | TTL |
---|---|
200, 206, 301 | 120 米 |
302, 303 | 20 m |
404, 410 | 3 分钟 |
403 | 1 分钟 |
CIS 提供了多个自定义缓存选项:
CIS 缓存的最大文件大小为:试用版和标准版客户 512 MB,企业版客户 5 GB。 企业客户可通过 打开支持案例 申请缓存较大的文件。
缺省情况下高速缓存的文件扩展名
CIS 使用文件扩展名来缓存内容。 将自动高速缓存以下文件扩展名:
文件扩展名 | |||
---|---|---|---|
bmp class css csv doc docx ejs eot eps |
gif ico jar jpg js mid midi otf pdf |
pict pls png ppt pptx ps svg svgz swf |
tif tiff ttf webp woff woff2 xls xlsx |
CIS 不根据 MIME 类型缓存内容,默认情况下也不缓存 HTML 页面。 不过,它会自动缓存网站的 robots.txt
文件。 要缓存 HTML 页面等额外内容,可以设置自定义页面规则来控制缓存内容。
提供旧内容
如果服务器宕机,则提供过期内容,使有限版本的网站保持在线。 即使内容过期,CIS 也会在源服务器离线时继续向用户提供缓存内容。
了解 CIS 缓存响应
CF-Cache-Status
头的输出显示是否对资源进行了高速缓存。
响应代码 | 定义 |
---|---|
HIT |
该资源在 CIS 缓存中找到。 |
MISS |
CIS 缓存中没有找到该资源,该资源由源网络服务器提供。 |
EXPIRED |
该资源在缓存中找到过,但已过期,并且是从源网络服务器提供的。 |
STALE |
资源从缓存中提供,但已过期。 CIS 无法联系原点获取更新的资源。 |
BYPASS |
源服务器通过使用设置为 no-cache 、private 或 max-age=0 的 cache-control 标头,指示 CIS 绕过缓存。启用源 cache-control 时,将返回 BYPASS 。 CIS 当原始网络服务器在响应标头中发送 cookie 时,也会设置。BYPASS |
REVALIDATED |
资源从缓存中提供,但已过时。 资源已通过 If-Modified-Since 标头或 If-None-Match 标头重新验证。 |
UPDATING |
资源从缓存中提供,但已过期。 UPDATING 通常只出现在常用缓存资源中。 |
DYNAMIC |
默认情况下没有缓存该资源,您当前的 CIS 缓存配置也没有指示 CIS 缓存该资源。 而是从源 Web 服务器请求资源。 使用页面规则来实现定制高速缓存选项。 |
使用查询字符串排序
仅限企业:CIS 在缓存中将查询字符串顺序不同的 URL 作为单独文件处理。 例如,如果一个用户请求
/video/123456?title=0&byline=0&portrait=0&color=987654
和另一个请求:
/video/123456?byline=0&color=987654&portrait=0&title=0
CIS 会再次从原点获取文件,即使该文件已被缓存。
查询字符串排序功能可在缓存“之前”对查询字符串进行排序,从而提高缓存命中率。 您可以使用缓存页面上的切换按钮启用查询字符串排序。