引子
- php 使用 session_start() 以后页面返回缓存相关的响应头,如 Pragma。
- 该响应头由 session_cache_limiter(读取/设置缓存限制器)影响。
session_cache_limiter
说明:session_cache_limiter ([ string $cache_limiter ] ) : string
session_cache_limiter() 返回当前缓存限制器的名称。
缓存限制器定义了向客户端发送的 HTTP 响应头中的缓存控制策略。 客户端或者代理服务器通过检测这个响应头信息来 确定对于页面内容的缓存规则。 设置缓存限制器为 nocache 会禁止客户端或者代理服务器缓存内容, public 表示允许客户端或代理服务器缓存内容, private 表示允许客户端缓存, 但是不允许代理服务器缓存内容。
在 private 模式下, 包括 Mozilla 在内的一些浏览器可能无法正确处理 Expire 响应头, 通过使用 private_no_expire 模式可以解决这个问题:在这种模式下, 不会向客户端发送 Expire 响应头。
设置为 ''
可以关闭自动发送缓存策略响应头的功能。
请求开始的时候,缓存限制器会被重置为默认值,并且存储在 session.cache_limiter 配置项中。 因此,如果要设置缓存限制器,对于每个请求, 都需要在调用 session_start() 函数之前, 调用 session_cache_limiter() 函数来进行设置
参数
cache_limiter 可选的值
值 | 发送的响应头 |
---|---|
public | Expires:(根据 session.cache_expire 的设定计算得出) Cache-Control: public, max-age=(根据 session.cache_expire 的设定计算得出) Last-Modified:(会话最后保存时间) |
private_no_expire | Cache-Control: private, max-age=(根据 session.cache_expire 的设定计算得出), pre-check=(根据 session.cache_expire 的设定计算得出) Last-Modified: (会话最后保存时间) |
private | Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: private, max-age=(根据 session.cache_expire 的设定计算得出), pre-check=(根据 session.cache_expire 的设定计算得出) Last-Modified: (会话最后保存时间) |
nocache(默认值) | Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache |
返回值
返回当前所用的缓存限制器名称。
来源:https://www.php.net/manual/zh/function.session-cache-limiter.php