Mik*_*ike 14 php outputcache http cache-control if-modified-since
我正在寻找一个试图使用If-Modified-Since请求对象的标头的缓存库.问题是这个标题永远不会被设置,它总是空白的,这对我来说是有意义的,看它是如何请求的.
你怎么能强制要求有一个If-Modified-Since标题?或者我是否会这样做.
这是我指的功能.
public function isNotModified(Request $request)
{
    $lastModified = $request->headers->get('If-Modified-Since');
    $notModified = false;
    if ($etags = $request->getEtags()) {
        $notModified = (in_array($this->getEtag(), $etags) || in_array('*', $etags)) && (!$lastModified || $this->headers->get('Last-Modified') == $lastModified);
    } elseif ($lastModified) {
        $notModified = $lastModified == $this->headers->get('Last-Modified');
    }
    if ($notModified) {
        $this->setNotModified();
    }
    return $notModified;
}
Bal*_*usC 24
If-Modified-Since只有当客户端已经拥有一个资源以及一个响应时,该请求才有意义,该响应具有Last-Modified与允许浏览器缓存(如a Cache-Control和/或Pragma包含值)的标头相结合的标头public.
此外,我注意到一些浏览器不包括If-Modified-Since原始响应还包含ETag标头.而浏览器将If-None-Match用于测试它.
ali*_*ard 11
首先,您必须确保首先缓存初始响应(我在另一个相关问题中回答了这个问题.
尝试设置以下字段:
Last-Modified: Wed, 16 Feb 2011 13:52:26 GMT
Expires: -1
Cache-Control: must-revalidate, private
Last-Modified需要作为验证器(ETag如果你想测试,不要发送If-Modified-Since)Expires -1 告诉资源是陈旧的,必须始终重新验证Cache-Control 不得包含no-cache或no-store当您在初始HTTP/200响应上发送这些标头时,在后续请求中,浏览器应发送包含If-Modified-Since标头的条件请求.
| 归档时间: | 
 | 
| 查看次数: | 37105 次 | 
| 最近记录: |