Cloudflare - 没有CF-Cache-Status - 它是否缓存?

时间:2017-03-22 13:09:06

标签: caching cloudflare

我正在使用Cloudflare作为其CDN的服务器上的资源上运行curl。但是,我不确定它是否可以缓存。

这里是A的输出 - 这是我不确定缓存的那个:

Resource A:

< HTTP/1.1 530 
< Date: Wed, 22 Mar 2017 12:47:06 GMT
< Content-Type: text/html; charset=UTF-8
< Transfer-Encoding: chunked
< Connection: close
< Set-Cookie: __cfduid=<numbers>; expires=Thu, 22-Mar-18 12:47:05 GMT; path=/; domain=.<domain>; HttpOnly
< Cache-Control: max-age=6
< Expires: Wed, 22 Mar 2017 12:47:12 GMT
< X-Frame-Options: SAMEORIGIN
< Server: cloudflare-nginx
< CF-RAY: <numbers>-LHR

Resource B: - 这显然是缓存,因为它有一个CF-Cache-Status: HIT标题

< HTTP/1.1 200 OK
< Date: Wed, 22 Mar 2017 12:47:56 GMT
< Content-Type: image/png
< Content-Length: 3853
< Connection: keep-alive
< Set-Cookie: __cfduid=<numbers>; expires=Thu, 22-Mar-18 12:47:56 GMT; path=/; domain=<domain>; HttpOnly
< Cf-Bgj: imgq:100
< Cf-Polished: pngoptimizer, origSize=5384
< Etag: "<etag>"
< Last-Modified: Fri, 17 Mar 2017 00:07:20 GMT
< X-Amz-Id-2: <numbers>=
< X-Amz-Meta-S3b-Last-Modified: 20170316T132941Z
< X-Amz-Request-Id: <numbers>
< CF-Cache-Status: HIT
< Expires: Wed, 22 Mar 2017 13:47:56 GMT
< Cache-Control: public, max-age=3600
< Server: cloudflare-nginx
< CF-RAY: <numbers>-LHR

注意我已多次运行这些curl次请求。

有什么建议吗?

1 个答案:

答案 0 :(得分:4)

CloudFlare does not cache HTML resources by default。由于资源A具有Content-Type: text/html,因此它可能是.html文件,因此不会被缓存。

默认情况下,图像会被缓存。这就是为什么资源B的image-png(可能实际上是.png文件)的Content-Type显示CF-Cache-Status: HIT

请注意,CloudFlare基于文件扩展名而不是MIME类型进行缓存。因此,如果没有看到您的请求的完整URL及其文件扩展名,我只假设资源A和B的扩展实际上与卷曲响应中的MIME类型匹配。

如果要缓存HTML文件,可以configure page rules这样做。

我希望有所帮助!