New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Converting HTTP header name to lower case #80
Comments
Hello, @asramakanth . Thank you for your message. As per HTTP standard, header names are case-insensitive. That means, with Eventlet or any other software, you could receive any of "etag", "ETAG" or "eTAg" and they all MUST work the same way.
Consider there may be other users who also ignore HTTP standard and expect current header name case, "Etag". Suppose we fix the issue in your favor, then it would break some other code. Clean solution is to ignore header name case. Usually people do this by converting all header names to lower case ("etag") and searching for those strings. |
Upon receiving more input from Swift team, namely
|
Setting this to False provides compatibility with broken clients which expect response header names in particular case, such as ETag by AWS Java SDK. #80
Setting this to False provides compatibility with broken clients which expect response header names in particular case, such as ETag by AWS Java SDK. #80
Setting this to False provides compatibility with broken clients which expect response header names in particular case, such as ETag by AWS Java SDK. #80
Swift team has responded that the fix works for them. The fix is merged into master e4dedf7 |
Eventlet is converting the standard HTTP header name 'ETag' to 'Etag' with a lower case. This breaks other libraries/projects that use Eventlet.
http://en.wikipedia.org/wiki/HTTP_ETag
This is caused from a problem of eventlet which is a WSGI library of python.
Eventlet always converts the key (name) of HTTP headers into the formats like as 'Etag' with the rules as follows:
Converting the first character of the key into a upper case letter
Converting the first characters leading to '-' into a upper case letters
Converting all other characters into lower case letters
i.e. currently, we have no way to prevent that eventlet converts "ETag" into "Etag".
Does anyone have good idea for solving it?
The text was updated successfully, but these errors were encountered: