В чем разница между IP-адресом HTTP-клиента и перенаправленным HTTP X?


Я понимаю, что заголовок HTTP_X_FORWARDED_FOR устанавливается прокси-серверами для идентификации ip-адреса хоста, который делает HTTP-запрос через прокси. Я слышал утверждения, что заголовок HTTP_CLIENT_IP устанавливается для аналогичных целей.

  1. в чем разница между HTTP_CLIENT_IP и HTTP_X_FORWARDED_FOR?
  2. почему один имеет другие значения, чем другой?
  3. где я могу найти ресурсы по точному определению этих заголовков.
1 51

1 ответ:

ни один из этих заголовков официально стандартизированы. Таким образом:

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

кажется какой-то де-факто стандарт о X-Forwarded-For: заголовок, но учитывая, что нет RFC, который определяет его, на это нельзя полагаться см. комментарии под.

в качестве примечания,Client-IP: заголовок должен по соглашению быть X-Client-IP: поскольку это пользовательский заголовок.