html - html cache-control=no-cache 更改为 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(确定)
此示例站点在 VisualStudio (IIS) 上运行
解决方案
元素的http-equiv
属性在HTML 标准中定义。注意:meta
该
http-equiv
属性是枚举属性。下表列出了为此属性定义的关键字...
cache-control
不是列出的值之一,因此该指令无效。
不过,您的假设并非不合理;在标准的早期版本中,建议服务器可以基于此元素创建标头:
HTTP 服务器可以读取文档的内容
<HEAD>
以生成与定义属性值的任何元素相对应的标题字段HTTP-EQUIV
。注 - 服务器提取文档元信息的方法未指定且不是强制性的。
不过,我不知道是否有任何服务器确实这样做了。
最后,请注意,Cache-Control
您在开发人员工具中查看的标头是请求标头,而不是响应标头,因此与此无关。这是浏览器经常在刷新时添加到请求中的东西,以确保它们不会获得缓存内容。