Partecipare alla prova dell'origine per la riduzione della lingua Accetta

Accettare la lingua è uno sforzo per ridurre il fingerprinting passivo di Google Cloud riducendo le preferenze di lingua dell'utente nel Accept-Language e inviando solo la lingua preferita dell'utente (solo una).

A partire dalla versione Chrome 109 in versione beta, apriremo la prova dell'origine per accettare la riduzione della lingua che consente ai siti di attivare la ricezione Accept-Language. In questo modo i siti potranno rilevare e risolvere i problemi prima che il valore Accept-Language ridotto diventi il comportamento predefinito in Chrome in un nella versione futura. Per testare la funzionalità prima del lancio in una popolazione stabile, assicurati di attivare la versione 109 di Chrome 109 e di testarla prima della data di uscita (attualmente prevista per il 10 gennaio 2023).

Dai un'occhiata agli esempi dell'intestazione Accept-Language prima e dopo la riduzione riportata di seguito.

Attuale
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
Proposto
Accept-Language: en-GB

Di seguito è riportata una panoramica della prova dell'origine e di cosa aspettarti. Puoi condividere feedback su questa modifica o su eventuali problemi riscontrati durante la prova dell'origine in su GitHub per la riduzione del linguaggio Accetta un repository attendibile.

Che cos'è Accept-Language?

La Accetta-Lingua viene condivisa su ogni richiesta HTTP ed esposta in JavaScript a tutti di risorse caricate dal browser. Al momento, contiene tutti i dati dell'utente lingue preferite.

Perché viene ridotta la lingua Accept-Language?

Accettare la lingua è uno sforzo per ridurre il fingerprinting passivo piattaforme in Chrome.

Attualmente, l'intestazione Accept-Language è condivisa per impostazione predefinita su ogni HTTP ed esposti in JavaScript a tutte le risorse caricate dal browser. it contiene tutte le preferenze di lingua dell'utente. Invece che il browser invia l'elenco completo delle lingue che l'utente ha configurato nel caso in cui i siti vogliano fornire contenuti multilingue, stiamo introducendo un nuovo modo per consentire ai siti di indicare i contenuti multilingue e il browser si assumerà la responsabilità di negoziare e visualizzare la lingua preferita.

Un altro motivo è che molti siti potrebbero non utilizzare le intestazioni Accept-Language. per la negoziazione linguistica (ad esempio, una indica che solo il 7,2% del i principali 10.000 siti usano Accept-Language). La modalità di navigazione in incognito di Chrome ha già ridotto Accept-Language a uno.

Cosa cambia per gli sviluppatori web?

I siti che si affidano a Accept-Language per negoziare la lingua devono preparati a usufruire di una riduzione del numero di Accept-Language e valuta la possibilità di partecipare ai dell'origine dati. I valori di Accept-Language ridotti verranno visualizzati in:

  • L'intestazione della richiesta HTTP Accept-Language.
  • Il getter JavaScript navigator.languages.

Il browser si assumerà la responsabilità della negoziazione linguistica per selezionare il lingua preferita dell'utente per l'invio ai siti. A questo scopo, i siti devono aggiungi due intestazioni Variants (una nuova intestazione indica i siti che supportano le lingue) Accept-Language e Content-Language nel intestazione della risposta (vedi l'esempio dettagliato di seguito).

I piani Accept-Language ridotti al momento non includono iOS e WebView e queste piattaforme continueranno a ottenere elenco completo di Accept-Language. Il supporto di queste piattaforme è previsto per una data futura.

Prova dell'origine per la riduzione della lingua accettata

Una prova dell'origine richiede che il sito partecipante fornisca un token nella propria che indica al browser di abilitare la prova specificata. Tuttavia, questo significa che nella richiesta iniziale del browser al sito non ha modo di sapere se il sito sta partecipando a una prova dell'origine. Ciò significa che il modello in una sessione non invierà il Accept-Language header ridotto. Le richieste di sottorisorse in quella pagina, sia della stessa origine che multiorigine, riceveranno l'intestazione Accept-Language ridotta. navigazioni successive della stessa origine riceverà anche l'intestazione Accept-Language ridotta. Navigazioni multiorigine tornerà all'invio dell'intestazione completa, mentre le richieste multiorigine all'interno (come le richieste iframe di terze parti) continueranno a inviare la Accept-Language se la richiesta di frame di primo livello ha un token di prova dell'origine valido.

Si tratta di una procedura simile alla prova dell'origine della riduzione dello user agent. Se vuoi Per ulteriori informazioni sull'implementazione interna di Chromium, puoi consultare Implementazione dell'intestazione HTTP Reduce Accept-Language

Partecipare alla prova dell'origine della riduzione della lingua Accept-Language

Puoi leggere ulteriori indicazioni in Guida introduttiva alle prove dell'origine di Chrome. ma i passaggi fondamentali sono riportati di seguito.

Passaggio 1

Per registrarti alla prova dell'origine e ricevere un token per i tuoi domini, visita il Prova per la riduzione della lingua accettata .

Passaggio 2

Aggiorna le intestazioni delle risposte HTTP:

  1. Aggiungi Origin-Trial: <ORIGIN TRIAL TOKEN> alla tua risposta HTTP in cui <ORIGIN TRIAL TOKEN> contiene il token che hai ricevuto la registrazione alla prova dell'origine.
  2. Aggiungi Content-Language all'intestazione della risposta HTTP per indicare la lingua o le lingue destinate al pubblico.
  3. Aggiungi Variants all'intestazione della risposta HTTP per indicare i siti lingue supportate.
  4. [Facoltativo] Aggiungi Vary: Accept-Language alla risposta HTTP per creare una chiave cache per la negoziazione dei contenuti.
  5. L'impostazione di queste intestazioni attiverà solo la lingua del browser (un potenziale riavvio per la richiesta iniziale) per il origine dati. Per fare in modo che i siti visualizzino la rappresentazione linguistica corretta per per gli utenti, devi anche aggiornare i siti che inviano i contenuti in base l'intestazione Accept-Language dell'utente (vedi l'esempio di seguito).
di Gemini Advanced.

Passaggio 3

Carica il tuo sito web in Chrome M109 Beta (o versioni successive) e inizia a ricevere i riduzione della stringa Accept-Language.

Invia eventuali problemi o feedback a GitHub per la riduzione delle lingue accettati un repository attendibile.

Demo

Per una dimostrazione di un sito multilingue che ha accettato la prova dell'origine (insieme al codice sorgente), consulta https://reduce-accept-language.glitch.me/.

Per una dimostrazione dell'attivazione o della disattivazione della prova dell'origine (insieme al codice sorgente) consulta https://reduce-accept-language-ot.glitch.me/.

Ad esempio, example.com supporta ja (giapponese) e en (inglese). R può essere:

GET / HTTP/1.1
Host: example.com
Accept-Language: en

Il sito sa che l'utente preferisce i contenuti in inglese in base alle proprie accettare la lingua. Le intestazioni delle risposte possono includere:

HTTP/1.1 200 OK
Content-Language: en
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token

Se l'utente ha una preferenza per i contenuti in lingua giapponese, la richiesta sarà:

GET / HTTP/1.1
Host: example.com
Accept-Language: ja

In questo caso, il sito risponde con le intestazioni per i contenuti in giapponese:

HTTP/1.1 200 OK
Content-Language: ja
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token

Sul lato server, il sito potrebbe essere alla ricerca di supporto per lingue specifiche, per tornare a un valore predefinito se non viene rilevato alcun supporto:

if(accept_language == 'ja') {
    res
.response('ja_page')
}
else {
   res
.response('en_page')
}

Nell'esempio precedente, example.com risponde en o ja in base al Valore Accept-Language, il valore predefinito è en se non corrisponde. In questo caso, il sito può anche fornire reindirizzamenti alle pagine in lingua corrispondente /en o /ja in base al valore Accept-Language. Consulta esempi dettagliati relativi a reindirizzamenti attivi su documento sull'implementazione.

Assistenza per la prova dell'origine di terze parti

Al momento non supportiamo la registrazione dei tuoi domini come di terze parti per la prova. Se gestisci un servizio implementato come risorsa secondaria tra origini (come pubblicazione di annunci o analisi), riceverai solo lo sconto Intestazione Accept-Language se il sito di primo livello partecipa all'origine Google Cloud.

Verifica che la prova dell'origine funzioni

La guida per Risolvere i problemi relativi alle prove dell'origine di Chrome fornisce un elenco di controllo completo per garantire che il token sia configurato correttamente.

Puoi configurare più lingue e la loro priorità da chrome://settings/languages o Impostazioni → Lingue. Ti consigliamo di selezionare un lingua non supportata dal tuo sito non spostarla in cima all'elenco per garantire che venga attivata l'ulteriore rinegoziazione.

Le intestazioni della risposta iniziale contenenti il token di prova dell'origine dovrebbero avere la forma come:

Uno screenshot dell&#39;intestazione della richiesta con il pulsante di riduzione Accept-Language.

Le intestazioni delle richieste successive contenenti il valore Accept-Language ridotto hanno il seguente aspetto:

Intestazioni della risposta iniziale contenenti il token di prova dell&#39;origine.

Interrompi la partecipazione alla prova dell'origine

In qualsiasi momento durante il periodo di prova, puoi interrompere la partecipazione e Riceverà l'elenco completo delle lingue accettate dell'utente. Per interrompere la partecipazione:

  1. Rimuovi l'intestazione Origin-Trial per la riduzione della lingua Accept-Language dalla tua risposta HTTP.
  2. [Facoltativo] Rimuovi l'intestazione Variants aggiunta per attivare la nella tua risposta HTTP se non ti interessa inviare questa intestazione. Puoi anche utilizzare Variants con un valore vuoto per svolgere l'attività questo.
  3. [Facoltativo] Rimuovi l'intestazione Content-Language aggiunta a attiva la prova dell'origine nella risposta HTTP se non ti interessa che invia questa intestazione.

Durata della prova dell'origine

La prova dell'origine Accept-Language Reduzione avrà una durata di almeno sei mesi, che corrisponde a circa sei obiettivi di Chrome. Verrà visualizzata la prova dell'origine la versione M109 e termina con M114 (indica l'ultima release di Chrome con la versione di prova) disponibile). A quel punto, Chrome valuterà il feedback proveniente dall'origine prima di procedere con l'invio della stringa Accept-Language ridotta in un metodo graduale: prima riduci l'intestazione HTTP Accept-Language, quindi riduci il valore JS. Se un sito ha bisogno di più tempo per eseguire il test, può attivare una della fase di ritiro dell'origine, che gli consentirebbe di accedere Stringa Accept-Language per almeno altri sei mesi. Pubblicheremo altre i dettagli sulla prova relativa al ritiro quando sarà pronta.

Condividi feedback

Invia eventuali problemi o feedback a GitHub per la riduzione delle lingue accettati un repository attendibile.