Re: updated http 1.1 rfcs and hop-by-hop

On 18/08/2014 8:39 p.m., Martijn Faassen wrote:
> Hi there,
> 
> No answer to my question at all so far? Perhaps it's the wrong list?
> Any feedback would be appreciated!

There is no longer an implicit list of hop-by-hop headers.

If you are sending any header your proxy needs to comply with the sender
criteria for that header. The headers pointed out by RFC2616 are all
defined with a MUST on being added to Connection: header explicitly, or
were actually having hopX-to-hopY behaviour where X and Y may have any
number of intermediary hops between them.

You are free to code a default list from the header definitions in your
application. But its just a convenience to fix incorrect input (missing
Connection: entries).

Amos

> 
> Thank you!
> 
> Martijn
> 
> 
> On Mon, Aug 11, 2014 at 4:42 PM, Martijn Faassen <faassen@startifact.com> wrote:
>> Hi there,
>>
>> [I hope this question reaches the right mailing list]
>>
>> I'm trying to find the equivalent of RFC 2616, section 13.5.1 in the
>> new specs. This section defines those header fields considered
>> hop-by-hop, i.e.:
>>
>>       - Connection
>>       - Keep-Alive
>>       - Proxy-Authenticate
>>       - Proxy-Authorization
>>       - TE
>>       - Trailers
>>       - Transfer-Encoding
>>       - Upgrade
>>
>> I need such a list in order to implement a Python WSGI-based proxy.
>> See PEP 3333:
>>
>> http://legacy.python.org/dev/peps/pep-3333/#other-http-features
>>
>>   However, because WSGI servers and applications do not communicate
>> via HTTP, what
>>   RFC 2616 calls "hop-by-hop" headers do not apply to WSGI internal
>> communications.
>>   WSGI applications must not generate any "hop-by-hop" headers [4],
>> attempt to use
>>   HTTP features that would require them to generate such headers, or
>> rely on the content
>>   of any incoming "hop-by-hop" headers in the environ dictionary. WSGI
>> servers must
>>   handle any supported inbound "hop-by-hop" headers on their own, such
>> as by decoding
>>   any inbound Transfer-Encoding, including chunked encoding if applicable.
>>
>> So, a WSGI proxy has to remove any hop-by-hop headers from the
>> response of the host it is proxying, and not pass them along. WSGI has
>> its own iterator based mechanism to support chunking, and a WSGI
>> server can then add the appropriate headers.
>>
>> In section 13.5.1 of RFC 2616 these hop-by-hop headers are specified,
>> but I can't find the equivalent in the newer RFCs.
>>
>> I do find section 6.1 in rfc7230, so I think this means that a
>> conforming server would list related headers in the Connection. But
>> what about Transfer-Encoding, for instance? A server that sends
>> "Connection: close" may not send Transfer-Encoding?
>>
>> It's certainly possible that I'm missing something. I haven't read the
>> complete specs yet. But any guidance would be appreciated.
>>
>> Regards,
>>
>> Martijn
> 

Received on Tuesday, 19 August 2014 05:38:16 UTC