Есть ли разница в строчных и заглавных буквах в headers http
Есть ли разница в строчных и заглавных буквах в headers http?
Например два заголовка:
test: 123
Test: 123
Они будут считаться одинаковыми или разными?
Ответы (1 шт):
Зависит от того в каком языке и как их получать.
Для примера: язык PHP. Если эти данные брать из переменной $_SERVER
, то там все эти заголовки будут в виде:
HTTP_НАИМЕНОВАНИЕ_ЗАГОЛОВКА
то есть с префиксом HTTP_
и далее наименование заглавными буквами с нижним подчёркиванием, независимо от того как будет написано. Т.е.
test -> HTTP_TEST
Testy -> HTTP_TESTY
hello_world -> HTTP_HELLO_WORLD
hi-its-me -> HTTP_HI_ITS_ME
Однако если использовать getallheaders(), то результатом будет ассоциативный массив с ключами ровно в том регистре и том наименовании, как были написаны:
Во фреймворке Yii2 вообще у каждого слова первая буква приводится к верхнему регистру. И если передаём hi-its-me
, то обращаться придётся Yii::$app->request->headers->get('Hi-Its-Me')
. И получается конфуз как раз с именем одинаковым, но в разном регистре...одно перетрёт другое ¯\_(ツ)_/¯
А заголовки с нижним подчёркиванием фреймворк вообще проигнорит и их в коллекции не будет.
Так что ответ: зависит...
Но обычно всё совпадает с переданным...