Имена заголовков не чувствительны к регистру.
Из RFC 2616 - «Протокол передачи гипертекста - HTTP / 1.1» , Раздел 4.2, «Заголовки сообщений» :
Каждое поле заголовка состоит из имени, за которым следует двоеточие (":") и значение поля. Имена полей нечувствительны к регистру.
blockquote>Обновление RFC 7230 не содержит никаких изменений из RFC 2616 в этой части.
Простой ответ: это ограничение CLR.
(Я нигде не встречал хорошего, конкретного объяснения этому ... Я не помню, чтобы видел одно в серии блогов Эрика об этом, хотя, возможно, я его где-то пропустил).
Я хотел бы сказать, что и делегаты, и интерфейсы уже образуют «уровни косвенности» над реальными типами; взгляды на методы или классы, если хотите. Переход от одной точки зрения к другой вполне оправдан. Фактический класс мне кажется более конкретным, и переход от одного конкретного представления к другому кажется менее разумным. Это скорее болезненное объяснение, чем настоящее техническое ограничение.
Вы захотите прочитать сообщение Эрика Липперта о том, почему это работает именно так. Суть в том, что они допускали как можно большую вариативность, не позволяя разработчикам совершать серьезные ошибки в программировании, которые могли вызвать трудности с отслеживанием ошибок. Величина отклонений в 4.0 значительно расширена по сравнению с правилами 3.0, и, насколько я понимаю, это был баланс между тем, что полезно для разработчика, и тем, что можно допустить, не вызывая слишком сильной головной боли из-за непреднамеренных ошибок.
http://blogs.msdn.com/b/ericlippert/archive/tags/covariance+and+contravariance/default.aspx
Это ограничение CLR. Дополнительный комментарий см. в Почему C# (4.0) не допускает ко- и контравариантность в общих типах классов?.