Заголовки HTTP: В чем разница между X-FORWARDED-FOR, X_FORWARDED_FOR и HTTP_X_FORWARDED_FOR?

Я вижу различные варианты написания HTTP-заголовка, отличного от RFC "XFF", используемого для идентификации IP-адресов, с которыми был отправлен запрос. Есть ли разница между этими разными именами заголовков: X-FORWARDED-FOR, X_FORWARDED_FOR и HTTP_X_FORWARDED_FOR? Нужно ли искать все три?

PS - Да, я знаю, что этот заголовок можно легко подделать:)

Ответ 1

Префикс HTTP_ используется некоторыми языками, такими как PHP, просто для того, чтобы отличать заголовки HTTP от других переменных сервера:

$_SERVER['HTTP_X_FORWARDED_FOR']

Имя заголовка HTTP фактически

X-Forwarded-For

Само имя заголовка не зависит от регистра. Однако, когда вы хотите запросить заголовок запроса, языки программирования в основном чувствительны к регистру (опять же, PHP является одним из них).

X- указывает, что заголовок Forwarded-For нестандартен. Я не думаю, что существует разница, использует ли язык тире или символы подчеркивания для обозначения имен заголовков.

По сути, они все те же заголовок, которые по-разному называются различными реализациями.