Ответ 1
Префикс HTTP_ используется некоторыми языками, такими как PHP, просто для того, чтобы отличать заголовки HTTP от других переменных сервера:
$_SERVER['HTTP_X_FORWARDED_FOR']
Имя заголовка HTTP фактически
X-Forwarded-For
Само имя заголовка не зависит от регистра. Однако, когда вы хотите запросить заголовок запроса, языки программирования в основном чувствительны к регистру (опять же, PHP является одним из них).
X- указывает, что заголовок Forwarded-For нестандартен. Я не думаю, что существует разница, использует ли язык тире или символы подчеркивания для обозначения имен заголовков.
По сути, они все те же заголовок, которые по-разному называются различными реализациями.