Accept-Language Reduction, Accept-Language
başlığında kullanıcının dil tercihlerini azaltarak ve yalnızca kullanıcının en çok tercih ettiği dili (yalnızca bir tane) göndererek pasif parmak izi yüzeylerini azaltmaya yönelik bir çabadır.
Chrome 109 Beta sürümünden itibaren, sitelerin azaltılmış Accept-Language
başlığını almasını etkinleştiren Accept-Language Reduction için başlangıç denemesini kullanıma sunacağız. Bu sayede siteler, azaltılmış Accept-Language
gelecekteki bir Chrome sürümünde varsayılan davranış haline gelmeden önce sorunları bulup düzeltebilir. Özelliği kararlı sürüme sunulmadan önce test etmek için Chrome 109'un yayınlanma tarihinden (şu anda 10 Ocak 2023 olarak planlanmıştır) önce etkinleştirip test ettiğinizden emin olun.
Aşağıda, azaltmadan önce ve sonra Accept-Language
başlığı örneklerini inceleyin.
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
Accept-Language: en-GB
Kaynak denemesine ve bu süreçte neler bekleyebileceğinize genel bir bakış aşağıda verilmiştir. Bu değişiklikle ilgili geri bildirimlerinizi veya kaynak deneme sürümü sırasında karşılaştığınız sorunları Accept-Language Reduction GitHub deposunda paylaşabilirsiniz.
Accept-Language nedir?
Accept-Language dizesi her HTTP isteğinde paylaşılır ve tarayıcı tarafından yüklenen tüm kaynaklara JavaScript'de gösterilir. Şu anda kullanıcının tercih ettiği tüm dilleri içerir.
Accept-Language neden azaltılıyor?
Accept-Language azaltma, Chrome'daki pasif parmak izi alma yüzeylerini azaltmaya yönelik bir çalışmadır.
Şu anda Accept-Language
başlığı her HTTP isteğinde varsayılan olarak paylaşılır ve tarayıcı tarafından yüklenen tüm kaynaklara JavaScript'de gösterilir. Kullanıcının tüm dil tercihlerini içerir. Sitelerin çok dilli içerik sunmak istemesi durumunda tarayıcının, kullanıcının yapılandırdığı dillerin tam listesini göndermesi yerine, sitelerin çok dilli içeriği belirtmesi için yeni bir yöntem sunuyoruz. Bu yöntemde, dil pazarlığı yapma ve tercih edilen dili görüntüleme sorumluluğu tarayıcıya aittir.
Diğer bir neden de birçok sitenin dil pazarlığı için Accept-Language
üstbilgilerini hiç kullanmamasıdır (örneğin, bir çalışma, en iyi 10.000 sitenin yalnızca% 7,2'sinin Accept-Language
kullandığını belirtir). Chrome Gizli modu, Accept-Language
sayısını zaten bire indirmiştir.
Bu durum web geliştiriciler için ne anlama geliyor?
Dil pazarlığı yapmak için Accept-Language
kullanan siteler, daha az Accept-Language
almaya hazırlanmalı ve kaynak denemesine katılmayı düşünmelidir. Azaltılmış Accept-Language
değerleri şu yerlerde görünür:
Accept-Language
HTTP istek başlığı.navigator.languages
JavaScript alıcı.
Tarayıcı, kullanıcının sitelere gönderilecek tercih ettiği dili seçmek için dil pazarlığı yapma sorumluluğunu üstlenir. Bunun için sitelerin, yanıt başlığına Variants
(yeni bir başlık, dilleri destekleyen siteleri belirtir) Accept-Language
ve Content-Language
olmak üzere iki başlık eklemesi gerekir (ayrıntılı örneği aşağıda bulabilirsiniz).
Azaltılmış Accept-Language
planları şu anda iOS ve WebView'i içermiyor. Bu platformlar, kullanıcıların Accept-Language
listesinin tamamını almaya devam edecek.
Bu platformlar için destek daha sonraki bir tarihte planlanmaktadır.
Accept-Language kısaltması için kaynak denemesi
Kaynak denemesi için katılımcı sitenin, yanıtında tarayıcıya belirtilen denemeyi etkinleştirmesini söyleyen bir jeton sağlaması gerekir. Ancak bu, tarayıcının siteye yaptığı ilk istekte sitenin bir kaynak denemesine katılıp katılmadığını bilmesinin mümkün olmadığı anlamına gelir. Bu, bir oturumdaki ilk istek, azaltılmış Accept-Language header
göndermeyeceği anlamına gelir.
Bu sayfadaki hem aynı kaynaktan hem de çapraz kaynaktan gelen alt kaynaklar için istekler, azaltılmış Accept-Language
üstbilgisini alır. Aynı kaynaktaki sonraki gezinmeler de azaltılmış Accept-Language
başlığını alır. Kaynaklar arası gezinmeler tam başlığı göndermeye geri döner. Üst düzey çerçeve isteğinde geçerli bir kaynak deneme jetonu varsa sayfadaki kaynaklar arası istekler (üçüncü taraf iframe istekleri gibi) yine de azaltılmış Accept-Language
başlığı gönderir.
Bu, kullanıcı aracısı azaltma kaynak denemesine benzer. Dahili Chromium uygulaması hakkında daha fazla bilgi edinmek istiyorsanız Reduce Accept-Language HTTP üstbilgisini uygulama başlıklı makaleyi inceleyebilirsiniz.
Accept-Language azaltma kaynağı denemesine katılma
Daha fazla bilgi için Chrome'un kaynak denemelerini kullanmaya başlama başlıklı makaleyi inceleyebilirsiniz. Temel adımlar aşağıda verilmiştir.
1. Adım
Kaynak denemesine kaydolmak ve alanlarınız için jeton almak istiyorsanız Kabul Edilen Dilleri Azaltma Deneme Sürümü sayfasını ziyaret edin.
2. Adım
HTTP yanıtı üstbilgilerinizi güncelleyin:
- HTTP yanıt başlığınıza
Origin-Trial: <ORIGIN TRIAL TOKEN>
ekleyin. Burada <ORIGIN TRIAL TOKEN
>, kaynak denemesine kaydolurken aldığınız jetonu içerir. - Kitleye yönelik dilleri belirtmek için HTTP yanıt başlığınıza
Content-Language
ekleyin. - Sitelerin desteklediği dilleri belirtmek için HTTP yanıt başlığınıza
Variants
ekleyin. - [İsteğe bağlı] İçerik için pazarlık yapmak üzere HTTP yanıtınıza
Vary: Accept-Language
ekleyin. - Bu üstbilgilerin ayarlanması, yalnızca belirli bir kaynak için tarayıcı dili pazarlığını (ilk istek için olası bir yeniden başlatma) tetikler. Sitelerin kullanıcılar için doğru dil temsilini göstermesi amacıyla, içeriği kullanıcının Accept-Language başlığına göre gönderen siteleri de güncellemeniz gerekir (aşağıdaki örneğe bakın).
3. Adım
Web sitenizi Chrome M109 Beta (veya sonraki bir sürüm) sürümünde açın ve azaltılmış Accept-Language dizesini almaya başlayın.
Sorunları veya geri bildirimleri Accept-Language Reduction GitHub deposuna gönderin.
Demo
Kaynak deneme sürümüne kaydolan çok dilli bir sitenin (kaynak kodla birlikte) gösterimi için https://reduce-accept-language.glitch.me/ adresine bakın.
Kaynak deneme sürümünü etkinleştirme ve devre dışı bırakma (kaynak kodla birlikte) gösterimi için https://reduce-accept-language-ot.glitch.me/ adresine bakın.
Örneğin, example.com
; ja
(Japonca) ve en
(İngilizce) dillerini destekler. İstekler şunlar olabilir:
GET / HTTP/1.1
Host: example.com
Accept-Language: en
Site, kullanıcının accept-language özelliğine göre İngilizce içerikleri tercih ettiğini bilir. Yanıt üstbilgileri şunları içerebilir:
HTTP/1.1 200 OK
Content-Language: en
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token
Kullanıcının Japonca içerik tercihi varsa istek şu şekilde olur:
GET / HTTP/1.1
Host: example.com
Accept-Language: ja
Bu durumda site, Japonca içerik başlıkları ile yanıt verir:
HTTP/1.1 200 OK
Content-Language: ja
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token
Sunucu tarafında site belirli bir dil desteği arıyor olabilir ancak destek algılanmazsa varsayılan bir dile geri dönebilir:
if(accept_language == 'ja') {
res.response('ja_page')
}
else {
res.response('en_page')
}
Yukarıdaki örnekte example.com
, Accept-Language
değerine göre en
veya ja
yanıtı verir. Hiçbir eşleşme yoksa varsayılan olarak en
yanıtı verilir. Bu durumda site, Accept-Language
değerine göre /en
veya /ja
dil sayfalarına yönlendirmeler de sağlayabilir. Yönlendirmelerle ilgili ayrıntılı örnekleri uygulama dokümanında bulabilirsiniz.
Üçüncü taraf kaynağı deneme sürümü desteği
Şu anda alanlarınızı deneme için üçüncü taraf olarak kaydettirmeyi desteklemiyoruz.
Kaynaklar arasında alt kaynak olarak uygulanan bir hizmeti (reklam yayını veya analizler gibi) işletiyorsanız yalnızca üst düzey site kaynak denemesine katılıyorsa azaltılmış Accept-Language
üstbilgisini alırsınız.
Kaynak denemenin çalıştığını doğrulama
Chrome'un kaynak denemeleriyle ilgili sorunları giderme kılavuzunda, jetonunuzun doğru şekilde yapılandırıldığından emin olmak için eksiksiz bir yapılacaklar listesi sağlanır.
Birden fazla dili ve bunların önceliğini chrome://settings/languages
veya Ayarlar → Diller'den yapılandırabilirsiniz. Ek yeniden pazarlığın tetiklendiğinden emin olmak için sitenizin desteklemediği bir dili seçip listenin en üstüne taşımayı deneyin.
İlk yanıtın, kaynak deneme jetonunu içeren üstbilgileri şu şekilde görünmelidir:

