Connection: header in HTTP/2

I have been trying to figure out how the "Connection:" HTTP header
works in HTTP/2.0.

The Connection: header is strictly hop-by-hop, so we don't need to
consider version translation issues, it doesn't cross proxies.

In HTTP/1.1 the Connection: header is used for two things:  Marking
headers as hop-by-hop and managing TCP connections.

I think we should retain the ability to mark headers hop-by-hop.
I can see the benefit in being able to send headers only to the
first proxy.

Managing TCP connections is out-of-band in HTTP/2.0, so sending
"Connection: close" or "Connection: keepalive" inside a HTTP/2.0
multiplex doesn't make any sense, should not happen and I think
we should make that an explicit SHALL NOT.

The general way to do that would be to make it a stream-error in
HTTP/2.0 if Connection: tries to make a non-existent header hop-by-hop.

Thoughts ?

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.

Received on Monday, 8 September 2014 07:19:14 UTC