Accept-Language Reduction vise à réduire le fingerprinting passif
en réduisant ses préférences linguistiques
Accept-Language
et n'en envoyant que la langue préférée de l'utilisateur (une seule).
À partir de Chrome 109
bêta, nous allons ouvrir
la phase d'évaluation
pour accepter la réduction de la langue, ce qui permet aux sites de bénéficier de la réduction
Accept-Language
. Cela permettra aux sites d'identifier et de résoudre les problèmes
avant que le Accept-Language
réduit ne devienne le comportement par défaut dans Chrome dans une
version ultérieure. Pour tester la fonctionnalité avant son lancement en vue d'un déploiement stable,
assurez-vous d'activer Chrome 109 et de le tester avant sa date de sortie (actuellement
prévue pour le 10 janvier 2023).
Découvrez les exemples d'en-tête Accept-Language
avant et après la réduction ci-dessous.
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
Accept-Language: en-GB
Vous trouverez ci-dessous une présentation de la phase d'évaluation et de ce qui vous attend. Vous pouvez partager vos vos commentaires sur ce changement ou tout problème rencontré lors de la phase d'évaluation le dépôt GitHub Accept-Language Reduction un dépôt de clés.
Qu'est-ce que Accept-Language ?
La Accept-Language est partagée avec chaque requête HTTP et exposée, en JavaScript, à tous chargées par le navigateur. Actuellement, il contient tous les éléments langues préférées.
Pourquoi le paramètre Accept-Language va-t-il être réduit ?
Accept-Language Reduction vise à réduire le fingerprinting passif surfaces dans Chrome.
Actuellement, l'en-tête Accept-Language
est partagé par défaut sur chaque
et exposée en JavaScript à toutes les ressources chargées par le navigateur. Il
contient toutes les préférences linguistiques de l'utilisateur. Plutôt que le navigateur qui envoie
la liste complète des langues configurées par l'utilisateur au cas où les sites voudraient
proposent des contenus multilingues, nous introduisons un nouveau moyen pour les sites d'indiquer
du contenu multilingue. Le navigateur est alors responsable de la traduction
négocier et afficher la langue préférée.
Autre raison : de nombreux sites n'utilisent pas les en-têtes Accept-Language
pour la négociation linguistique (par exemple, une
étude indique que seulement 7,2% des
les 10 000 principaux sites utilisent Accept-Language
). Le mode navigation privée de Chrome a déjà réduit
Accept-Language
à un.
Quel impact pour les développeurs Web ?
Les sites qui s'appuient sur Accept-Language
pour négocier des langues doivent
préparez-vous à bénéficier d'un Accept-Language
réduit et envisagez de participer au
la phase d'évaluation. Les valeurs Accept-Language
réduites apparaîtront dans:
- L'en-tête de requête HTTP
Accept-Language
. - Getter JavaScript
navigator.languages
.
Le navigateur est chargé de la négociation des langues
la langue préférée de l'utilisateur
pour envoyer vers les sites. Pour ce faire, les sites doivent
ajouter deux en-têtes
Variants
(un nouvel en-tête indique les sites proposant des langues) Accept-Language
et
Content-Language
dans
en-tête de réponse (voir l'exemple détaillé ci-dessous).
Les forfaits Accept-Language
réduits n'incluent actuellement pas iOS ni WebView, et
ces plates-formes continueront d'obtenir Liste complète des Accept-Language
.
La prise en charge de ces plates-formes est prévue pour une date ultérieure.
Phase d'évaluation pour la réduction de la langue acceptée
Lors d'une phase d'évaluation, le site participant doit fournir un jeton dans son
qui indique au navigateur d'activer l'essai spécifié. Toutefois,
Cela signifie que, lors de la requête initiale
du navigateur adressée au site, il n'a aucun moyen de savoir
si le site participe à une phase d'évaluation. Cela signifie que le premier
requête dans une session n'enverra pas la Accept-Language header
réduite.
Les requêtes de sous-ressources de cette page (de même origine et multi-origines)
reçoivent l'en-tête Accept-Language
réduit. Navigations suivantes de même origine
recevra également l'en-tête Accept-Language
réduit. Navigations multi-origines
retourne à l'envoi de l'en-tête complet, tandis que les requêtes multi-origines dans le
(par exemple, les demandes iFrame tierces) continueront à envoyer le Accept-Language
réduit
si la requête de frame de niveau supérieur possède un jeton d'évaluation valide.
Cette phase est semblable à celle de la phase d'évaluation de la réduction user-agent. Pour en savoir plus sur l'implémentation interne de Chromium, consultez Implémenter l'en-tête HTTP Reduce Accept-Language.
Participer à la phase d'évaluation de la réduction de la langue acceptée
Pour en savoir plus, consultez Premiers pas avec les phases d'évaluation de Chrome mais les étapes essentielles sont indiquées ci-dessous.
Étape 1
Pour vous inscrire à la phase d'évaluation et obtenir un jeton pour vos domaines, procédez comme suit : consultez le Essai pour réduire le nombre de langues acceptées .
Étape 2
Mettez à jour vos en-têtes de réponse HTTP:
- Ajouter
Origin-Trial: <ORIGIN TRIAL TOKEN>
à votre réponse HTTP en-tête, où <ORIGIN TRIAL TOKEN
> contient le jeton que vous avez obtenu lorsque à la phase d'évaluation. - Ajoutez
Content-Language
à votre en-tête de réponse HTTP pour indiquer Les langues qui s'adressent à l'audience - Ajoutez
Variants
à votre en-tête de réponse HTTP pour indiquer les sites langues prises en charge. - [Facultatif] Ajouter
Vary: Accept-Language
à votre réponse HTTP afin de créer une clé de cache pour la négociation de contenu. - Définir ces en-têtes ne déclenchera que la langue du navigateur négociation (reprise potentielle de la demande initiale) pour le origine. Pour que les sites affichent la bonne représentation de la langue pour les utilisateurs, vous devez aussi mettre à jour les sites qui envoient le contenu en fonction l'en-tête Accept-Language de l'utilisateur (voir l'exemple ci-dessous).
Étape 3
Chargez votre site Web dans Chrome M109 bêta (ou version ultérieure) et commencez à recevoir les une chaîne Accept-Language réduite.
Envoyez vos problèmes ou commentaires à l'outil Accept-Language Reduction GitHub un dépôt de clés.
Démo
Pour une démonstration d'un site multilingue activé pour la phase d'évaluation (ainsi que le code source), consultez https://reduce-accept-language.glitch.me/.
Pour une démonstration des activations et désactivations de la phase d'évaluation (avec les code source) consultez https://reduce-accept-language-ot.glitch.me/.
Par exemple, example.com
accepte ja
(japonais) et en
(anglais). A
peut être:
GET / HTTP/1.1
Host: example.com
Accept-Language: en
Le site sait que l'internaute préfère le contenu en anglais en se basant sur ses "accepte-language". Les en-têtes de réponse peuvent inclure les éléments suivants:
HTTP/1.1 200 OK
Content-Language: en
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token
Si l'utilisateur a une préférence pour le contenu en japonais, la demande est la suivante:
GET / HTTP/1.1
Host: example.com
Accept-Language: ja
Dans le cas présent, le site répond avec des en-têtes pour le contenu japonais:
HTTP/1.1 200 OK
Content-Language: ja
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token
Côté serveur, le site recherche peut-être une assistance linguistique spécifique, retour à la valeur par défaut si aucune compatibilité n'est détectée:
if(accept_language == 'ja') {
res.response('ja_page')
}
else {
res.response('en_page')
}
Dans l'exemple ci-dessus, example.com
répond en
ou ja
en fonction du
Valeur Accept-Language
, définie par défaut sur en
si aucune ne correspond. Dans ce cas,
le site peut également fournir des redirections vers les pages linguistiques correspondantes (/en
ou
/ja
en fonction de la valeur Accept-Language
. Consultez des exemples détaillés pour
Redirections activées
le document sur l'implémentation.
Compatibilité avec les phases d'évaluation tierces
Pour le moment, nous ne prenons pas en charge l'enregistrement de vos domaines en tant que
tiers pour l'essai.
Si vous exploitez un service implémenté en tant que sous-ressource pour toutes les origines
(diffusion d'annonces ou analyse d'audience, par exemple), vous ne bénéficierez que de la
En-tête Accept-Language
si le site de premier niveau participe à l'origine
essai sans frais.
Vérifier le bon fonctionnement de la phase d'évaluation
Le guide de résoudre les problèmes liés aux phases d'évaluation de Chrome fournit une checklist complète pour vous assurer que votre jeton est correctement configuré.
Vous configurez plusieurs langages et leur priorité
chrome://settings/languages
ou Paramètres → Langues. Envisagez de sélectionner
langue que votre site n'est pas compatible et la placer en haut de la liste
pour s'assurer que la renégociation
supplémentaire est déclenchée.
Les en-têtes de la réponse initiale contenant le jeton d'évaluation d'origine doivent ressembler par exemple:

Les en-têtes de requête suivants contenant la valeur Accept-Language réduite se présentent comme suit:

Arrêter de participer à la phase d'évaluation
Vous pouvez arrêter de participer à l'essai à tout moment et pour recevoir la liste complète des paramètres Accept-Language de l'utilisateur. Pour ne plus participer:
- Supprimez l'en-tête
Origin-Trial
pour accepter la réduction de la langue. à partir de votre réponse HTTP. - [Facultatif] Supprimez l'en-tête
Variants
qui a été ajouté pour activer la dans votre réponse HTTP si vous ne souhaitez pas envoyer cet en-tête. Vous pouvez également utiliserVariants
avec une valeur vide pour obtenir cette étape. - [Facultatif] Supprimez l'en-tête
Content-Language
qui a été ajouté à activez la phase d'évaluation dans votre réponse HTTP si vous n'êtes pas intéressé l'envoi de cet en-tête.
Durée de la phase d'évaluation
La phase d'évaluation de la réduction de la langue d'acceptation durera au moins six mois, ce qui correspond à environ six étapes majeures de Chrome. La phase d'évaluation s'affiche M109 et se termine par M114 (il s'agit de la dernière version de Chrome bénéficiant disponibles). À ce stade, Chrome évaluera les commentaires provenant de l'origine essai avant d'envoyer la chaîne Accept-Language réduite dans un par étapes: commencez par réduire l'en-tête HTTP Accept-Language, puis réduisez interface JS. Si un site a besoin de plus de temps pour le tester, il peut activer un autre qui leur permettrait d'accéder à toutes les fonctionnalités la chaîne Accept-Language pendant au moins six autres mois. Nous en publierons davantage plus de détails sur l'évaluation avant arrêt lorsqu'elle sera prête.
Envoyer des commentaires
Envoyez vos problèmes ou commentaires à l'outil Accept-Language Reduction GitHub un dépôt de clés.