gpt4 book ai didi

php - 什么是编译指示头?缓存页面..和IE

转载 作者:IT王子 更新时间:2023-10-29 01:16:31 26 4
gpt4 key购买 nike

所以我在 php 中发送一个 header 来缓存我的页面(这也集成到我们的“CDN”(contendo/akamai)中)。我总是使用这个 pragma: cache header,我见过各种使用它的例子;但是,我刚刚检查了 fiddler 以测试我们开发的这个 .net 应用程序的流量,它说:

Legacy Pragma Header is present: cache
!! Warning IE supports only an EXACT match of "Pragma: no-cache". IE will ignore the Pragma header if any other values are present.
...

我想这没问题。其余的响应似乎很好并且符合我的规范。这是我的代码:

function headers_for_page_cache($cache_length=600){
$cache_expire_date = gmdate("D, d M Y H:i:s", time() + $cache_length);
header("Expires: $cache_expire_date");
header("Pragma: cache");
header("Cache-Control: max-age=$cache_length");
header("User-Cache-Control: max-age=$cache_length");
}

问题是这有关系吗?编译指示 header 甚至可以做什么?我需要吗?我检查了 HTTP header 规范文档,它说它是特定于实现的,唯一强制执行的 Pragma 是“Pragma:no-cache”。

这是在特定时间内缓存 header 的最佳选择吗?

最佳答案

以一种非常简化的形式,Pragma:no-cache 或 Pragma:cache 现在“几乎”是将缓存指令传递给客户端实现(特别是浏览器和代理)的过时方式。客户端实现响应 Pragma header 的方式各不相同,这就是规范说它是特定于实现的原因。

Cache-control 的更现代方式是您可以放心依赖的方式,因为几乎所有客户端实现都严格遵循它。

此外,如果您同时为同一指令设置了 Cache-controlPragma,比如缓存,那么 Cache-control 优先.

这是一篇关于与缓存相关的所有内容的优秀文章,我认为它非常有趣且有用:http://www.mnot.net/cache_docs/

关于php - 什么是编译指示头?缓存页面..和IE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11992946/

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