【问题标题】:Why is the new standard `application/javascript` as opposed to `text/javascript`? [duplicate]为什么新标准是 `application/javascript` 而不是 `text/javascript`? [复制]
【发布时间】:2012-11-15 11:27:40
【问题描述】:

可能重复:
Javascript MIME Type

我注意到 MIME 类型 text/javascript 已被弃用,取而代之的是 application/javascriptWikipedia seems to confirm this。但是,Javascript 以源代码形式分发,即文本。 application 对我来说听起来像是一个编译好的二进制文件。事实上,现代 Javascript 解释器确实对源文本执行 JIT 编译,从而生成应用程序,从而暗示源文本本身不是应用程序。那么为什么首选使用application/javascript MIME 类型呢?

【问题讨论】:

    标签: javascript mime-types


    【解决方案1】:

    根据RFC 2045

    一般来说,顶级媒体类型用于声明一般数据类型,而子类型指定该数据类型的特定格式。因此,“image/xyz”的媒体类型足以告诉用户代理数据是图像,即使用户代理不知道特定的图像格式“xyz”。例如,此类信息可用于决定是否向用户显示来自无法识别的子类型的原始数据——这样的操作对于无法识别的文本子类型可能是合理的,但不适用于无法识别的图像或音频子类型。因此,已注册的文本、图像、音频和视频子类型不应包含真正属于不同类型的嵌入信息。此类复合格式应使用“multipart”或“application”类型表示。

    编辑

    因此,尽管 JavaScript 确实是文本,但它也是“包含嵌入信息的已注册文本子类型,实际上属于不同类型”,因此需要该 RFC 定义的 application 顶级媒体类型。

    有许多application/... MIME 类型不是“应用程序”(可执行二进制文件或代码),例如:application/zip(用于 Zip 档案)。所以从这个意义上说,application 顶级媒体类型的命名相当具有误导性。

    【讨论】:

    • 好的,但您没有解决 OP 的观察结果,即 Javascript 代码 文本。
    • @LightnessRacesinOrbit 公平评论。我已经更新了我的答案。
    • @LightnessRacesinOrbit 请参阅 this answer 以获得很好的解释。
    猜你喜欢
    • 2011-05-05
    • 1970-01-01
    • 2011-09-01
    • 2020-08-28
    • 1970-01-01
    • 2018-12-12
    • 2021-11-08
    • 2011-10-11
    相关资源
    最近更新 更多