繁体   English   中英

html cache-control=no-cache 更改为 cache-control=max-age=0

[英]html cache-control=no-cache changes to cache-control=max-age=0

我已经构建了一个简单的页面来测试缓存控制,但我对结果感到困惑。 页面只是

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Website teste</title>
    <meta http-equiv="cache-control" content="no-cache">
</head>
<body>
    <div>Hello World</div>

    <script>
        setTimeout(function () {
            window.location.reload()
        }, 10000)
    </script>
</body>
</html>

如果我进行硬刷新,缓存控制就是预期的在此处输入图片说明

但下次刷新缓存控制更改为 max-age=0

在此处输入图片说明

结果不应该是 304(未修改)而不是 200(OK)

此示例站点在 VisualStudio (IIS) 上运行

meta元素的http-equiv属性在HTML 标准中定义。 注意:

http-equiv属性是一个枚举属性。 下表列出了为此属性定义的关键字...

cache-control不是列出的值之一,因此该指令无效。

不过,您的假设并非不合理。 在该标准的早期版本中,建议服务器可以基于此元素创建标头:

HTTP 服务器可以读取文档<HEAD>的内容以生成对应于为属性HTTP-EQUIV定义值的任何元素的头字段。 注意 - 服务器提取文档元信息的方法是未指定的,也不是强制性的。

不过,我不知道是否有任何服务器确实这样做了。

最后,请注意,您在开发人员工具中看到的Cache-Control标头是请求标头,而不是响应标头,因此与这些无关。 浏览器通常会在刷新时添加到请求中,以确保它们不会获得缓存内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM