Determines if the Response validators (ETag, Last-Modified) match a conditional value specified in the Request.
If the Response is not modified, it sets the status code to 304 and removes the actual content by calling the setNotModified() method.
@api
Request $request A Request instance:
Boolean true if the Response validators match the Request, false otherwise
public function isNotModified(Request $request) {
if (!$request
->isMethodSafe()) {
return false;
}
$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;
}