为什么新的标准是 `application/javascript` 而不是 `text/javascript`?

7

可能重复:
Javascript MIME类型

我注意到MIME类型text/javascript已经被弃用,推荐使用application/javascriptWikipedia似乎证实了这一点。然而,JavaScript是以源代码形式分发的,即文本。术语application听起来像是已编译的二进制文件。事实上,现代JavaScript解释器确实对源文本执行JIT编译,从而生成应用程序,这意味着源文本本身不是应用程序。那么为什么更喜欢使用application/javascript MIME类型?

1个回答

3
根据RFC 2045的规定:
一般来说,顶级媒体类型用于声明数据的一般类型,而子类型则指定该类型数据的特定格式。因此,“image/xyz”这样的媒体类型足以告诉用户代理数据是图像,即使用户代理不知道具体的图像格式“xyz”。例如,可以使用这些信息来决定是否向用户显示未识别子类型的原始数据——对于文本的未识别子类型,这样的操作可能是合理的,但对于图像或音频的未识别子类型则不是。因此,文本、图像、音频和视频的注册子类型不应包含实际上属于不同类型的嵌入式信息。这种复合格式应使用“multipart”或“application”类型来表示。 编辑:
因此,尽管JavaScript确实是文本,但它也是“包含实际上属于不同类型的嵌入式信息的已注册文本子类型”,因此需要按照该RFC定义的application顶级媒体类型。
有许多application/... MIME类型并非“应用程序”(可执行二进制文件或代码),例如:Zip档案的application/zip。因此,在这个意义上,application顶级媒体类型的命名有些具有误导性。

2
好的,但是你没有解决楼主的观察,即JavaScript代码确实是文本。 - Lightness Races in Orbit
@LightnessRacesinOrbit 公正的评论。我已经更新了我的答案。 - TachyonVortex
@LightnessRacesinOrbit 请参考这个答案以获得一个好的解释。 - rsp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接