Mit der Accept-Language-Reduzierung soll die Anzahl der Oberflächen für den passiven Fingerabdruck reduziert werden. Dazu werden die Spracheinstellungen des Nutzers in der Kopfzeile von Accept-Language
minimiert und nur die am häufigsten verwendete Sprache des Nutzers gesendet.
Ab der Betaversion von Chrome 109 wird der Ursprungstest für die Reduzierung von „Accept-Language“ geöffnet. Websites können dann festlegen, dass der reduzierte Accept-Language
-Header empfangen werden soll. So können Probleme auf Websites erkannt und behoben werden, bevor die reduzierte Accept-Language
in einer zukünftigen Version von Chrome zum Standardverhalten wird. Wenn Sie die Funktion vor der Einführung in der stabilen Version testen möchten, müssen Sie sie aktivieren und vor dem Veröffentlichungsdatum von Chrome 109 testen (derzeit für den 10. Januar 2023 geplant).
Unten finden Sie Beispiele für Accept-Language
-Überschriften vor und nach der Verringerung.
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
Accept-Language: en-GB
Unten findest du eine Übersicht über den Test und was du erwarten kannst. Sie können Ihr Feedback zu dieser Änderung oder zu Problemen, die während des Ursprungstests auftreten, im GitHub-Repository für die Accept-Language-Reduzierung teilen.
Was ist „Accept-Language“?
Der String Accept-Language wird bei jeder HTTP-Anfrage freigegeben und in JavaScript für alle vom Browser geladenen Ressourcen freigegeben. Derzeit enthält sie alle bevorzugten Sprachen des Nutzers.
Warum wird Accept-Language reduziert?
Mit der Accept-Language-Reduzierung soll die Anzahl der Oberflächen für passive Fingerprinting-Methoden in Chrome reduziert werden.
Derzeit wird der Accept-Language
-Header standardmäßig bei jeder HTTP-Anfrage freigegeben und in JavaScript für alle vom Browser geladenen Ressourcen freigegeben. Sie enthält alle Spracheinstellungen des Nutzers. Anstatt dass der Browser die vollständige Liste der vom Nutzer konfigurierten Sprachen sendet, wenn Websites mehrsprachige Inhalte bereitstellen möchten, führen wir eine neue Möglichkeit ein, wie Websites mehrsprachige Inhalte angeben können. Der Browser übernimmt dann die Sprachverhandlung und zeigt die bevorzugte Sprache an.
Ein weiterer Grund ist, dass viele Websites die Accept-Language
-Header möglicherweise gar nicht für die Sprachverhandlung verwenden. Eine Studie zeigt beispielsweise, dass nur 7,2% der 10.000 wichtigsten Websites Accept-Language
verwenden. Im Inkognitomodus von Chrome wurde die Anzahl der Accept-Language
-Header bereits auf einen reduziert.
Was bedeutet das für Webentwickler?
Betreiber von Websites, die Accept-Language
für die Sprachverhandlung nutzen, sollten sich darauf vorbereiten, weniger Accept-Language
zu erhalten, und sollten erwägen, am Test zur Herkunftsermittlung teilzunehmen. Die reduzierten Accept-Language
-Werte werden an folgenden Stellen angezeigt:
- Über den
Accept-Language
-HTTP-Anfrageheader. - Der
navigator.languages
-JavaScript-Getter.
Der Browser übernimmt die Verantwortung für die Sprachverhandlung, um die bevorzugte Sprache des Nutzers auszuwählen, die an Websites gesendet werden soll. Dazu müssen Websites zwei Header hinzufügen: Variants
(ein neuer Header, der angibt, dass die Website Sprachen unterstützt) Accept-Language
und Content-Language
in den Antwortheader (siehe detailliertes Beispiel unten).
Die reduzierten Accept-Language
-Abos umfassen derzeit weder iOS noch WebView. Auf diesen Plattformen wird Nutzern weiterhin die vollständige Liste der Accept-Language
angezeigt.
Die Unterstützung dieser Plattformen ist für später geplant.
Ursprungstest für die Accept-Language-Reduzierung
Für einen Test der Website-Herkunft muss die teilnehmende Website in ihrer Antwort ein Token angeben, das dem Browser mitteilt, den angegebenen Test zu aktivieren. Das bedeutet jedoch, dass bei der ersten Anfrage des Browsers an die Website nicht bekannt ist, ob die Website an einem Ursprungstest teilnimmt. Das bedeutet, dass die anfängliche Anfrage in einer Sitzung nicht die reduzierte Accept-Language header
sendet.
Anfragen für Unterressourcen auf dieser Seite, sowohl für dieselbe Quelle als auch für andere Quellen, erhalten den reduzierten Accept-Language
-Header. Auch nachfolgende Navigationen zum selben Ursprung erhalten den reduzierten Accept-Language
-Header. Bei plattformübergreifenden Navigationen wird wieder der vollständige Header gesendet. Bei plattformübergreifenden Anfragen auf der Seite (z. B. iframe-Anfragen von Drittanbietern) wird weiterhin der reduzierte Accept-Language
-Header gesendet, wenn die Frame-Anfrage der obersten Ebene ein gültiges Testtoken für den Ursprung hat.
Das ähnelt dem Ursprungstest zur Reduzierung des User-Agents. Weitere Informationen zur internen Chromium-Implementierung finden Sie unter Implementieren des HTTP-Headers „Reduce Accept-Language“.
Am Ursprungstest zur Accept-Language-Reduzierung teilnehmen
Weitere Informationen finden Sie unter Einstieg in Chrome-Ursprungstests. Die wichtigsten Schritte sind unten aufgeführt.
Schritt 1
Wenn Sie sich für den Test registrieren und ein Token für Ihre Domains erhalten möchten, rufen Sie die Seite Test für die Reduzierung der akzeptierten Sprachen auf.
Schritt 2
Aktualisieren Sie Ihre HTTP-Antwortheader:
- Füge deinem HTTP-Antwortheader
Origin-Trial: <ORIGIN TRIAL TOKEN>
hinzu. Dabei enthält <ORIGIN TRIAL TOKEN
> das Token, das du bei der Registrierung für den Test erhalten hast. - Fügen Sie Ihrem HTTP-Antwortheader
Content-Language
hinzu, um die Sprache(n) anzugeben, die für die Zielgruppe bestimmt sind. - Fügen Sie Ihrem HTTP-Antwortheader
Variants
hinzu, um die von Websites unterstützten Sprachen anzugeben. - [Optional] Füge deiner HTTP-Antwort
Vary: Accept-Language
hinzu, um einen Cache-Schlüssel für die Inhaltsaushandlung zu erstellen. - Durch das Festlegen dieser Header wird nur die Browsersprachenverhandlung (ein potenzieller Neustart der ursprünglichen Anfrage) für den angegebenen Ursprung ausgelöst. Damit Websites die richtige Sprachversion für die Nutzer anzeigen, müssen Sie auch Websites aktualisieren, die die Inhalte basierend auf dem Accept-Language-Header des Nutzers senden (siehe Beispiel unten).
Schritt 3
Laden Sie Ihre Website in Chrome M109 Beta (oder höher) und erhalten Sie den reduzierten Accept-Language-String.
Senden Sie Probleme oder Feedback an das GitHub-Repository für die Accept-Language-Reduzierung.
Demo
Eine Demo einer mehrsprachigen Website, für die die Testversion für den Ursprung aktiviert wurde (zusammen mit dem Quellcode), finden Sie unter https://reduce-accept-language.glitch.me/.
Eine Demo zur Aktivierung und Deaktivierung des Ursprungstests (zusammen mit dem Quellcode) finden Sie unter https://reduce-accept-language-ot.glitch.me/.
example.com
unterstützt beispielsweise ja
(Japanisch) und en
(Englisch). Eine Anfrage kann folgendermaßen sein:
GET / HTTP/1.1
Host: example.com
Accept-Language: en
Die Website weiß, dass der Nutzer Inhalte auf Englisch bevorzugt, basierend auf der „accept-language“-Angabe des Nutzers. Die Antwortheader können Folgendes umfassen:
HTTP/1.1 200 OK
Content-Language: en
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token
Wenn der Nutzer japanische Inhalte bevorzugt, sieht die Anfrage so aus:
GET / HTTP/1.1
Host: example.com
Accept-Language: ja
In diesem Fall antwortet die Website mit Headern für japanische Inhalte:
HTTP/1.1 200 OK
Content-Language: ja
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token
Auf der Serverseite sucht die Website möglicherweise nach einer bestimmten Sprachunterstützung, greift aber auf eine Standardeinstellung zurück, wenn keine Unterstützung erkannt wird:
if(accept_language == 'ja') {
res.response('ja_page')
}
else {
res.response('en_page')
}
Im obigen Beispiel gibt example.com
je nach Wert von Accept-Language
entweder en
oder ja
zurück. Wenn keine Übereinstimmung gefunden wird, wird standardmäßig en
zurückgegeben. In diesem Fall kann die Website je nach Accept-Language
-Wert auch Weiterleitungen zu den entsprechenden Sprachseiten /en
oder /ja
bereitstellen. Ausführliche Beispiele zu Weiterleitungen finden Sie in der Implementierungsdokumentation.
Support für Testversionen von Drittanbietern
Die Registrierung Ihrer Domains als Drittanbieter für den Testzeitraum wird derzeit nicht unterstützt.
Wenn Sie einen Dienst betreiben, der als untergeordnete Ressource für mehrere Ursprünge implementiert ist (z. B. Anzeigenbereitstellung oder Analysen), erhalten Sie die reduzierte Accept-Language
-Header-Version nur, wenn die Website der obersten Ebene am Test für Ursprünge teilnimmt.
Prüfen, ob der Test der Quelle funktioniert
Im Leitfaden zur Fehlerbehebung bei Chrome-Ursprungstests finden Sie eine vollständige Checkliste, mit der Sie prüfen können, ob Ihr Token richtig konfiguriert ist.
Sie können mehrere Sprachen und ihre Priorität unter chrome://settings/languages
oder „Einstellungen“ > „Sprachen“ konfigurieren. Sie können eine Sprache auswählen, die von Ihrer Website nicht unterstützt wird, und sie an den Anfang der Liste setzen, damit die zusätzliche Neuverhandlung ausgelöst wird.
Die Header der ersten Antwort, die das Testtoken für den Ursprung enthalten, sollten so aussehen:

Nachfolgende Anfrageheader mit der reduzierten Accept-Language-Angabe sehen so aus:

Teilnahme am Ursprungstest beenden
Sie können die Teilnahme jederzeit beenden und die vollständige Liste der Accept-Language-Werte des Nutzers erhalten. So beenden Sie die Teilnahme:
- Entfernen Sie den
Origin-Trial
-Header für den Test zur Accept-Language-Reduzierung aus Ihrer HTTP-Antwort. - [Optional] Entfernen Sie den
Variants
-Header, der zum Aktivieren des Origin Trials in Ihrer HTTP-Antwort hinzugefügt wird, wenn Sie diesen Header nicht senden möchten. Sie können auchVariants
mit einem leeren Wert verwenden. - [Optional] Entfernen Sie den
Content-Language
-Header, der zur Aktivierung des Origin Trials in Ihrer HTTP-Antwort hinzugefügt wird, wenn Sie diesen Header nicht senden möchten.
Dauer des Ursprungstests
Der Ursprungstest für die Accept-Language-Reduzierung dauert mindestens sechs Monate, was etwa sechs Chrome-Meilensteinen entspricht. Der Ursprungstest wird in M109 eingeführt und endet mit M114 (d. h. der letzten Chrome-Version, in der der Test verfügbar ist). An diesem Punkt wertet Chrome das Feedback aus dem Ursprungstest aus, bevor der reduzierte Accept-Language-String in mehreren Schritten gesendet wird: zuerst der Accept-Language-HTTP-Header und dann die JS-Schnittstelle. Wenn für eine Website mehr Zeit für Tests erforderlich ist, kann ein weiterer Testzeitraum für die Einstellung des Ursprungs aktiviert werden. So kann noch mindestens sechs Monate lang auf den vollständigen Accept-Language-String zugegriffen werden. Sobald der Test verfügbar ist, veröffentlichen wir weitere Details dazu.
Feedback geben
Senden Sie Probleme oder Feedback an das GitHub-Repository für die Accept-Language-Reduzierung.