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.
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
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:
- 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. - Aggiungi
Content-Language
all'intestazione della risposta HTTP per indicare la lingua o le lingue destinate al pubblico. - Aggiungi
Variants
all'intestazione della risposta HTTP per indicare i siti lingue supportate. - [Facoltativo] Aggiungi
Vary: Accept-Language
alla risposta HTTP per creare una chiave cache per la negoziazione dei contenuti. - 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).
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:

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

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:
- Rimuovi l'intestazione
Origin-Trial
per la riduzione della lingua Accept-Language dalla tua risposta HTTP. - [Facoltativo] Rimuovi l'intestazione
Variants
aggiunta per attivare la nella tua risposta HTTP se non ti interessa inviare questa intestazione. Puoi anche utilizzareVariants
con un valore vuoto per svolgere l'attività questo. - [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.