Search code examples
javascriptmime-types

text/javascript vs application/javascript


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?


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