脚本标签的 type 属性的 javascript MIME 类型是什么?

IT技术 javascript mime-types
2021-02-04 01:08:04

什么是javascriptMIME类型?

更具体地说,在脚本标签的“类型”属性中放入什么是正确的?application/x-javascript并且text/javascript似乎是主要的竞争者。

5个回答

这是一个常见的错误。javascript 的 MIME 类型多年来没有标准化。现在是正式的:“ application/javascript ”。

这里真正的问题是大多数浏览器无论如何都不会使用该属性,至少在 script 标签的情况下不会。他们实际上偷看数据包内部并为自己确定类型。

所以底线是 type="text/javascript" 就 javascript 而言没有做任何事情,但它是HTML 4XHTML 1.0规范的一部分

标准是一件好事,但有时这些委员会做出的选择令人费解。Javascript 是文本,text/javascript 是正在使用的,所以为什么选择 application/javascript。有时我想知道这些人是否真的生活在现实世界中。;)
2021-03-16 01:08:04
浏览器不会做任何事情……但是 mime 类型对于代理服务器或 CDN(如 Akamai)来说意义重大,它们可能会为您完成一些已知 mime 类型的最后一英里压缩。如果标题干净且标准,这样的事情会更容易。
2021-03-20 01:08:04
我可以确认在 Internet Explorer中使用 <script type="application/javascript"> 会失败
2021-03-29 01:08:04
@AnthonyWJones:这很复杂。这是一个通过标准来清理猖獗做法的例子。有多达 8 种临时 MIME 类型在使用。委员会提出了可靠的建议,但为时已晚。虽然 JS 是文本,但它也是源代码。
2021-04-05 01:08:04
根据 IETF 的ECMAScript 媒体类型更新,RFC 4329 已过时。
2021-04-13 01:08:04

最重要的是,这是我在该主题上找到的第一页,对此有任何了解。

我的集体研究表明:

  1. text/javascript正如 Keparo 所说,如果您希望它进行验证,则必须在 html4 和 xhtml1 中使用。虽然浏览器忽略它。
  2. application/javascript 如果每个人都同意并且一切都赶上,预计将成为新的官方 MIME 类型。
  3. application/x-javascript (x 表示非官方)是 JavaScript 的当前服务器端 MIME 参考。
  4. 每个人都希望像往常一样,微软将决定做一些完全不同的事情,以进一步混淆和解决问题。

总结:现在,如果您希望 html/xhtml 在 MSIE 中工作并使用 W3C 进行验证,请声明type="text/javascript". 如果你想让你的网络服务器知道你的意思是 javascript 然后使用application/x-javascript.

Apache httpd.conf 使用服务器端 javascript MIME 来配置以下内容:--ForceType(对于非后缀或非标准文件),-输出过滤器(如缩小器、gzip、压缩和任何其他需要通过哑剧)。此外,我给任何使用服务器端 javascript 的人一个 -1,并建议:认真对待,不要害怕学习。
2021-03-14 01:08:04
另一个 SS javascript MIME 要求示例是这样的情况:您使用服务器端数据库接口脚本/程序动态生成 javascript 代码,同时从某种数据库中填充变量。生成代码必须声明 'Content-type: application/x-javascript' 作为标题,否则服务器软件 - 甚至可能是客户端软件(如果没有明确声明) - 将无法将数据识别为 javascript(如我之前的评论)。
2021-03-21 01:08:04
大声笑看我上面的评论,2010 年的服务器端 js 似乎是一个笑话,而在过去的 10 年中,nodejs 让我吃了我的话哈哈
2021-03-28 01:08:04
+1 用于提及服务器端 JS。但是,您有谁在服务器端使用 app/x-js 的来源或引用吗?
2021-03-29 01:08:04

文本/javascript

我相信 IE 不接受 application/x-javascript

指定脚本语言

在脚本标签中,我会使用 text/javascript。无论如何,这出现在 HTML 4.0 规范中。

http://www.w3.org/TR/REC-html40/interact/scripts.html

[编辑] 有趣的是,在 application/javascript 上标准化RFC是 2 岁,但 text/javascript 仍然更常见。这是定制战胜标准的又一案例吗?它也出现在HTML5 中

直觉各不相同。“应用程序/”!=“二进制/”
2021-03-17 01:08:04
并且因为直观地将其称为 text/javascript 更有意义。
2021-03-29 01:08:04
仍然使用 text/javascript 的原因与避免使用 PNG 图像的原因相同——与 IE 5 和 6 兼容。
2021-04-03 01:08:04

定义 Javascript MIME 类型的官方 RFC 是RFC4329

     
7. JavaScript 媒体类型

7.1. 文本/javascript(已过时)

   类型名称:文本
   子类型名称:javascript
   所需参数:无
   可选参数:charset,见4.1节。
   编码注意事项:
      与 [RFC3023] 的 3.1 节中的注意事项相同。

   安全考虑:见第 5 节。
   互操作性注意事项:
      无,除非在本文档的其他部分中注明。

   已发布规范:[JS15]
   使用此媒体类型的应用程序:
      本文档中讨论的脚本解释器。

   附加信息:

      幻数:不适用
      文件扩展名:.js
      Macintosh 文件类型代码:文本

   要联系以获取更多信息的人员和电子邮件地址:
      见作者地址部分。

   预期用途:过时
   使用限制:不适用
   作者:见作者地址部分。
   变更控制人:IESG。

7.2. 应用程序/javascript

   类型名称:应用
   子类型名称:javascript
   所需参数:无
   可选参数:charset,见4.1节。
   编码注意事项:
      与 [RFC3023] 的 3.2 节中的注意事项相同。

   安全考虑:见第 5 节。
   互操作性注意事项:
      无,除非在本文档的其他部分中注明。

   已发布规范:[JS15]
   使用此媒体类型的应用程序:
      本文档中讨论的脚本解释器。

   附加信息:

      幻数:不适用
      文件扩展名:.js
      Macintosh 文件类型代码:文本

   要联系以获取更多信息的人员和电子邮件地址:
      见作者地址部分。

   预期用途:常见
   使用限制:不适用
   作者:见作者地址部分。
   变更控制人:IESG。
你可以写下RFC中所说的
2021-04-09 01:08:04