Content-Type with charset

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://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

----------------------- 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:

http://tools.ietf.org/html/rfc2616#section-3.7
http://tools.ietf.org/html/rfc2616#section-3.6

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:

http://tools.ietf.org/html/rfc2616#section-3.7
http://tools.ietf.org/html/rfc2616#section-3.6

Maxim D.

p.s. Please do not top-post. Thank you.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs