HTTP Header casing is modified
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 11.5k
- Forks
- 1.4k
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 53
Description
## Bug Report
### What is the issue?
When doing an HTTP call to my service, the headers of my HTTP requests are modified. All header keys are changed to lower case.
Even though the HTTP standard says that headers are not case sensitive, this can be implemented differently in some servers. Using linkerd makes it impossible to integrate with these services which depend on proper header key casing.
### How can it be reproduced?
Deploy two applications with linkerd proxies enabled. Application A is calling application B with an HTTP request which contains headers which have upper case fields. When inspecting the incoming request in application B, you will see that all header keys are lower cased now.
When calling Application B directly without passing through the linkerd proxy the logs still show the original headers.
### Environment
- Kubernetes Version: v1.15.7
- Cluster Environment: Dedicated Setup
- Host OS: Core OS
- Linkerd version: 2.6.1
### Possible solution
* an additional annotation would be feasible for us to deactivate the lower-casing
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or code entry points are named. Start by reproducing the request through two Linkerd-enabled Kubernetes applications using mixed-case headers, then trace where the proxy normalizes them. Done means establishing whether preserving header casing is feasible and adding coverage for the chosen behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kubernetes
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100