哪个优先,http-equiv或HTTP响应头?

时间:2017-03-15 06:35:31

标签: html http

这个问题似乎重复,但经过一些研究,没有找到可靠的答案。子问题是:

  1. http-equiv和HTTP响应标头具有相同的密钥时,它们的对应值是否冲突,哪一个优先?
  2. 第一个问题是否有任何规范,即使浏览器没有遵循?
  3. 如果没有说明,会发生什么?标准组中是否有任何讨论?这种行为肯定需要在某些标准中定义。
  4. 以下是一些研究工作:

    在我看来,这两项决定都是有道理的,但是没有一般的答案吗?

4 个答案:

答案 0 :(得分:1)

来自MSDN

  

如果同时发送了这两条说明,则为开发者的首选项   (元素)优先于Web服务器设置(HTTP   头)。

我无法确定它是IE \ IIS特定的行为还是标准。

答案 1 :(得分:0)

从文档中不清楚在HTTP-equiv与HTTP标头中Content-Security-Policy的优先级是什么。 我已经在Firefox 62.0上进行了实验性测试:

<meta http-equiv="Content-Security-Policy" content="script-src 'self' https://www.google-analytics.com/analytics.js"/>
<script src="https://www.google-analytics.com/analytics.js"></script>
<script src="https://connect.facebook.net/en_US/fbevents.js"></script>

未设置HTTP标头时,控制台仅争论facebook.net。

使用header set Content-Security-Policy "script-src 'self' https://connect.facebook.net/en_US/fbevents.js"  控制台会同时争论www.google-analytics.com和facebook.net。

当删除http-equiv并保留facebook.net的标头时,控制台会正确地争论 google-analytics。

由此看来,http-equiv和http标头的组合被检测为重复定义,根本无法识别。

答案 2 :(得分:0)

Shahafo发布的答案对于X-UA-Compatible标头和IE 11可能是正确的,但在一般情况下似乎并不正确。例如,对于Firefox和Chrome,与缓存相关的HTTP标头比与缓存相关的http-equiv标签具有更高的优先级。对于IE 11,情况相反。

答案 3 :(得分:-1)

  1. 当没有连接时,始终首先执行HTTP重定向 页面传输,当然甚至不读。
  2. 如果没有任何HTTP重定向,则会执行HTML重定向()。
  3. JavaScript重定向用作最后的手段,并且仅限于 在客户端启用了JavaScript。
  4. 你需要的只是在这里:

    https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections