Есть ли разница в строчных и заглавных буквах в 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'). И получается конфуз как раз с именем одинаковым, но в разном регистре...одно перетрёт другое ¯\_(ツ)_/¯

А заголовки с нижним подчёркиванием фреймворк вообще проигнорит и их в коллекции не будет.



Так что ответ: зависит...


Но обычно всё совпадает с переданным...


→ Ссылка