]> git.kaiwu.me - nginx.git/commitdiff
SPDY: do not reject headers with empty value (ticket #396).
authorValentin Bartenev <vbart@nginx.com>
Thu, 15 Aug 2013 15:16:09 +0000 (19:16 +0400)
committerValentin Bartenev <vbart@nginx.com>
Thu, 15 Aug 2013 15:16:09 +0000 (19:16 +0400)
A quote from SPDY draft 2 specification: "The length of each name and
value must be greater than zero.  A receiver of a zero-length name or
value must send a RST_STREAM with code PROTOCOL error."

But it appears that Chrome browser allows sending requests over SPDY/2
connection using JavaScript that contain headers with empty values.

For better compatibility across SPDY clients and to be compliant with
HTTP, such headers are no longer rejected.

Also, it is worth noting that in SPDY draft 3 the statement has been
changed so that it permits empty values for headers.

src/http/ngx_http_spdy.c

index d72bc3f7c1213af60ff50b43a54346d896e7218e..8522c6d0a68036e34c349e195feccd2a11625e4d 100644 (file)
@@ -2014,10 +2014,6 @@ ngx_http_spdy_parse_header(ngx_http_request_t *r)
 
         len = ngx_spdy_frame_parse_uint16(p);
 
-        if (!len) {
-            return NGX_ERROR;
-        }
-
         /* null-terminate header name */
         *p = '\0';