Spdy - Double Status header

Matthieu Tourne matthieu.tourne at gmail.com
Wed Jun 20 01:12:12 UTC 2012


I think, I've found an interesting corner case with the recent Nginx
SPDY support.
I'm using the latest : http://nginx.org/patches/spdy/patch.spdy-37.txt

I connect to Nginx using SPDY, and then proxy_pass to another server,
with a location similar to this :

    location /redirect {
        add_header 'Status' '301 Moved Permanently';
        rewrite (.*) / permanent;

This causes Nginx to return 2 Spdy ":status" headers, which I guess is
disallowed by the protocol.

This is the output from spdycat (https://github.com/tatsuhiro-t/spdylay/)
Chrome reports a similar error.

[  0.141] [INVALID; status=PROTOCOL_ERROR] recv SYN_REPLY frame
<version=2, flags=0, length=227>
    status: 301
    status: 301 Moved Permanently

Note that this can be fixed using configuration to hide any potential
"Status" header returned by the second server, before the Spdy
response is generated.
But the code should probably handle this ?


More information about the nginx-devel mailing list