elm / http

Make HTTP requests in Elm
https://package.elm-lang.org/packages/elm/http/latest
BSD 3-Clause "New" or "Revised" License
155 stars 46 forks source link

Headers now lowercase in Chrome 60 #31

Open sylvainf911 opened 7 years ago

sylvainf911 commented 7 years ago

With Chrome 60, I've been bitten by the fact that all headers names are now lowercase. This means doing:

Dict.get "Content-Type" response.headers

does not work reliably anymore. It seems to be a trend that will be implemented in the other browsers because of HTTP/2.

To make sure it works on all browsers, does adding a call to .toLowerCase() in Native/Http.js parseHeaders() function would be a good idea? It would certainly break applications but this is already the case with the new Chrome 60 anyway.

process-bot commented 7 years ago

Thanks for the issue! Make sure it satisfies this checklist. My human colleagues will appreciate it!

Here is what to expect next, and if anyone wants to comment, keep these things in mind.

BrianHicks commented 7 years ago

Followed the rabbit trail here, more context at https://github.com/whatwg/xhr/issues/146

To summarize:

This is an change to bring headers into alignment with the spec, which does specify that the names are byte-lowercased.

This change took place in:

Other people/projects have fixed compatibility by lowercasing headers. HTTP/2.0 headers are also lowercase, so this might improve portability across HTTP versions.