Skip to content

Conversation

@sassembla
Copy link

some server returns handshake headers with case-insensitive rule.

according to HTTP1.1(https://tools.ietf.org/html/rfc2616#section-2.1),
,

"literal"
Quotation marks surround literal text. Unless stated otherwise,
the text is case-insensitive.

also in RFC of WS(https://tools.ietf.org/html/rfc6455#section-4.1),

Comparing two strings in an ASCII case-insensitive manner means
comparing them exactly, code point for code point, except that the
characters in the range U+0041 to U+005A (i.e., LATIN CAPITAL LETTER
A to LATIN CAPITAL LETTER Z) and the corresponding characters in the
range U+0061 to U+007A (i.e., LATIN SMALL LETTER A to LATIN SMALL
LETTER Z) are considered to also match.

some server returns handshake headers with case-insensitive rule.

according to HTTP1.1(https://tools.ietf.org/html/rfc2616#section-2.1),
,

"literal"
      Quotation marks surround literal text. Unless stated otherwise,
      the text is case-insensitive.

also in RFC of WS(https://tools.ietf.org/html/rfc6455#section-4.1),

Comparing two strings in an _ASCII case-insensitive_ manner means
   comparing them exactly, code point for code point, except that the
   characters in the range U+0041 to U+005A (i.e., LATIN CAPITAL LETTER
   A to LATIN CAPITAL LETTER Z) and the corresponding characters in the
   range U+0061 to U+007A (i.e., LATIN SMALL LETTER A to LATIN SMALL
   LETTER Z) are considered to also match.
@eslindsey
Copy link

eslindsey commented May 10, 2017

Is the compiler always cognizant of the fact that ("Sec-WebSocket-Extensions").ToLower() is constant, regardless of locale and optimization settings? If not, then this should be hard-coded as "sec-websocket-extensions" etc.

Perhaps a better way to implement the change you describe would be to use the mechanisms already built in to the NameValueCollection. In fact, from the documentation:

The comparer determines whether two keys are equal. The default comparer is the CaseInsensitiveComparer.

Did you run into a problem with the comparison being case-sensitive? From a brief look at the code, it seems to me it would be case-insensitive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants