Hello, I'm the maintainer of an HTTP client/server covering HTTP/1 & 2.
I've been asked to change some of the internal checks (errors) when trailers are given which didn't exist in the `trailer` header.
Looking at the RFCs, I'm trying to figure out if this is a reasonable interpretation of the HTTP semantics.
HTTP/1 says "SHOULD" have `te: trailers` in the client to server request headers, `trailer: name1, name2, ... nameN` in the response headers and `name1, name2, ... nameN` after a chunked body.
I don't see as much detail in the relevant RFCs for HTTP/2, so maybe that means it's not needed. But it seems like that's the correct semantics for HTTP, at least for HTTP/2, `te: trailers` can be assumed since it's always supported, but `trailer: name1, name2, ..., nameN` "SHOULD" still be provided in the response headers, from my interpretation of the various RFCs.
To me, that's enough of a problem that gRPC can't work within a code base which strictly follows HTTP RFCs. Of course, the HTTP/2 protocol is still the same... just the semantics of the requests and responses is a bit different.
I would really appreciate any insight you might have regarding how this should be handled as someone who wants to implement a compliant HTTP1/2 client & server interface, and whether gRPC is compliant with HTTP as a semantic rather than just HTTP/2 the protocol/framing format.
Thanks,
Samuel