首页 > 解决方案 > 尽管有缓存响应标头,但不可变缓存未命中

问题描述

为了掌握 HTTP 缓存,我目前正在尝试制作一个 HTTP 响应,说“一旦你得到它,就永远缓存它”。这是它的样子(PHP):

<?php
header('Cache-Control: max-age=31536000, immutable, only-if-cached');
sleep(2);
echo date('H:i:s');
exit;

不幸的是,Chrome(直接命中时)和 Cloudflare(代理时)都不想从缓存中提供服务。

从源接收的完整响应标头:

HTTP/1.1 200 OK
Server: nginx/1.14.2
Date: Mon, 30 Mar 2020 16:54:17 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: max-age=31536000, immutable, only-if-cached
Content-Encoding: gzip

我究竟做错了什么?

标签: phphttpcachingimmutabilitycloudflare

解决方案


推荐阅读