text/javascript vs application/javascript

javascript, mime-types

Solution

Per IETF RFC 9239 `text/javascript` is now standard and `application/javascript` is now considered obsolete.

The media type registrations herein are divided into two major categories: (1) the sole media type "text/javascript", which is now in common usage and (2) all of the media types that are obsolete (i.e., "application/ecmascript", "application/javascript", "application/x-ecmascript", "application/ x-javascript", "text/ecmascript", "text/javascript1.0", "text/javascript1.1", "text/javascript1.2", "text/ javascript1.3", "text/javascript1.4", "text/javascript1.5", "text/jscript", "text/livescript", and "text/xecmascript").

See further notes in When serving JavaScript files, is it better to use the application/javascript or application/x-javascript

Problem

I am curious about the semantics of the MIME types `application/javascript` versus `text/javascript`. Apart from the obvious - one is intended to be executed, and the other is text. I see `application/javascript` when looking at headers of an external .js load. ``` HTTP/1.1 200 OK Date: Mon, 13 Jan 2014 18:32:58 GMT Server: Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/0.9.8e-fips-rhel5 Content-Type: application/javascript Content-Length: 856 keep-alive: timeout=5, max=59 Via: 1.1 (jetty) Accept-Ranges: bytes ``` If this `application/javascript` will execute the javascript, why don't we use ``` <script type="application/javascript"> // some js code. </script> ``` And vice-versa, why is an external js load not `text/javascript`?

Original source

Related problems