Weź udział w testowaniu origin na potrzeby redukcji języka Accept-Language

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.

Bieżące
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
Propozycja
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:

  1. 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.
  2. Dodaj nagłówek Content-Language do nagłówka odpowiedzi HTTP, aby wskazać, języków przeznaczonych dla odbiorców.
  3. Dodaj Variants do nagłówka odpowiedzi HTTP, aby wskazać strony obsługiwanych językach.
  4. [Opcjonalnie] Dodaj atrybut Vary: Accept-Language do odpowiedzi HTTP aby utworzyć klucz pamięci podręcznej na potrzeby negocjowania treści.
  5. 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ę:

Zrzut ekranu nagłówka żądania z redukcją Accept-Language.

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

Nagłówki odpowiedzi początkowej zawierające token testowania origin.

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:

  1. Usuń nagłówek Origin-Trial dla interfejsu Accept-Language Reduction wersji próbnej na podstawie odpowiedzi HTTP.
  2. [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ć parametru Variants z pustą wartością to osiągnąć.
  3. [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 .