Pengurangan Bahasa Terima adalah upaya untuk mengurangi pelacakan sidik jari pasif
platform dengan mengurangi preferensi bahasa pengguna di
Accept-Language
dan hanya mengirimkan bahasa pilihan pengguna (hanya satu).
Diawali dengan Chrome 109
Beta, kami akan membuka
uji coba origin
untuk Pengurangan Bahasa Terima yang memungkinkan situs ikut serta untuk menerima
Header Accept-Language
. Tindakan ini akan memungkinkan situs menemukan dan memperbaiki masalah
sebelum Accept-Language
yang dikurangi menjadi perilaku default di Chrome dalam
rilis mendatang. Untuk menguji fitur sebelum diluncurkan ke populasi yang stabil,
pastikan untuk ikut serta dan menguji sebelum tanggal rilis Chrome 109 (saat ini
dijadwalkan pada 10 Januari 2023).
Lihat contoh header Accept-Language
sebelum dan sesudah pengurangan di bawah ini.
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
Accept-Language: en-GB
Berikut adalah ringkasan uji coba origin dan proses selanjutnya. Anda dapat membagikan masukan tentang perubahan ini atau masalah apa pun yang Anda temui selama uji coba origin di GitHub Menerima-Bahasa Pengurangan repositori Anda.
Apa itu Accept-Language?
Tujuan Bahasa Terima string dibagikan di setiap permintaan HTTP dan diekspos di JavaScript ke semua resource yang dimuat oleh browser. Saat ini, antarmuka pengguna berisi semua pilihan bahasa.
Mengapa Accept-Language dikurangi?
Pengurangan Bahasa Terima adalah upaya untuk mengurangi pelacakan sidik jari pasif platform ini di Chrome.
Saat ini, header Accept-Language
dibagikan secara default di setiap HTTP
dan diekspos dalam JavaScript ke semua resource yang dimuat oleh browser. Ini
berisi semua preferensi bahasa pengguna. Bukannya browser mengirim
daftar lengkap bahasa yang telah dikonfigurasi
pengguna jika situs ingin
menyediakan konten multibahasa, kami memperkenalkan cara baru bagi situs untuk mengindikasikan
konten multibahasa dan browser akan bertanggung jawab untuk
negosiasi dan menampilkan bahasa yang dipilih.
Alasan lainnya adalah ada banyak situs yang mungkin tidak menggunakan header Accept-Language
untuk negosiasi bahasa sama sekali (misalnya, satu
menunjukkan hanya 7,2% dari total
10.000 situs teratas menggunakan Accept-Language
). Mode Samaran Chrome telah mengurangi
Accept-Language
ke satu.
Apa pengaruhnya bagi developer web?
Situs yang mengandalkan Accept-Language
untuk melakukan negosiasi bahasa harus
bersiaplah untuk menerima pengurangan Accept-Language
dan mempertimbangkan untuk berpartisipasi dalam
uji coba origin. Nilai Accept-Language
yang dikurangi akan muncul di:
- Header permintaan HTTP
Accept-Language
. - Pengambil JavaScript
navigator.languages
.
Browser akan bertanggung jawab atas negosiasi bahasa untuk memilih
bahasa pilihan pengguna untuk dikirim ke situs. Untuk melakukannya, situs harus
tambahkan dua header
Variants
(header baru menunjukkan situs yang mendukung bahasa) Accept-Language
dan
Content-Language
di
header respons (lihat contoh mendetail di bawah).
Paket Accept-Language
yang dikurangi saat ini tidak mencakup iOS dan WebView, dan
platform tersebut akan terus
mendapatkan pengguna daftar lengkap Accept-Language
.
Dukungan untuk platform ini direncanakan di kemudian hari.
Uji coba origin untuk Pengurangan Bahasa Terima
Uji coba origin mengharuskan situs yang berpartisipasi untuk memberikan token di
yang memberi tahu browser untuk mengaktifkan uji coba yang ditentukan. Namun,
berarti bahwa pada permintaan awal browser ke situs, ia tidak memiliki cara untuk mengetahui
jika situs berpartisipasi dalam uji coba origin. Ini berarti bahwa awal
permintaan dalam suatu sesi tidak akan mengirimkan Accept-Language header
yang dikurangi.
Permintaan untuk subresource di halaman tersebut, baik dari origin yang sama maupun lintas origin, akan
menerima header Accept-Language
yang dikurangi. Navigasi dari origin yang sama berikutnya
juga akan menerima header Accept-Language
yang dikurangi. Navigasi lintas asal
akan kembali ke pengiriman header lengkap, sedangkan permintaan lintas origin dalam
(seperti permintaan iframe pihak ketiga) tetap akan mengirimkan Accept-Language
yang dikurangi
jika permintaan frame level teratas memiliki token uji coba origin yang valid.
Ini mirip dengan uji coba origin pengurangan Agen Pengguna dan jika Anda ingin untuk mempelajari lebih lanjut implementasi Chromium internal, Anda dapat membaca selengkapnya di Mengimplementasikan header HTTP Kurangi Bahasa Terima.
Berpartisipasi dalam uji coba origin Accept-Language Reduction
Anda dapat membaca panduan lebih lanjut di Mulai menggunakan uji coba origin Chrome, tetapi langkah-langkah pentingnya ditunjukkan di bawah ini.
Langkah 1
Untuk mendaftar uji coba origin dan mendapatkan token untuk domain Anda, kunjungi Uji Coba untuk Pengurangan Bahasa Terima kami.
Langkah 2
Update header respons HTTP Anda:
- Tambahkan
Origin-Trial: <ORIGIN TRIAL TOKEN>
ke respons HTTP Anda header, dengan <ORIGIN TRIAL TOKEN
> berisi token yang Anda dapatkan saat mendaftar ke uji coba origin. - Tambahkan
Content-Language
ke header respons HTTP Anda untuk menunjukkan bahasa yang ditujukan untuk audiens. - Tambahkan
Variants
ke header respons HTTP Anda untuk menunjukkan situs bahasa yang didukung. - [Opsional] Tambahkan
Vary: Accept-Language
ke respons HTTP Anda untuk membuat kunci cache untuk negosiasi konten. - Menyetel header tersebut hanya akan memicu bahasa browser negosiasi (kemungkinan dimulai ulang untuk permintaan awal) untuk tempat asal. Untuk membuat situs menampilkan representasi bahasa yang benar untuk pengguna, Anda juga perlu memperbarui situs yang mengirim konten berdasarkan header Accept-Language pengguna (lihat contoh di bawah).
Langkah 3
Muat situs Anda di Chrome M109 Beta (atau yang lebih baru) dan mulai terima mengurangi string Accept-Language.
Kirim masalah atau masukan ke GitHub Accept-Language repositori Anda.
Demo
Untuk demonstrasi situs multibahasa yang ikut serta dalam uji coba origin (beserta kode sumbernya) lihat https://reduce-accept-language.glitch.me/.
Untuk demonstrasi keikutsertaan dan ketidakikutsertaan uji coba origin (bersama dengan ) lihat https://reduce-accept-language-ot.glitch.me/.
Misalnya, example.com
mendukung ja
(Jepang) dan en
(Inggris). J
permintaan dapat berupa:
GET / HTTP/1.1
Host: example.com
Accept-Language: en
Situs mengetahui bahwa pengguna lebih menyukai konten dalam bahasa Inggris berdasarkan terima-bahasa. Header respons dapat mencakup:
HTTP/1.1 200 OK
Content-Language: en
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token
Jika pengguna memiliki preferensi untuk konten berbahasa Jepang, permintaannya adalah:
GET / HTTP/1.1
Host: example.com
Accept-Language: ja
Dalam hal ini, situs merespons dengan header untuk konten berbahasa Jepang:
HTTP/1.1 200 OK
Content-Language: ja
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token
Di sisi server, situs itu mungkin mencari dukungan bahasa khusus tetapi kembali ke default jika tidak ada dukungan yang terdeteksi:
if(accept_language == 'ja') {
res.response('ja_page')
}
else {
res.response('en_page')
}
Pada contoh di atas, example.com
merespons en
atau ja
berdasarkan
Nilai Accept-Language
, default-nya ke en
jika tidak ada yang cocok. Dalam hal ini,
situs ini juga dapat memberikan pengalihan ke halaman bahasa yang sesuai baik /en
maupun
/ja
berdasarkan nilai Accept-Language
. Lihat contoh terperinci terkait
mengalihkan di
dokumen penerapan.
Dukungan uji coba origin pihak ketiga
Saat ini kami tidak mendukung pendaftaran domain Anda sebagai
pihak ketiga untuk uji coba.
Jika Anda mengoperasikan layanan yang diimplementasikan sebagai subresource di seluruh origin
(seperti penayangan iklan atau analisis), Anda hanya akan menerima nilai
Accept-Language
jika situs tingkat atas berpartisipasi dalam origin
Cloud.
Memvalidasi bahwa uji coba origin berfungsi
Panduan untuk memecahkan masalah uji coba origin Chrome menyediakan daftar periksa lengkap untuk memastikan token Anda dikonfigurasi dengan benar.
Anda mengonfigurasi beberapa bahasa dan prioritasnya dari
chrome://settings/languages
atau Setelan → Bahasa. Pertimbangkan untuk memilih
bahasa yang tidak didukung situs Anda dan memindahkannya ke bagian atas daftar
untuk memastikan bahwa negosiasi ulang tambahan dipicu.
Header respons awal yang berisi token uji coba origin akan terlihat seperti:

