﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	uname	nginx_version
1188	"Send ""immutable"" keyword in Cache-Control when ""expires max"""	fazalmajid@…		"Per the documentation for ngx_http_headers_module:

   The max parameter sets “Expires” to the value “Thu, 31 Dec 2037 23:55:55 GMT”,
   and “Cache-Control” to 10 years.

At Facebook's urging, Firefox implemented an additional keyword to Cache-Control for immutable assets:
https://code.facebook.com/posts/557147474482256/this-browser-tweak-saved-60-of-requests-to-facebook/
https://hacks.mozilla.org/2017/01/using-immutable-caching-to-speed-up-the-web/

Adding this ""immutable"" keyword to the Cache-Control header for ""expires max"" requests would improve cache effectiveness for Firefox users.

The change itself is trivial:

 {{{
--- src/http/modules/ngx_http_headers_filter_module.c.dist      Thu Jan 26 11:14:29 2017
+++ src/http/modules/ngx_http_headers_filter_module.c   Thu Jan 26 11:15:23 2017
@@ -301,7 +301,7 @@
     if (expires == NGX_HTTP_EXPIRES_MAX) {
         e->value.data = (u_char *) ""Thu, 31 Dec 2037 23:55:55 GMT"";
         /* 10 years */
-        ngx_str_set(&cc->value, ""max-age=315360000"");
+        ngx_str_set(&cc->value, ""max-age=315360000, immutable"");
         return NGX_OK;
     }
 
}}}"	enhancement	new	minor		nginx-module	1.11.x				SunOS mordac 5.11 joyent_20160218T022556Z i86pc i386 i86pc	"nginx version: nginx/1.11.8
built by gcc 6.3.0 (GCC) 
built with OpenSSL 1.1.0c  10 Nov 2016
TLS SNI support enabled
configure arguments: --prefix=/usr/local --conf-path=/usr/local/etc/nginx --with-ipv6 --with-http_ssl_module --with-http_realip_module --with-select_module --with-poll_module --with-http_stub_status_module --with-http_gzip_static_module --without-http_scgi_module --without-http_uwsgi_module --with-cc-opt='-I/usr/local/include -I/usr/local/ssl/include -DNGINX_DTRACE=1' --with-ld-opt='-L /usr/local/lib -L /usr/local/ssl/lib' --error-log-path=/tmp/nginx_error.log --with-http_v2_module --with-http_auth_request_module --with-stream
"
