本文档介绍如何在火山引擎内容分发网络(CDN)中配置浏览器缓存来影响客户端浏览器对请求文件的缓存行为。
浏览器缓存概述
默认情况下,CDN 在响应用户请求时,会包含源站响应中的缓存相关头部,且不修改这些头部。收到 CDN 响应后,客户端浏览器根据响应头将文件缓存到本地。
如果您希望指定客户端浏览器对特定文件的缓存行为,您可以在 CDN 中创建浏览器缓存规则。例如,您希望修改特定文件在客户端缓存的时长,或者您希望浏览器不缓存特定文件。在缓存规则中,您需要设置请求的匹配条件以及相应的浏览器缓存策略。这样,当向客户端返回指定文件时,CDN 会根据指定的浏览器缓存策略设置响应头,从而影响客户端浏览器对请求文件的缓存行为。
浏览器缓存策略
浏览器缓存策略指定了浏览器的缓存行为。CDN 提供了以下浏览器缓存策略:
- 遵循规则。该策略的逻辑如下:
- 如果源站响应不包含
Cache-Control: no-cache、Cache-Control: no-store 或者 Cache-Control: private,CDN 在响应用户请求时会包含 Cache-Control: max-age=N 响应头。该响应头指示浏览器缓存请求文件 N 秒。N 为您在策略中指定的缓存时长。 - 如果源站响应中包含
Cache-Control: no-cache、Cache-Control: no-store 或者 Cache-Control: private,CDN 在响应用户请求时会透传这些响应头。
- 遵循源站。该策略的逻辑如下:
- 在响应用户请求时,CDN 包含源站响应中的缓存相关头部,且不会修改这些头部。
- 不缓存。该策略的逻辑如下:
- 在响应用户请求时,CDN 会包含
Cache-Control: no-store 响应头。该响应头指示浏览器不要缓存请求的文件。
操作步骤
- 登录 火山引擎内容分发网络控制台。
- 在左侧导航栏,点击 域名管理。
- 在 域名管理 页面,找到需要配置的域名,点击 管理。
- 定位 浏览器缓存 模块。
- 如果您使用的是旧版域名管理页面,点击 编辑配置,然后在 缓存配置 标签页中定位 浏览器缓存 模块。
- 如果您使用的是新版域名管理页面,点击 编辑域名。在页面左侧的树状配置项列表中,定位 功能配置 > 缓存配置 > 浏览器缓存。如果该模块置灰,点击模块右边的 + 。
关于新旧版域名管理页面的区别,参见 新版域名配置。
- 在 浏览器缓存 模块中,点击 新增规则。您最多可以添加 50 条缓存规则。
- 根据 配置说明 进行设置。
- 配置完成后,点击 提交编辑。

配置 | 说明 |
|---|
规则类型 | 表示请求的匹配条件。该配置有以下选项: - 文件后缀:表示路径末尾的扩展名。
- 文件目录:表示路径中的目录。
- 文件全路径:表示请求 URL 中的路径。
- 全路径正则表达式:表示请求 URL 中的路径,通过正则表达式匹配。 要指定该选项,请 提交工单。
|
规则内容 | 表示规则中的匹配值。多个匹配值之间使用分号(;)分隔,总长度不能超过 1,024 个字符。匹配值不能包含以下字符: - 双斜杠(//)、空格、美元符号($)、问号(?)、Delete(ASCII code 127)。
另外, - 如果 规则类型 是 文件后缀,匹配值是一个或者多个文件后缀。文件后缀不能以句点(.)开头。例如:
png;txt。 - 如果 规则类型 是 目录,匹配值是一个或者多个目录路径。目录路径必须以斜杠(/)开头和结尾。例如:
/chs/foods/;/us/birds/。 - 如果 规则类型 是 文件全路径,匹配值是一个或者多个文件路径。文件路径必须以斜杠(/)开头,可以包含星号(*)用来表示一个或者多个字符。例如:
/chs/foods/local*sets 可匹配 /chs/foods/local_sets 和 /chs/foods/local123sets 等路径。 - 如果 规则类型 是 全路径正则表达式,匹配值是一个或者多个正则表达式,用于匹配请求路径中的任意字符串。例如:
^/a{1,2}.*g$。
|
忽略大小写匹配 | 表示 CDN 将规则与用户请求匹配时,匹配过程是否是大小写敏感的。该配置默认是关闭,表示大小写敏感。 示例:对于文件后缀规则,您设置 忽略大小写 为关闭。您输入的规则内容是 png;txt。此时,该规则可以匹配 URL 是 HTTPS://www.EXAMPLE.com/image.png 的请求,但是不能匹配 URL 是 https://www.example.com/image.PNG 的请求。 |
缓存策略 | 设置一个缓存策略。该配置有以下取值: 关于每个策略的描述,参见上方的 浏览器缓存策略 描述。 |
缓存时间 | 表示请求文件的缓存的时长,最长是 365 天。仅当 缓存策略 是 遵循规则 时,该配置有效。该配置的输入要求如下: - 如果您指定的时间单位是 秒,输入值的范围是 0 - 31536000。
- 如果您指定的时间单位是 分,输入值的范围是 0 - 5256000。
- 如果您指定的时间单位是 小时,输入值的范围是 0 - 8760。
- 如果您指定的时间单位是 天,输入值的范围是 0 - 365。
如果您设置缓存时间为 0,CDN 会在响应头中包含 Cache-Control: max-age=0。当收到 CDN 响应时,浏览器会缓存请求文件,但是缓存会立刻过期。下次浏览器请求该文件时,会校验站点上该文件是否存在更新。 |
规则优先级
当收到用户请求时,CDN 按照规则在列表中的排列顺序依次处理规则。规则在列表中位置越靠前,优先级越高。在处理规则时,CDN 尝试将规则与请求匹配。当某条规则与请求匹配时,CDN 立即对该请求应用规则中的浏览器缓存策略,不再处理后续规则。您可以拖动规则调整规则在列表中的出现顺序。