- From: Willy Tarreau <w@1wt.eu>
- Date: Fri, 4 Aug 2017 06:54:18 +0200
- To: ietf-http-wg@w3.org
Hi guys, while implementing H2->H1 gateway support in haproxy, I'm facing a situation in which I'm not sure about the most interoperable solution. Let's say I'm receiving this response message from a H1 server that I need to re-encode into H2 : HTTP/1.1 200 OK\r\n Transfer-encoding: chunked\r\n Content-Type: text-html\r\n \r\n 0005\r\n Hello\r\n 0\r\n Please note that there is not any trailers yet nor is there the trailing CRLF. At this point I can emit a HEADERS frame containing : :status=200 content-type=text-html and a DATA frame of size 5 containing "Hello". But given that I have not yet seen what follows the 0\r\n, I can't yet put the ES flag on the DATA frame. So once I get the end, either I'll have to send a HEADERS frame containing the trailers, or I'll simply have to close the stream. My concern is what's the safest / most interoperable way to close the stream at this point ? Should I send an empty DATA frame of size zero with ES bit set or should I send a HEADERS frame of size zero with ES bit set ? I tend to think that DATA+ES looks cleaner (ie: can be seen as last bit of the DATA frame), but given that we're possibly expecting some trailers here, it would also make sense to consider sending an empty HEADERS frame. I'd like to avoid doing something that some clients may choke on, and I suspect that empty HEADERS may not be that good. Any enlightenment would be much appreciated :-) thanks, Willy
Received on Friday, 4 August 2017 04:54:41 UTC