Hello,
I have a case where the origin server behind nginx returns this header:
Content-Type: application/javascript; charset: UTF-8
Which seems to be valid according for HTTP/1.0 [1] and HTTP/1.1 [2]
rfcs.
I have gzip_types set to application/javascript, but the added charset
part seems to throw off ngx_http_test_content_type()
This simple patch included below seems to fix it, but it’s not exactly
production ready.
Is there another way to make this work ?
Thank you,
Matthieu.
[1] http://www.ietf.org/rfc/rfc1945.txt
[2] HTTP/1.1: Header Field Definitions
----------------------- PATCH -------------------------
— tmp/tmpHfGmfb-meld/src/http/ngx_http_core_module.c
+++ home/mtourne/Dev/nginx/src/http/ngx_http_core_module.c
@@ -1652,11 +1659,15 @@
hash = 0;
for (i = 0; i < len; i++) {
-
if (r->headers_out.content_type.data[i] == ';') {
-
break;
-
}
c = ngx_tolower(r->headers_out.content_type.data[i]);
hash = ngx_hash(hash, c);
lowcase[i] = c;
}
-
len = r->headers_out.content_type_len = i;
r->headers_out.content_type_hash = hash;
}
–
Matthieu T.
Hello!
On Mon, Oct 25, 2010 at 05:31:35PM -0700, Matthieu T. wrote:
Hello,
I have a case where the origin server behind nginx returns this header:
Content-Type: application/javascript; charset: UTF-8
Which seems to be valid according for HTTP/1.0 [1] and HTTP/1.1 [2] rfcs.
This doesn’t looks valid. Valid one will look like
Content-Type: application/javascript; charset=UTF-8
Parameters should be in form 'attribute “=” value, see here:
I have gzip_types set to application/javascript, but the added charset
part seems to throw off ngx_http_test_content_type()
This simple patch included below seems to fix it, but it’s not exactly
production ready.
Is there another way to make this work ?
Valid charset specifications should work as is. Other parameters
will confuse content type testing, but this isn’t believed to be
widely used.
Maxim D.
Ive seen other applications drop the quotes too maybe nginx should be
less
strict?
Hello!
On Tue, Oct 26, 2010 at 07:10:52PM +1100, SplitIce wrote:
Ive seen other applications drop the quotes too maybe nginx should be less
strict?
ENOPARSE
nginx accepts what is allowed per HTTP specs, including
quoted-string as value.
Quoting already provided links:
RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1
RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1
Maxim D.
p.s. Please do not top-post. Thank you.