php 中的 http 缓存机制使用如下字段:cache-control:控制资源缓存策略(如 max-age、public、private 等)。etag:验证资源修改时间。last-modified:资源最后修改时间。if-modified-since:检查资源自上次修改后的变化。if-none-match:检查资源自上次接收后的变化。
PHP 通过 HTTP 头部进行缓存
HTTP 缓存是通过以下字段在 PHP 中实现的:
- Cache-Control: 指定资源的缓存策略,如 max-age、public、private 等。
- ETag: 实体标记,用于验证资源的修改时间。
- Last-Modified: 资源的最后修改时间。
- If-Modified-Since: 客户端请求时发送的条件头,用于检查资源自上次修改以来的变化。
- If-None-Match: 客户端请求时发送的条件头,用于检查资源自上次接收以来的变化。
Cache-Control
Cache-Control 头部是用于控制资源缓存的最重要的字段。它可以指定以下指令:
- max-age: 指定资源的缓存时间,单位为秒。
- public: 允许公共缓存(如 CDN)缓存资源。
- private: 仅允许私有缓存(如浏览器)缓存资源。
- no-cache: 每次请求都必须从源服务器重新获取资源。
- no-store: 禁止缓存资源。
ETag、Last-Modified 和条件请求
ETag 和 Last-Modified 头部允许服务器验证资源的修改时间。如果资源未更改,服务器将返回 304 Not Modified 响应,并且客户端可以从缓存中获取资源。
If-Modified-Since 和 If-None-Match 是条件请求头。如果资源自客户端最后请求后的修改时间相同(或 ETag 相同),则服务器将返回 304 Not Modified 响应。
使用示例
以下是一些使用 HTTP 头部进行缓存的 PHP 示例:
// 设置 `Cache-Control` 头部 header('Cache-Control: public, max-age=3600'); // 设置 `ETag` 头部 header('ETag: ' . md5_file($file)); // 设置条件请求头 header('If-Modified-Since: ' . $request->getHeaderLine('If-Modified-Since'));
登录后复制
通过适当使用这些 HTTP 头部,您可以有效地缓存资源,从而提高 Web 应用程序的性能。
以上就是php通过http哪些字段缓存的详细内容,更多请关注叮当号网其它相关文章!
文章来自互联网,只做分享使用。发布者:叮当号,转转请注明出处:https://www.dingdanghao.com/article/662489.html