Ответ 1
В RFC для URI говорится:
6.2.2.1. Нормализация случая
Когда URI использует компоненты общего синтаксиса, всегда применяются правила эквивалентности синтаксиса компонентов; а именно, что схема и хост не чувствительны к регистру и поэтому должны быть нормализованы к строчным. Например, URI эквивалентен http://www.example.com/.
Предполагается, что другие компоненты общего синтаксиса чувствительны к регистру, если в схеме не указано иное (см. раздел 6.2.3).
Обратите внимание, что схема (здесь "http"), host (имя сервера) нечувствительны к регистру, но в любом случае должны быть строчными. Остальное зависит от регистра, если вы не используете другую схему, которая явно говорит, что она должна быть нечувствительной.
Таким образом, ключ и KEY - это разные вещи во всех основанных на http URI в соответствии со спецификацией.
Редактировать: @Nicholas отчасти ошибается, полагая, что орган определяет, что он принимает, что верно для пользовательских схем и органов, которые определяют свои собственные URI, но http - это четко определенная спецификация, которой соответствует каждый (или у вас могут быть запросы http, которые имеют, скажем, символ pipes как разделитель. Представьте себе хаос!)
спецификация RFC для HTTP гласит:
Схема и хост не чувствительны к регистру и обычно предоставляются в в нижнем регистре; все остальные компоненты сравниваются с учетом регистра манера. Символы, отличные от указанных в "зарезервированном" наборе, эквивалентно их октетам, закодированным в процентах: нормальная форма не кодировать их (см. разделы 2.1 и 2.2 [RFC3986]).
Таким образом, часть запроса URI, определяемая спецификацией для схемы HTTP, чувствительна к регистру. Если у Microsoft есть синтаксический анализатор для строк запроса без учета регистра, он не соответствует спецификации. Не то чтобы я думаю, что этот уровень пристрастия действительно имеет большое значение.