Ответ 1
Ни один из этих заголовков официально не стандартизирован. Поэтому:
-
What is the difference between HTTP_CLIENT_IP and HTTP_X_FORWARDED_FOR?
- нельзя сказать. Различные прокси-серверы могут реализовать эти или не могут. Реализации могут отличаться от одного прокси-сервера к другому, и они могут и не быть. Отсутствие стандартных вопросительных знаков. -
Why would one have different values than the other?
- См. пункт 1. Однако, с чисто практической точки зрения, единственная причина, по которой я могу видеть, что они имеют разные значения, - это то, что было задействовано более одного прокси - заголовокX-Forwarded-For:
может содержать полный трек цепочки переадресации, тогда как заголовокClient-IP:
будет содержать фактический IP-адрес клиента. Однако это чистая спекуляция. -
Where can I find resources on the exact definition of these headers.
- Вы не можете. См. Пункт 1.
Кажется, что какой-то де-факто стандарт в отношении заголовка X-Forwarded-For:
, но , если отсутствует RFC, который определяет его нельзя полагаться на, см. комментарий ниже.
В качестве побочного примечания заголовок Client-IP:
должен быть условным, X-Client-IP:
, поскольку он является "определяемым пользователем" заголовком.