Are “hTTp/1.0” and “htTP/1.1” case-sensitive?
-
22-06-2021 - |
Question
In 2002, Roy Fielding states that HTTP version should be case-sensitive in an RFC errata:
Personally, I never had any intention that the "HTTP" be case-insensitive, and I am not aware of any clients that send it lowercase, nor any server that would accept it as lowercase. Doing so is a waste of cycles. So, I'd like that paragraph above to say:
The version of an HTTP message is indicated by an HTTP-Version field in the first line of the message. HTTP-Version is case-sensitive.
However, RFC 2616 doesn't seem to be updated with his proposal.
So, are HTTP versions case-sensitive?
In other words, can a HTTP client/server send the HTTP version as hTtP/1.1
and still claim to be RFC-compliant?
Solution 2
Adding on to Julian's answer two years ago, RFC 7230 (which replaces 2616) now explicitly states that HTTP-Version is case-sensitive:
A.2. Changes from RFC 2616
.........
The HTTP-version ABNF production has been clarified to be case-sensitive. Additionally, version numbers have been restricted to single digits, due to the fact that implementations are known to handle multi-digit version numbers incorrectly. (Section 2.6)
And Section 2.6. Protocol Versioning:
The version of an HTTP message is indicated by an HTTP-version field in the first line of the message. HTTP-version is case-sensitive.
HTTP-version = HTTP-name "/"
DIGIT
"." DIGIT
HTTP-name = %x48.54.54.50 ; "HTTP", case-sensitive
OTHER TIPS
The answer is here: http://tools.ietf.org/wg/httpbis/trac/ticket/1. And yes, RFC 2616 is being updated.