HTTP 缓存验证模型是缓存网关(也称为反向代理)用于确定是否可以向客户端提供响应的存储副本的过程之一。使用此模型,您主要节省带宽,但如果使用得当,您还可以节省一些 CPU 处理,从而缩短响应时间。
// in a Controller
public function initialize(): void
{
parent::initialize();
$this->addComponent('CheckHttpCache');
}
在您的控制器中启用 CheckHttpCacheComponent
会自动激活 beforeRender
检查。此检查会将响应对象中设置的缓存标头与请求中发送的缓存标头进行比较,以确定自上次客户端请求以来响应是否未修改。使用以下请求标头:
If-None-Match
与响应的 Etag
标头进行比较。
If-Modified-Since
与响应的 Last-Modified
标头进行比较。
如果响应标头与请求标头条件匹配,则跳过视图渲染。这将节省您的应用程序生成视图,节省带宽和时间。当响应标头匹配时,将返回一个空的响应,状态代码为 304 Not Modified
。