- From: Willy Tarreau <w@1wt.eu>
- Date: Mon, 7 Feb 2022 07:10:11 +0100
- To: Martin Thomson <mt@lowentropy.net>, Christopher Wood <caw@heapingbits.net>
- Cc: Mark Nottingham <mnot@mnot.net>, HTTP Working Group <ietf-http-wg@w3.org>, Tommy Pauly <tpauly@apple.com>
On Fri, Feb 04, 2022 at 01:25:49PM +1100, Mark Nottingham wrote: > This message begins Working Group Last Call for draft-ietf-httpbis-binary-message-01, 'Binary Representation of HTTP Messages'. > > https://datatracker.ietf.org/doc/draft-ietf-httpbis-binary-message/ I'm having three other comments: - I don't see any way to advertise input truncation. I.e. a sender sends indeterminate-length data (i.e. HTTP/1.1 chunks or H2 DATA), and the connection or stream is suddenly shut. The only way I'm seeing to indicate this here is by putting a zero-sized chunk, which will not reflect what really happened (i.e. shutdown before zero chunk normally indicates a truncated message and it's important not to process it or cache it). The same issue exists with known-length content, where it seems impossible to feed data in multiple parts as they arrive without switching to indeterminate-length which seems to semantically represent chunks (hence will probably implicitly cause content-length to be ignored). - I think it would be useful to be able to advertise a partial message, for example for remote analysis, or if we'd want a server to transfer some of its in-progress processing to another one. Maybe that would be done using byte-range, I don't know. But at least it ought to be suggested so that the solutions adopted remain clean and interoperable. - depending on the targetted use cases, being able to also pass the HTTP version could make sense. For example, indicating and an incoming message comes from an HTTP/1.0 client tells the recipient that certain features cannot be used. Also for logging it can be useful. Wouldn't it be the right moment to register the ":version" pseudo-header field that was not needed for H2 ? Willy
Received on Monday, 7 February 2022 06:10:30 UTC