I have 2 questions:
Given the following set of custom metadata added via some client SDK, Grpc-Core, Grpc-Go, grpc-dotnet
key1: foo
key1: bar
Is it required that these map to separate HTTP/2 headers?
key1: foo
key1: bar
Or is it allowable to map those metadata items to a single HTTP/2 header with a comma-separate value?
key1: foo,bar
Per the gRPC over HTTP/2 spec
https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requestsI read that as either form is acceptable. If that is true my other question is if a gRPC server receives headers in either form are they semantically the same?
------
Context
------
A grpc-dotnet client (which replaces the wrapper over Grpc.Core) turns multiple metadata items into a single HTTP/2 header and a grpc-dotnet server reads it back as a single header with a comma-separated value (as a string).
grpc-go sees multiple headers as individual metadata items, but it sees a single header with a comma-separated value as a single metadata item.
I'm trying to figure out if grpc-dotnet is doing the wrong thing here. Its doing something different but I can't say if its bad or not.