Lower case request headers (option 2) #684
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an alternative implementation to #680
Issue #, if available:
Fixes:
#347
Possibly fixes:
#654
Description of changes:
When a request comes in as an API Gateway V1 request, the request headers get passed down as-is. If we are trying to make the req object look like a Node.js HTTP request object, then it should probably include the logic to lower-case all the HTTP headers. Even though we are satisfying the shape of an HTTP object, we aren't satisfying the behavior.
https://nodejs.org/api/http.html#messageheaders
This approach leverages the underlying implementation of
http.IncomingMessage
, to capture more of the same behavior. Behavior such as lowercasing the header names, joining ones that have duplicates (only technically possible through serverless-express if they differ by case), and providingheadersDistinct
andrawHeaders
in addition to justheaders
.Checklist
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.