首页 DCDN 2.0 操作指南 缓存 默认缓存规则

默认缓存规则

更新时间: 2024-04-07 10:31:19

在使用全站加速 DCDN加速静态资源时,全站加速 DCDN会将源站上的资源缓存到距离客户端最近的全站加速 DCDN节点上。当您访问该静态资源时,可以直接从全站加速 DCDN的缓存节点上获取,有效避免通过较长的链路回源,提高资源访问效率。阿里云全站加速 DCDN的所有节点都包含缓存软件,在用户请求或者源站响应资源经过全站加速 DCDN节点时,缓存软件会根据需要对源站资源进行缓存,并设定缓存过期时间。

默认缓存策略

客户端请求只有在进入全站加速 DCDN缓存组件的情况下,缓存配置才会生效。客户端请求是否进入缓存组件需要按顺序经过三重判断,相关说明如下:

  1. 用户请求类型判断:默认只有GET、HEAD请求类型才能进入缓存组件。

  2. 缓存规则判断:判断用户请求是否符合缓存规则中设定的规则条件,如果符合,用户请求将会使用缓存规则中设定的缓存配置(缓存规则的生效优先级高于全局缓存配置),具体请参见缓存配置生效逻辑

  3. 请求文件类型判断:判断用户请求需要访问的文件类型是否符合默认缓存的文件扩展名中的文件类型,如果符合,用户请求将会使用全局配置中设定的缓存配置。

image

默认缓存的文件扩展名

默认情况下,用户请求的资源的文件后缀是下面这些类型的情况下,用户请求会经过缓存模块(即对应绕过缓存功能的默认规则),至于资源在缓存模块上的缓存过期时间,还需要按该资源命中的缓存规则。

7Z

CSV

GIF

MIDI

PNG

TIF

ZIP

AVI

DOC

GZ

MKV

PPT

TIFF

ZST

AVIF

DOCX

ICO

MP3

PPTX

TTF

APK

DMG

ISO

MP4

PS

WEBM

BIN

EJS

JAR

OGG

RAR

WEBP

BMP

EOT

JPG

OTF

SVG

WOFF

BZ2

EPS

JPEG

PDF

SVGZ

WOFF2

CLASS

EXE

JS

PICT

SWF

XLS

CSS

FLAC

MID

PLS

TAR

XLSX

缓存配置生效逻辑

节点缓存过期时间功能有四种模式,四种模式分别具备不同的缓存生效逻辑:

  • 遵循源站缓存策略:如果源站响应信息中有缓存策略(Cache-Control),则遵循源站的缓存策略;如果源站响应信息中没有缓存策略(Cache-Control),则遵循全站加速 DCDN的默认缓存策略。详细的判断逻辑请参见遵循源站缓存策略

  • 优先遵循源站缓存策略(如果存在),否则不缓存:如果源站响应信息中有缓存策略(包括Cache-Control、Expires、Last-Modified、ETag),则遵循源站的缓存策略;如果源站响应信息中没有缓存策略(包括Cache-Control、Expires、Last-Modified、ETag),则不缓存。详细的判断逻辑请参见优先遵循源站缓存策略(如果存在),否则不缓存

  • 不缓存全站加速 DCDN节点收到的所有源站响应资源均不缓存。

  • 忽略源站缓存策略,使用自定义缓存过期时间:忽略源站响应信息中的缓存策略(包括Cache-Control、Expires、Last-Modified、ETag),使用全站加速 DCDN上设定的缓存过期时间。

遵循源站缓存策略

image

源站缓存策略判断

源站响应缓存策略cache-control包含以下两种情况:

  1. cache-control:no-cache(或者no-store,或者max-age=0)时,不缓存。

  2. 源站响应中使用cache-control设置过期时间,取值为max-ages-maxage,并且max-ages-maxage的值大于0,例如:cache-control:max-age=3600。如果同时存在max-ages-maxage,则以s-maxage的值为准。

DCDN缓存策略判断

  1. 源站响应信息中不包含缓存策略cache-control的情况下,使用DCDN的默认缓存策略,优先级由高至低为:expires>last-modified>ETag

    1. 使用源站响应的expires设置过期时间,例如:expires:Tue, 25 Nov 2031 17:25:43 GMT。

    2. 如果源站响应中携带了ETaglast-modified,则使用以下规则来计算缓存时间:

      1. last-modified,使用公式(当前时间-last-modified)* 0.1,计算结果在10秒~3600秒及之间的,取计算结果时间;小于10秒的,按照10秒处理;大于3600秒的,按照3600秒处理。

      2. 只有ETag,缓存10秒。

  2. 源站返回的数据中cache-controlexpiresETaglast-modified这些缓存相关的响应头都没有携带,则DCDN默认不缓存。

优先遵循源站缓存策略(如果存在),否则不缓存

image

源站缓存策略判断

只判断源站响应信息中是否包含缓存策略cache-control,如果不包含就不缓存;如果包含,源站响应缓存策略cache-control包含以下两种情况:

  1. cache-control:no-cache(或者no-store,或者max-age=0)时,不缓存。

  2. 源站响应中使用cache-control设置过期时间,取值为max-ages-maxage,并且max-ages-maxage的值大于0,例如:cache-control:max-age=3600。如果同时存在max-ages-maxage,则以s-maxage的值为准。