4

这是一个 html 元标记示例:

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="private">

它设置在 html 元标记上以启用缓存。

我用 Tomcat 和 Firebig 试过了。服务器在 html 元标记中发送信息。但在 http 标头响应中没有关于缓存的信息。

但是,http 标头响应中的类似内容是有效的:

Cache-Control: private

所以我想知道:什么时候将信息写在http响应中?

有两种设置相同信息的方式(元标记和http响应行)有什么需要?

4

1 回答 1

5

来自HTML 4.01 规范

元元素

http-equiv = 名称 [CI]

该属性可以用来代替 name 属性。HTTP 服务器使用此属性来收集 HTTP 响应消息头的信息。

这就是想法。服务器的工作是在元元素通过网络发送之前将其转换为真正的 HTTP 标头。

但这意味着服务器必须在发送每个 HTML 文档之前对其进行解析,因此它实际上从未发生过。

浏览器尽其所能拾取这些部分,但缓存规则也适用于代理,并且那些只会处理真正的 HTTP 标头,因此缓存控制 http-equiv 元元素在 HTML5 中无效。

您应该始终使用真正的 HTTP 标头,这些标头要么由服务器作为其配置的一部分添加,要么在服务器端代码中(即,用 PHP、Java servlet、ASP.NET 等编写的代码)

于 2013-04-12T18:56:08.853 回答