aws / aws-app-mesh-roadmap

AWS App Mesh is a service mesh that you can use with your microservices to manage service to service communication
Apache License 2.0
347 stars 25 forks source link

Feature Request: Envoy should be able to preserve header casing in HTTP/1.1 #454

Open Shiva2199 opened 1 year ago

Shiva2199 commented 1 year ago

If you want to see App Mesh implement this idea, please upvote with a :+1:.

Tell us about your request We found out that a lot of failures were happening in some of our services because most of the response headers' case getting changed from the expected pascal case to lower case. For instance, the "Location" header is getting changed to "location" in appmesh environments. We want envoy to preserve the header casing

Which integration(s) is this request for? Kubernetes

Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard? What outcome are you trying to achieve, ultimately, and why is it hard/impossible to do right now? What is the impact of not having this problem solved? The more details you can provide, the better we'll be able to understand and solve the problem. We want envoy to preserve the header casing

Are you currently working around this issue? How are you currently solving this problem? We dont have any idea to solve the issue, but this issue is already fixed in community envoyproxy.

https://github.com/envoyproxy/envoy/issues/14363

Additional context Anything else we should know? found below info on envoyproxy. • https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/header_casing When handling HTTP/1.1, Envoy will normalize the header keys to be all lowercase. While this is compliant with the HTTP/1.1 spec, in practice this can result in issues when migrating existing systems that might rely on specific header casing. • https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#envoy-v3-api-field-config-core-v3-http1protocoloptions-header-key-format header_key_format (config.core.v3.Http1ProtocolOptions.HeaderKeyFormat) Describes how the keys for response headers should be formatted. By default, all header keys are lower cased.

https://github.com/envoyproxy/envoy/issues/14363 https://github.com/envoyproxy/envoy/commit/2a4d97ce66db565d191b42cdf51f4b99edf04f12 https://github.com/envoyproxy/envoy/pull/15619

Attachments If you think you might have additional information that you'd like to include via an attachment, please do - we'll take a look. (Remember to remove any personally-identifiable information.)