Redukcja języka Accept-Language ma na celu zmniejszenie pasywnego odcisków cyfrowych
przez zmniejszenie preferencji językowych użytkownika
Accept-Language
nagłówek i wysyłanie tylko preferowanego języka użytkownika (tylko jeden).
Od Chrome 109
Program testów beta
test origin
akceptowalna redukcja języka, która umożliwia witrynom wyrażenie zgody na otrzymywanie
Accept-Language
. Dzięki temu witryny będą mogły wykryć i rozwiązać problemy
zanim obniżona Accept-Language
stanie się domyślnym działaniem w Chrome
przyszłą wersję. Aby przetestować tę funkcję przed udostępnieniem jej w stabilnej grupie użytkowników,
włącz Chrome 109 i przetestuj go przed datą wydania wersji 109 (obecnie
10 stycznia 2023 r.
Poniżej znajdziesz przykłady nagłówka Accept-Language
przed ograniczeniem i po nim.
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
Accept-Language: en-GB
Poniżej znajdziesz omówienie testowania origin i tego, czego możesz się spodziewać. Możesz udostępnić opinii na temat tej zmiany lub problemów, które wystąpiły podczas testowania origin witryna Accept-Language Reduction, GitHub .
Co to jest Accept-Language?
Akceptuję język jest udostępniany dla każdego żądania HTTP i udostępniany w JavaScripcie wszystkim zasobów wczytywanych przez przeglądarkę. Obecnie zawiera ona wszystkie dane użytkownika preferowanych języków.
Dlaczego zmniejszyła się wartość parametru Accept-Language?
Redukcja języka Accept-Language ma na celu zmniejszenie pasywnego odcisków cyfrowych w Chrome.
Obecnie nagłówek Accept-Language
jest domyślnie udostępniany w przypadku każdego protokołu HTTP.
i udostępniane w JavaScripcie wszystkim zasobom wczytywanym przez przeglądarkę. it
zawiera wszystkie ustawienia językowe użytkownika. Zamiast wysyłania wiadomości przez przeglądarkę
pełna lista języków skonfigurowanych przez użytkownika, na wypadek gdyby witryny chciały
udostępniania treści w wielu językach, wprowadzamy nowy sposób wskazywania witryn
obsługę treści w wielu językach, a przeglądarka ponosi odpowiedzialność za obsługę języka
i wyświetl preferowany język.
Innym powodem jest to, że wiele witryn może nie używać nagłówków Accept-Language
do negocjowania języka (na przykład jeden
badanie wskazuje tylko 7,2%
10 000 najpopularniejszych witryn używa parametru Accept-Language
). Tryb incognito w Chrome już zmniejszył
Accept-Language
na jeden.
Co to oznacza dla programistów stron internetowych?
Witryny, które bazują na Accept-Language
do negocjowania języka, powinny
przygotuj się na obniżoną cenę Accept-Language
i rozważ udział w
testowania origin. Zmniejszone wartości Accept-Language
pojawią się tutaj:
- Nagłówek żądania HTTP
Accept-Language
. - Metoda pobierania JavaScript
navigator.languages
.
Przeglądarka będzie odpowiadać za negocjacje języka, aby wybrać
preferowany język użytkownika do witryn. Aby to było możliwe, witryny muszą
dodaj dwa nagłówki
Variants
(nowy nagłówek wskazuje witryny obsługujące języki) Accept-Language
i
Content-Language
w
nagłówka odpowiedzi (zobacz szczegółowy przykład poniżej).
Zmniejszone abonamenty Accept-Language
nie obejmują obecnie iOS ani komponentu WebView,
że te platformy nadal będą uzyskiwać pełna lista: Accept-Language
.
Obsługa tych platform jest zaplanowana na później.
Testowanie origin dla Accept-Language Reduction
Aby rozpocząć testowanie origin, witryna uczestnicząca w programie musi dostarczyć token w swoim
, która informuje przeglądarkę, że ma włączyć określony okres próbny. Jednak
oznacza, że w początkowym żądaniu przeglądarki wysyłanym do witryny nie może się dowiedzieć
jeśli witryna uczestniczy w testach origin. Oznacza to, że początkowa wartość
nie spowoduje wysłania obniżonej wartości Accept-Language header
.
Żądania zasobów podrzędnych na tej stronie (zarówno z tej samej domeny, jak i z innych domen) będą
otrzymają zmniejszony nagłówek Accept-Language
. Kolejne nawigacji w tej samej domenie
otrzyma również zmniejszony nagłówek Accept-Language
. Nawigacja z innej domeny
powróci do wysyłania pełnego nagłówka, a żądania z innych domen w tagu
(np. żądania elementów iframe innych firm) nadal będą wysyłać ograniczone Accept-Language
nagłówek, jeśli żądanie ramki najwyższego poziomu ma prawidłowy token wersji próbnej origin.
Jest to podobne do testowania origin redukcji klienta użytkownika. Jeśli chcesz, więcej informacji o wewnętrznej implementacji Chromium znajdziesz w artykule: Wdrożenie redukcji nagłówka HTTP Reduce Accept-Language.
Weź udział w testach origin Accept-Language Reduction
Dalsze wskazówki znajdziesz w Pierwsze kroki z testami origin Chrome, ale najważniejsze kroki są opisane poniżej.
Krok 1
Aby zarejestrować się w programie testowania origin i uzyskać token dla swoich domen, odwiedź Okres próbny redukcji akceptacji języka stronę.
Krok 2
Zaktualizuj nagłówki odpowiedzi HTTP:
- Dodaj atrybut
Origin-Trial: <ORIGIN TRIAL TOKEN>
do odpowiedzi HTTP nagłówek, gdzie <ORIGIN TRIAL TOKEN
> zawiera token uzyskany do rejestracji w programie testowania origin. - Dodaj nagłówek
Content-Language
do nagłówka odpowiedzi HTTP, aby wskazać, języków przeznaczonych dla odbiorców. - Dodaj
Variants
do nagłówka odpowiedzi HTTP, aby wskazać strony obsługiwanych językach. - [Opcjonalnie] Dodaj atrybut
Vary: Accept-Language
do odpowiedzi HTTP aby utworzyć klucz pamięci podręcznej na potrzeby negocjowania treści. - Ustawienie tych nagłówków będzie wyzwalać tylko język przeglądarki (potencjalne ponowne uruchomienie początkowego żądania) dla danego pochodzeniu danych. Aby witryny wyświetlały się w odpowiednim języku użytkowników, musisz też zaktualizować witryny wysyłające treść na podstawie nagłówek Accept-Language użytkownika (patrz przykład poniżej).
Krok 3
Otwórz swoją witrynę w Chrome M109 Beta (lub nowszą wersję) i zacznij otrzymywać zredukowany ciąg Accept-Language.
Zgłoś problemy lub prześlij opinię do usługi Accept-Language Reduction w serwisie GitHub .
Prezentacja
prezentacja witryny wielojęzycznych, w której wzięto udział w testowaniu origin. (wraz z kodem źródłowym) znajdziesz https://reduce-accept-language.glitch.me/.
Zademonstrowanie możliwości wyrażenia zgody lub rezygnacji w ramach testowania origin (wraz kodu źródłowego), zobacz https://reduce-accept-language-ot.glitch.me/.
Na przykład example.com
obsługuje ja
(język japoński) i en
(język angielski). O
może wyglądać tak:
GET / HTTP/1.1
Host: example.com
Accept-Language: en
Witryna wie, że użytkownik preferuje treści po angielsku, biorąc pod uwagę akceptacja języka. Nagłówki odpowiedzi mogą zawierać:
HTTP/1.1 200 OK
Content-Language: en
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token
Jeśli użytkownik preferuje treści w języku japońskim, żądanie będzie wyglądać tak:
GET / HTTP/1.1
Host: example.com
Accept-Language: ja
W takim przypadku witryna w odpowiedzi przesyła nagłówki dotyczące treści w języku japońskim:
HTTP/1.1 200 OK
Content-Language: ja
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token
Po stronie serwera witryna może szukać obsługi konkretnych języków, ale w przypadku braku obsługi powraca do wartości domyślnej:
if(accept_language == 'ja') {
res.response('ja_page')
}
else {
res.response('en_page')
}
W tym przykładzie example.com
odpowiada en
lub ja
na podstawie
Accept-Language
. Jeśli żadna nie będzie zgodna, stosowana domyślnie będzie en
. W tym przypadku parametr
witryna może też podawać przekierowania do stron w określonym języku za pomocą /en
lub
/ja
na podstawie wartości Accept-Language
. Zobacz szczegółowe przykłady powiązanych
przekierowuje na
dokumentu wdrożeniowego.
Pomoc dotycząca testowania origin innych firm
Obecnie nie obsługujemy rejestracji domen jako
firmy zewnętrznej w ramach okresu próbnego.
Jeśli korzystasz z usługi, która jest wdrażana jako zasób podrzędny w różnych źródłach
(np. wyświetlanie reklam lub analitykę), będziesz otrzymywać
Nagłówek Accept-Language
, jeśli witryna najwyższego poziomu jest częścią punktu początkowego
wersji próbnej.
Sprawdzanie, czy testowanie origin działa
Przewodnik po rozwiązywanie problemów z testami origin Chrome zawiera pełną listę kontrolną, która pozwoli Ci upewnić się, że token jest prawidłowo skonfigurowany.
Konfigurujesz wiele języków i ustawiasz ich priorytety w menu
chrome://settings/languages
lub Ustawienia → Języki. Wybierz
język, którego Twoja witryna nie obsługuje, i przeniesienie go na górę listy.
aby zapewnić rozpoczęcie dodatkowych ponownych negocjacji.
Nagłówki odpowiedzi początkowej zawierające token testowania origin powinny wyglądać lubię:

Kolejne nagłówki żądań zawierające mniejszy tekst Accept-Language wyglądają tak:

Rezygnacja z udziału w testowaniu origin
W dowolnym momencie okresu próbnego możesz zaprzestać uczestnictwa i otrzymano pełną listę wartości Accept-Language użytkownika. Aby zrezygnować z udziału w programie:
- Usuń nagłówek
Origin-Trial
dla interfejsu Accept-Language Reduction wersji próbnej na podstawie odpowiedzi HTTP. - [Opcjonalnie] Usuń nagłówek
Variants
dodany w celu wyrażenia zgody na stosowanie testowania origin w odpowiedzi HTTP. ten nagłówek. Do uzyskania celu możesz też użyć parametruVariants
z pustą wartością to osiągnąć. - [Opcjonalnie] Usuń nagłówek
Content-Language
, który jest dodawany do włącz testowanie origin w odpowiedzi HTTP, jeśli Cię to nie interesuje wysyłając ten nagłówek.
Okres próbny origin
Testowanie origin Accept-Language Reduction będzie trwać co najmniej 6 miesięcy, co odpowiada około 6 etapom rozwoju Chrome. Pojawi się wersja próbna origin w wersji M109 i kończącej się wersją M114 (oznacza to ostatnią wersję Chrome, w której dostępna). W tym momencie Chrome oceni opinię ze źródła próbkę. stopniowy sposób: najpierw zmniejsz nagłówek HTTP Accept-Language, a następnie Interfejs JS. Jeśli witryna potrzebuje więcej czasu na przetestowanie witryny, może wyrazić zgodę na kolejną. testowania origin, co umożliwiłoby im dostęp do pełnej wersji Ciąg tekstowy Accept-Language przez co najmniej kolejne 6 miesięcy. Publikujemy więcej szczegóły na temat okresu próbnego wycofywania, gdy będzie gotowy.
Podziel się opinią
Zgłoś problemy lub prześlij opinię do usługi Accept-Language Reduction w serwisie GitHub .