-
Notifications
You must be signed in to change notification settings - Fork 84
Closed
Description
Make operations performed by objects/structs from Headers.kt and HeadersBuilder.kt case-insensitive.
iOS change has been implemented as part of #2383.
Why is this change needed?
As it is now, it's error prone to work with Envoy headers by using non-lowercased names of the headers.
Example:
- An application starts request
1with headerAequal tofooand passes it to Envoy. - Envoy lowercases all of the headers by default (this behavior can be disabled for h1 requests)
- Application's platform level filter receives request
1witha(lowercased) header equal tofoo. - The filter's implementation is responsible for making sure that header
Ais set on all outgoing requests so itssets it on all requests. - Request 1 ends up with the following headers
["a": "foo", "A": "foo"]before the filter chain finishes executing. - When Envoy sees
aandAheaders on the request it lowercasesAand joins its value with the value ofaheader. The over-the-wire request has the following headers["a": "foo,foo"]
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels