Referer
Utilisation
L’en-tête Referer est envoyé par les clients (navigateurs, bibliothèques HTTP) pour indiquer l’URL de la page ou de la ressource qui pointe vers la ressource demandée. Lorsqu’un utilisateur clique sur un lien présent sur https://example.re/page, le navigateur transmet l’adresse de la page contenant le lien dans l’en-tête Referer de la requête suivante.
Remarque
Le nom d’en-tête « Referer » est une faute d’orthographe historique du mot anglais « referrer ». La spécification HTTP d’origine a introduit cette coquille, et corriger l’orthographe aujourd’hui casserait les implémentations existantes. La forme fautive demeure le nom officiel de l’en-tête.
Cet en-tête sert à plusieurs fins. Les systèmes d’analytique s’appuient sur le référent pour suivre les sources de trafic. Les serveurs en exploitent la valeur pour la journalisation et le contrôle d’accès. Les moteurs de recherche ont historiquement utilisé les données de référent pour comprendre les relations de lien entre les pages.
L’en-tête de réponse Referrer-Policy détermine la quantité d’informations contenue dans l’en-tête Referer. Les politiques vont de l’envoi de l’URL complète (unsafe-url) à l’envoi de la seule origine (origin), jusqu’à l’omission totale de l’en-tête (no-referrer). La plupart des navigateurs appliquent par défaut strict-origin-when-cross-origin, qui envoie l’URL complète pour les requêtes de même origine et seulement l’origine pour les requêtes cross-origin.
L’en-tête Referer n’est pas envoyé lors d’une requête allant d’une page HTTPS vers une page HTTP (un déclassement) sous la politique par défaut. Les identificateurs de fragment et les identifiants d’authentification ne sont jamais inclus dans la valeur.
URL absolue
L’URL complète, comprenant le schéma, l’hôte, le chemin et la chaîne de requête. Les requêtes de même origine incluent généralement l’URL complète.
Referer: https://example.re/articles/http-headers?page=2
Origine seule
Le schéma et l’hôte, sans chemin ni chaîne de requête. C’est la forme envoyée pour les requêtes cross-origin sous la politique par défaut des navigateurs.
Referer: https://example.re/
Vide ou absent
L’en-tête est entièrement omis lorsque la Referrer-Policy est réglée sur no-referrer, lorsque la requête provient d’une URL mise en favori, lorsque l’utilisateur saisit directement une URL dans la barre d’adresse, ou lors d’un déclassement HTTPS vers HTTP sous la politique par défaut.
Exemple
Un navigateur qui suit un lien depuis une page de résultats de recherche envoie l’URL de recherche comme référent. Le serveur qui reçoit la requête voit d’où vient le visiteur.
Referer: https://search.example.re/results?q=http+headers
Une requête cross-origin émise depuis une page sécurisée n’envoie que la partie origine sous la politique par défaut strict-origin-when-cross-origin.
Referer: https://example.re/
Une ressource chargée sur la même origine inclut le chemin complet et la chaîne de requête dans la valeur du référent.
Referer: https://example.re/docs/guide?section=headers