application/x-javascript和text/javascript内容类型的区别

这些头文件之间有什么区别?

Content-Type: application/javascript
Content-Type: application/x-javascript
Content-Type: text/javascript

哪个是最好的,为什么?

请不要说他们是一模一样的——如果他们是一模一样的,就不会有三个了。我知道这两种方法都有效,但我想知道其中的区别。

170028 次浏览

x-开头的mime类型不是标准化的。对于javascript来说,它有点过时了。 附加的第二个代码片段

<?Header('Content-Type: text/javascript');?>

需要启用short_open_tags。你应该避免这样做。

<?php Header('Content-Type: text/javascript');?>

然而,javascript的完全正确的mime类型是

application/javascript

http://www.iana.org/assignments/media-types/application/index.html

text/javascript是过时的,而application/x-javascript是试验性的(因此前缀x-),直到application/javascript可以标准化。

你应该使用application/javascriptRFC中有文档。

就浏览器而言,没有区别(至少在HTTP报头上)。这只是一个更改,以便text/*application/* MIME类型组在可能的情况下具有一致的含义。(text/* MIME类型是为人类可读的内容而设计的,JavaScript不是为直接向人类传达含义而设计的)。

注意,在一些较旧的浏览器中,在脚本元素的type属性中使用application/javascript将导致脚本被忽略(作为未知语言)。要么继续使用text/javascript,要么完全省略该属性(这在HTML 5中是允许的)。

这在HTTP报头中不是一个问题,因为浏览器普遍(据我所知)要么完全忽略HTTP内容类型的脚本,要么足够现代以识别application/javascript

根据RFC 4329, JavaScript的正确MIME类型应该是application/javascript。然而,较旧的IE版本会窒息于此,因为它们期望text/javascript

使用类型=“应用程序/ javascript”

在HTML5中,type属性是过时的,你可以删除它。注意:根据w3.org,它默认为“文本/javascript”,所以我建议添加“应用程序/javascript”而不是删除它。

< p > http://www.w3.org/TR/html5/scripting-1.html#attr-script-type < br > 类型 属性提供脚本的语言或数据的格式。如果 属性存在时,其值必须是有效的MIME类型。的 不能指定字符集参数。默认值,如果 属性不存在,是"text/javascript"

使用"application/javascript",因为“text/javascript”已经过时了:

RFC 4329: __abc0

  1. 部署的脚本媒体类型和兼容性

    在ad-hoc中使用了各种未注册的媒体类型 时尚标签和交换程序写在ECMAScript和 JavaScript。这些包括:< / p > < p >+-----------------------------------------------------+ |文本/javascript |文本/ecmascript | | text/javascript1.0 | text/javascript1.1 | . txt | text/javascript1.2 | text/javascript1.3 | . txt | text/javascript1.4 | text/javascript1.5 | . txt | text/jscript | text/livescript | . txt |文本/x-javascript |文本/x-ecmascript | |应用/x-javascript |应用/x-ecmascript | |应用/javascript |应用/ecmascript | +-----------------------------------------------------+ < / >
对于这类内容,使用“text”顶级类型是已知的 有问题的。本文档定义了text/javascript和text/
Ecmascript,但标记他们为“过时”。使用experimental和
未注册的媒体类型,如上面部分所列,是不鼓励的 媒体类型,

  * application/javascript
* application/ecmascript

也在本文档中定义,用于通用

本文档定义了
的等效处理要求 类型为text/javascript、text/ecmascript、application/javascript 媒体类型application/ecmascript的使用和支持是
远不如
中定义的其他媒体类型广泛 这个文档。利用这一点,本文档定义了
此类型的更严格的处理规则,以促进更多的互操作性
处理。< / p >

X-javascript是实验性的,不要使用它。

截至2022年5月,text/javascript再次成为首选类型(参见RFC 9239)