grpcurl
grpcurl copied to clipboard
Headers are lowercased
Hi,
I try to provide header with -H "isDebug: true" but header name is lowercased with headerName := strings.ToLower(strings.TrimSpace(pieces[0])) during MetadataFromHeaders
Any reason for this behavior?
@PavelA85, metadata keys in gRPC (and in HTTP headers) are case-insensitive. In HTTP/2, they are always transmitted in lower-case. This lower-casing is done because the keys in a metadata.MD map must always be lower-case. Since this code is directly creating the map (instead of using methods on the metadata.MD type), it must make sure they are correctly canonicalized. Also see the relevant grpc-go docs.