Berpartisipasi dalam uji coba origin untuk Pengurangan Bahasa Terima

Pengurangan Accept-Language adalah upaya untuk mengurangi platform pelacakan sidik jari pasif dengan mengurangi preferensi bahasa pengguna di header Accept-Language dan hanya mengirim bahasa yang paling disukai pengguna (hanya satu).

Mulai Chrome 109 Beta, kami akan membuka uji coba origin untuk Pengurangan Accept-Language yang memungkinkan situs memilih untuk menerima header Accept-Language yang dipersingkat. Hal 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 stabil, pastikan untuk ikut serta dan menguji sebelum tanggal rilis Chrome 109 (saat ini dijadwalkan untuk 10 Januari 2023).

Lihat contoh header Accept-Language sebelum dan sesudah pengurangan di bawah.

Saat ini
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
Diajukan
Accept-Language: en-GB

Berikut adalah ringkasan uji coba origin dan hal yang akan Anda temukan. Anda dapat membagikan masukan tentang perubahan ini atau masalah apa pun yang Anda alami selama uji coba origin di repositori GitHub Pengurangan Bahasa Penerimaan.

Apa yang dimaksud dengan Accept-Language?

String Accept-Language dibagikan di setiap permintaan HTTP dan ditampilkan dalam JavaScript ke semua resource yang dimuat oleh browser. Saat ini, kolom ini berisi semua bahasa yang disukai pengguna.

Mengapa Accept-Language dikurangi?

Pengurangan Accept-Language adalah upaya untuk mengurangi platform pengambilan sidik jari pasif di Chrome.

Saat ini, header Accept-Language dibagikan secara default di setiap permintaan HTTP dan ditampilkan dalam JavaScript ke semua resource yang dimuat oleh browser. File ini berisi semua preferensi bahasa pengguna. Daripada browser mengirim daftar lengkap bahasa yang telah dikonfigurasi pengguna jika situs ingin menyediakan konten multibahasa, kami memperkenalkan cara baru bagi situs untuk menunjukkan konten multibahasa dan browser akan bertanggung jawab untuk melakukan negosiasi bahasa dan menampilkan bahasa pilihan.

Alasan lainnya adalah banyak situs mungkin tidak menggunakan header Accept-Language untuk negosiasi bahasa sama sekali (misalnya, satu studi menunjukkan hanya 7,2% dari 10.000 situs teratas yang menggunakan Accept-Language). Mode Samaran Chrome telah mengurangi Accept-Language menjadi satu.

Apa artinya ini bagi developer web?

Situs yang mengandalkan Accept-Language untuk melakukan negosiasi bahasa harus bersiap menerima Accept-Language yang dikurangi 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 yang akan dikirim ke situs. Untuk melakukannya, situs harus menambahkan 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 daftar lengkap Accept-Language pengguna. Dukungan untuk platform ini direncanakan untuk diluncurkan di lain waktu.

Uji coba origin untuk Pengurangan Accept-Language

Uji coba origin mengharuskan situs yang berpartisipasi untuk memberikan token dalam responsnya yang memberi tahu browser untuk mengaktifkan uji coba yang ditentukan. Namun, hal ini berarti bahwa pada permintaan awal browser ke situs, browser tidak dapat mengetahui apakah situs tersebut berpartisipasi dalam uji coba origin. Artinya, permintaan awal dalam sesi tidak akan mengirim Accept-Language header yang dikurangi. Permintaan untuk sub-resource di halaman tersebut, baik dengan origin yang sama maupun lintas origin, akan menerima header Accept-Language yang dikurangi. Navigasi dengan origin yang sama berikutnya juga akan menerima header Accept-Language yang dikurangi. Navigasi lintas origin akan kembali mengirim header lengkap, sedangkan permintaan lintas origin dalam halaman (seperti permintaan iframe pihak ketiga) akan tetap mengirim header Accept-Language yang dipersingkat jika permintaan frame level atas memiliki token uji coba origin yang valid.

Hal ini mirip dengan uji coba origin pengurangan Agen Pengguna dan jika ingin mempelajari lebih lanjut penerapan Chromium internal, Anda dapat membaca selengkapnya di Menerapkan header HTTP Reduce Accept-Language.

Berpartisipasi dalam uji coba origin Pengurangan Bahasa yang Diterima

Anda dapat membaca panduan lebih lanjut di Memulai uji coba origin Chrome, tetapi langkah-langkah utamanya ditampilkan di bawah.

Langkah 1

