Qu'est-ce qu'une spécification complète de X-Forwarded-Proto
Valeurs d'en-tête HTTP?
Il n'y a pas de "spécification complète" - c'est une norme de facto. Le X-
devant un nom d'en-tête habituellement* l'a désigné comme expérimental/non standard/spécifique au fournisseur. Une fois que c'est une partie standard de HTTP, il perdra le préfixe.
Il y a du travail de l'IETF sur sa normalisation, mais ce n'est qu'au stade de projet, pour autant que je sache. Consultez http://tools.ietf.org/html/draft-ietf-appsawg-http-forwarded-1 pour la dernière version au moment de la rédaction de cet article. Mais sachez que cela peut changer à tout moment pendant qu'il est étoffé, et ne vous y fiez pas encore pour la production.
Mise à jour:
RFC 7239 définit maintenant le Forwarded:
en-tête, destiné à remplacer X-Forwarded-*
. Si vous vous souciez des normes, je recommanderais de les utiliser à la place.
* Auparavant, c'était une chose officielle, mais ce n'est plus le cas. RFC 6648 déconseille le X-
convention de préfixe. Malheureusement, la convention est si largement connue (et la dépréciation si discrète) que la plupart des personnes en dehors de l'IETF ignoreront probablement la recommandation.
Il y a enfin RFC 7239 - Forwarded HTTP Extension à partir de juin 2014. L'en-tête est défini dans la section 5.4.
Quelques exemples:
Forwarded: proto=https
Forwarded: for=1.2.3.4;proto=http
J'espère juste que cela ne prendra pas trop de temps pour être largement adopté. Un exemple de la diversité des en-têtes en raison de l'absence de norme (de ici ):
X-Forwarded-Proto: https
(norme de facto)X-Forwarded-Protocol: https
X-Forwarded-Ssl: on
X-Url-Scheme: https
Front-End-Https: on
Je ne connais pas de "spécification complète".
Le groupe de travail IETF APPSArea a récemment décidé de définir un nouveau champ d'en-tête "Forwarded" qui est censé remplacer les champs d'en-tête "X-Forwarded- *" qui vous avez mentionné.
Voir http://tools.ietf.org/html/draft-ietf-appsawg-http-forwarded pour plus de détails.