Participer à la phase d'évaluation pour la réduction de la langue acceptée

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.

Actuel
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
Proposé
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:

  1. 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.
  2. Ajoutez Content-Language à votre en-tête de réponse HTTP pour indiquer Les langues qui s'adressent à l'audience
  3. Ajoutez Variants à votre en-tête de réponse HTTP pour indiquer les sites langues prises en charge.
  4. [Facultatif] Ajouter Vary: Accept-Language à votre réponse HTTP afin de créer une clé de cache pour la négociation de contenu.
  5. 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:

Capture d&#39;écran de l&#39;en-tête de requête avec le paramètre &quot;reduce Accept-Language&quot; :

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

En-têtes de la réponse initiale contenant le jeton d&#39;essai d&#39;origine.

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:

  1. Supprimez l'en-tête Origin-Trial pour accepter la réduction de la langue. à partir de votre réponse HTTP.
  2. [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 utiliser Variants avec une valeur vide pour obtenir cette étape.
  3. [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.