changeset 9328:48f30a3add51

MIME: updated type for js files to text/javascript. RFC 9239 changed recommended media type to text/javascript, and made application/javascript deprecated. According to httparchive.org data, as of 2023-01-01 javascript files are returned with the following types (type, total pages using the type, total requests with the type): application/javascript,11686643,218376911 text/javascript,9623206,76111177 application/x-javascript,4874976,28554156 The same data as of 2024-01-01: application/javascript,10563307,205156998 text/javascript,8429652,78523734 application/x-javascript,4197414,26277166 And as of 2024-08-01: application/javascript,10945376,216622264 text/javascript,8802358,102680806 application/x-javascript,4278134,28726895 This corresponds to text/javascript being used in 23.5%, 25.3%, and 29.5% of responses. That is, it is slowly gaining popularity. Still, application/javascript remains more popular for now. With this change, js files are now returned with the text/javascript type. Similarly, autoindex in jsonp format now also uses text/javascript. Additionally, text/javascript is added to the default charset_types list of the charset module. Since application/javascript is still more popular than text/javascript, application/javascript is also preserved in the default list for now.
author Maxim Dounin <mdounin@mdounin.ru>
date Sat, 31 Aug 2024 05:40:06 +0300
parents 707736510a90
children eebab9268326
files conf/mime.types src/http/modules/ngx_http_autoindex_module.c src/http/modules/ngx_http_charset_filter_module.c
diffstat 3 files changed, 3 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/conf/mime.types
+++ b/conf/mime.types
@@ -2,10 +2,10 @@
 types {
     text/html                                        html htm shtml;
     text/css                                         css;
+    text/javascript                                  js;
     text/xml                                         xml;
     image/gif                                        gif;
     image/jpeg                                       jpeg jpg;
-    application/javascript                           js;
     application/atom+xml                             atom;
     application/rss+xml                              rss;
 
--- a/src/http/modules/ngx_http_autoindex_module.c
+++ b/src/http/modules/ngx_http_autoindex_module.c
@@ -264,7 +264,7 @@ ngx_http_autoindex_handler(ngx_http_requ
         break;
 
     case NGX_HTTP_AUTOINDEX_JSONP:
-        ngx_str_set(&r->headers_out.content_type, "application/javascript");
+        ngx_str_set(&r->headers_out.content_type, "text/javascript");
         break;
 
     case NGX_HTTP_AUTOINDEX_XML:
--- a/src/http/modules/ngx_http_charset_filter_module.c
+++ b/src/http/modules/ngx_http_charset_filter_module.c
@@ -126,6 +126,7 @@ static ngx_int_t ngx_http_charset_postco
 static ngx_str_t  ngx_http_charset_default_types[] = {
     ngx_string("text/html"),
     ngx_string("text/xml"),
+    ngx_string("text/javascript"),
     ngx_string("text/plain"),
     ngx_string("text/markdown"),
     ngx_string("text/vnd.wap.wml"),