Untuk mendaftar ke uji coba origin dan mendapatkan token untuk domain Anda, buka halaman Uji Coba untuk Pengurangan Accept-Language.

Langkah 2

Perbarui header respons HTTP Anda:

  1. Tambahkan Origin-Trial: <ORIGIN TRIAL TOKEN> ke header respons HTTP Anda, dengan <ORIGIN TRIAL TOKEN> berisi token yang Anda dapatkan saat mendaftar ke uji coba origin.
  2. Tambahkan Content-Language ke header respons HTTP untuk menunjukkan bahasa yang ditujukan untuk audiens.
  3. Tambahkan Variants ke header respons HTTP untuk menunjukkan bahasa yang didukung situs.
  4. [Opsional] Tambahkan Vary: Accept-Language ke respons HTTP untuk membuat kunci cache bagi negosiasi konten.
  5. Menetapkan header tersebut hanya akan memicu negosiasi bahasa browser (kemungkinan mulai ulang untuk permintaan awal) untuk origin tertentu. Agar 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 menerima string Accept-Language yang dipersingkat.

Kirimkan masalah atau masukan apa pun ke repositori GitHub Accept-Language Reduction.

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 dalam uji coba origin (beserta kode sumber), lihat https://reduce-accept-language-ot.glitch.me/.

Misalnya, example.com mendukung ja (Jepang) dan en (Inggris). Permintaan dapat berupa:

GET / HTTP/1.1
Host: example.com
Accept-Language: en

Situs mengetahui bahwa pengguna lebih memilih konten dalam bahasa Inggris berdasarkan accept-language pengguna. 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 akan menjadi:

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 mungkin mencari dukungan bahasa tertentu, 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, yang ditetapkan secara default ke en jika tidak ada yang cocok. Dalam hal ini, situs juga dapat memberikan pengalihan ke halaman bahasa yang sesuai, baik /en maupun /ja berdasarkan nilai Accept-Language. Lihat contoh mendetail terkait pengalihan 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 diterapkan sebagai sub-resource di seluruh origin (seperti penayangan iklan atau analisis), Anda hanya akan menerima header Accept-Language yang dipersingkat jika situs tingkat teratas berpartisipasi dalam uji coba origin.

Memvalidasi bahwa uji coba origin berfungsi

Panduan untuk memecahkan masalah uji coba origin Chrome menyediakan checklist lengkap untuk memastikan token Anda dikonfigurasi dengan benar.

Anda dapat 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:

Screenshot header permintaan dengan Accept-Language yang dikurangi.

Header permintaan berikutnya yang berisi Accept-Language yang dikurangi akan terlihat seperti:

Header respons awal yang berisi token uji coba origin.

Berhenti berpartisipasi dalam uji coba asal

Kapan saja selama uji coba berlangsung, Anda dapat berhenti berpartisipasi dan menerima daftar lengkap Accept-Language pengguna. Untuk berhenti berpartisipasi:

  1. Hapus header Origin-Trial untuk uji coba Pengurangan Accept-Language dari respons HTTP Anda.
  2. [Opsional] Hapus header Variants yang ditambahkan untuk ikut serta dalam uji coba origin dalam respons HTTP jika Anda tidak tertarik untuk mengirim header ini. Anda juga dapat menggunakan Variants dengan nilai kosong untuk melakukannya.
  3. [Opsional] Hapus header Content-Language yang ditambahkan untuk memilih ikut uji coba origin dalam respons HTTP jika Anda tidak tertarik untuk mengirim header ini.

Durasi uji coba origin

Uji coba origin Pengurangan Accept-Language akan berjalan setidaknya selama enam bulan, yang sesuai dengan sekitar enam versi Chrome. Uji coba origin akan muncul di M109 dan berakhir dengan M114 (artinya rilis Chrome terakhir yang menyediakan uji coba tersebut). Pada saat itu, Chrome akan mengevaluasi masukan dari uji coba asal sebelum melanjutkan pengiriman string Accept-Language yang dikurangi secara bertahap: pertama-tama kurangi header HTTP Accept-Language, lalu kurangi antarmuka JS. Jika situs memerlukan lebih banyak waktu untuk melakukan pengujian, situs tersebut dapat memilih untuk mengikuti uji coba asal penghentian penggunaan berikutnya, yang akan memungkinkan situs tersebut mengakses string Accept-Language lengkap selama minimal enam bulan lagi. Kami akan memublikasikan detail selengkapnya tentang uji coba penghentian penggunaan saat sudah siap.

Berikan masukan

Kirimkan masalah atau masukan apa pun ke repositori GitHub Accept-Language Reduction.