在PHP中,可以通过设置HTTP响应头来控制GET请求的缓存策略,常见的缓存策略包括:
- 设置ETag:通过设置ETag(Entity Tag)来标识资源的版本,如果资源内容没有改变,服务器可以返回304 Not Modified状态码,告诉客户端可以继续使用缓存的资源。
header('ETag: "123456789"');
- 设置Cache-Control:通过设置Cache-Control来指定缓存的行为,常见的指令包括:
- public:表示响应可以被任何中间缓存(如CDN)缓存。
- private:表示响应只能被浏览器缓存,不能被中间缓存缓存。
- max-age:指定缓存的有效期,单位为秒。
header('Cache-Control: max-age=60, public');
- 设置Expires:通过设置Expires来指定资源的到期时间,即资源在到期时间之前都可以被缓存。
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 60) . ' GMT');
- 设置Last-Modified:通过设置Last-Modified来指定资源的最后修改时间,如果资源内容没有改变,服务器可以返回304 Not Modified状态码。
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', filemtime($file)) . ' GMT');
以上是常见的GET请求缓存策略,根据具体情况可以选择适合的缓存策略来提高性能和减少网络流量。