Header permintaan berikutnya yang berisi pengurangan tampilan Accept-Language seperti ini:

Berhenti berpartisipasi dalam uji coba origin
Selama uji coba berlangsung, Anda dapat berhenti berpartisipasi dan menerima daftar lengkap {i>Accept-Language <i} pengguna. Untuk berhenti berpartisipasi:
- Menghapus header
Origin-Trial
untuk Accept-Language Reduction uji coba dari respons HTTP Anda. - [Opsional] Hapus header
Variants
yang ditambahkan untuk ikut serta uji coba origin dalam respons HTTP Anda jika Anda tidak tertarik untuk mengirimkannya {i>header<i} ini. Anda juga dapat menggunakanVariants
dengan nilai kosong untuk menyelesaikan ini. - [Opsional] Hapus header
Content-Language
yang ditambahkan ke ikut serta dalam uji coba origin di respons HTTP Anda jika Anda tidak tertarik mengirimkan {i>header<i} ini.
Durasi uji coba origin
Uji coba origin Accept-Language akan berjalan setidaknya selama enam bulan, yang sama dengan sekitar enam tonggak pencapaian Chrome. Uji coba origin akan muncul di M109 dan diakhiri dengan M114 (artinya rilis Chrome terakhir yang memiliki uji coba yang tersedia). Pada tahap ini, Chrome akan mengevaluasi masukan dari origin sebelum melanjutkan dengan mengirim pengurangan string Accept-Language dalam secara bertahap: pertama, kurangi header HTTP Accept-Language Antarmuka JSM. Jika memerlukan lebih banyak waktu untuk pengujian, situs dapat ikut serta dalam pengujian berikutnya uji coba origin penghentian penggunaan, yang akan memungkinkan mereka mengakses String terima Bahasa selama setidaknya enam bulan berikutnya. Kami akan memublikasikan lebih banyak detail tentang uji coba penghentian saat versi tersebut sudah siap.
Berikan masukan
Kirim masalah atau masukan ke GitHub Accept-Language repositori Anda.