Azaltılmış Accept-Language içeren sonraki istek üst bilgileri şu şekilde görünür:

Kaynak denemeye katılmayı bırakma
Deneme süresi boyunca dilediğiniz zaman katılımı durdurabilir ve kullanıcının Accept-Language özelliğinin tam listesini alabilirsiniz. Görevden çıkmak için:
- HTTP yanıtınızdan Accept-Language Reduction denemesi için
Origin-Trial
üst bilgisini kaldırın. - [İsteğe bağlı] Başlangıç denemesine kaydolmak için HTTP yanıtınıza eklenen
Variants
üst bilgisini, bu üst bilgisini göndermek istemiyorsanız kaldırın. Bunu yapmak için boş bir değerle birlikteVariants
'ü de kullanabilirsiniz. - [İsteğe bağlı] Bu başlığı göndermek istemiyorsanız HTTP yanıtınızda başlangıç denemesine kaydolma işlemi için eklenen
Content-Language
başlığını kaldırın.
Kaynak deneme süresi
Accept-Language Reduction kaynak denemesi en az altı ay boyunca (yaklaşık altı Chrome aşamasına karşılık gelir) yayınlanacaktır. Kaynak denemesi M109'da gösterilir ve M114'te sona erer (yani deneme sürümünün kullanılabildiği son Chrome sürümü). Bu noktada Chrome, azaltılmış Accept-Language dizesini aşamalı olarak göndermeye devam etmeden önce kaynak deneme sürümünden gelen geri bildirimi değerlendirir: Önce Accept-Language HTTP üst bilgisini, ardından JS arayüzünü azaltır. Bir sitenin test etmek için daha fazla zamana ihtiyacı varsa desteği sonlandırılan kaynak deneme sürümünü etkinleştirebilir. Bu sürüm, en az altı ay daha Accept-Language dizesinin tamamına erişmelerine olanak tanır. Desteği sonlandırma denemesi hazır olduğunda daha fazla bilgi yayınlayacağız.
Geri bildirim
Sorunları veya geri bildirimleri Accept-Language Reduction GitHub deposuna gönderin.