values - httpservletrequest getheader case insensitive
Are HTTP headers case-sensitive? (4)
did not work with PHP 5.5 serving IE11, as in the image stream was shown as text
worked, as in the image appeared as an image
Only difference is the capital 'T'.
In a blog post I use the following PHP to set the content-type of a response:
header('content-type: application/json; charset=utf-8');
I just got a comment on that post saying that
content-type needs to be capitalized,
Content-type. Is this correct? It seems to work for me with all lower-case, and I assumed the HTTP headers were case-insensitive. Or does it just work because browsers are nice?
tldr; both HTTP/1.1 and HTTP/2 headers are case-insensitive.
According to RFC 7230 (HTTP/1.1):
Each header field consists of a case-insensitive field name followed by a colon (":"), optional leading whitespace, the field value, and optional trailing whitespace.
Also, RFC 7540 (HTTP/2):
Just as in HTTP/1.x, header field names are strings of ASCII
characters that are compared in a case-insensitive fashion.
Header names are not case sensitive.
Each header field consists of a name followed by a colon (":") and the field value. Field names are case-insensitive.
The updating RFC 7230 does not list any changes from RFC 2616 at this part.
The RFC for HTTP (as cited above) dictates that the headers are case-insensitive, however you will find that with certain browsers (I'm looking at you, IE) that capitalizing each of the words tends to be best:
Location: http://.com Content-Type: text/plain
location: http://.com content-type: text/plain
This isn't "HTTP" standard, but just another one of the browser quirks, we as developers, have to think about.