gpt4 book ai didi

php - 了解 If-Modified-Since HTTP header

转载 作者:IT王子 更新时间:2023-10-29 00:00:06 25 4
gpt4 key购买 nike

我正在查看试图使用请求对象的 If-Modified-Since header 的缓存库。问题是这个 header 永远不会被设置,它总是空白的,这对我来说是有意义的,因为它是一个请求。

如何强制请求具有 If-Modified-Since header ?或者我对它的作用有什么看法。

这是我指的函数。

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;
}

最佳答案

带有 If-Modified-Since 的请求仅当客户端已经拥有与具有 Last-Modified 的响应一起获得的资源时才有意义 header 与允许浏览器缓存的 header 结合使用 Cache-Control和/或 Pragma包含 public 的值。

此外,我注意到当原始响应还包含 ETag 时,某些浏览器不包含 If-Modified-Since header 。浏览器将改为使用 If-None-Match对其进行测试。

另见:

关于php - 了解 If-Modified-Since HTTP header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5081397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com