【问题标题】:What's the difference between setting cache control in the http header response or the html metatag?在 http 标头响应或 html 元标记中设置缓存控制有什么区别?
【发布时间】:2023-04-09 18:10:01
【问题描述】:

这是一个 html 元标记示例:

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

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

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

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

Cache-Control: private

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

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

【问题讨论】:

    标签: html http tomcat caching firebug


    【解决方案1】:

    来自the HTML 4.01 spec

    META 元素

    http-equiv = 名称 [CI]

    这个属性可以用来代替 name 属性。 HTTP 服务器 使用此属性来收集 HTTP 响应的信息 邮件标题。

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-27
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 2013-04-01
      • 1970-01-01
      • 2020-07-23
      • 2023-04-08
      相关资源
      最近更新 更多