Ответ 1
Нет "полной спецификации" - это стандарт де-факто. X-
перед именем заголовка обычно * обозначил его как экспериментальный/нестандартный/специфичный для вендора. Как только он станет стандартной частью HTTP, он потеряет префикс.
Есть некоторые работы из IETF по его стандартизации, но это только на этапах проекта, насколько я могу судить. Проверьте http://tools.ietf.org/html/draft-ietf-appsawg-http-forwarded-10 для последнего черновика на момент написания этой статьи. Но имейте в виду, что он может измениться в любое время, пока он будет создан, и не полагайтесь на него в производстве.
Update:
RFC 7239 теперь определяет заголовок Forwarded:
, который предназначен для замены X-Forwarded-*
. Если вы заботитесь о стандартах, я бы рекомендовал использовать их вместо этого.
* Раньше это была официальная вещь, но ее больше не было. RFC 6648 отменяет соглашение о префиксах X-
. К сожалению, конвенция настолько широко известна (и такая сдержанная сдержанность), что большинство людей, не входящих в IETF, вероятно, игнорируют эту рекомендацию.