Saat mengembangkan web, kita kadang perlu menampilkan tampilan yang berbeda tergantung jenis browser web atau sistem operasi, atau memproses statistik berdasarkan platform yang digunakan pengunjung. Salah satu yang digunakan untuk itu adalah string [User-Agent](User Agent) yang ditambahkan browser web ke header permintaan HTTP. Metode membedakan platform dan browser lewat ini memang dipakai luas, tetapi string ini sudah sejak era Netscape menjadi rumit, membingungkan, dan sulit dipahami karena alasan kompatibilitas dan lain-lain. Sekarang kondisinya bahkan lebih parah, sampai-sampai hampir semua browser berpura-pura menjadi browser lain. Sebagai contoh, string User-Agent dari salah satu browser yang saya gunakan adalah sebagai berikut.
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4003.0 Safari/537.36 Edg/81.0.381.0
Tanpa pengetahuan tambahan, hanya dari string User-Agent ini saja kita benar-benar tidak akan tahu browser apa sebenarnya ini. Mozilla Firefox? Chrome? Safari? Edge? Jawabannya adalah Microsoft Edge versi Dev. Platform yang digunakan mungkin masih bisa sedikit dikenali, tetapi jika harus mem-parsing string ini untuk dipakai membedakan platform pengguna, itu pun akan sangat merepotkan.
Untuk mengatasi masalah ini, Google mengusulkan agar string User-Agent dihentikan penggunaannya secara bertahap, dan sebagai gantinya menggunakan [Client Hints](Client Hints). Client Hints berarti memisahkan informasi yang saat ini ditampilkan dalam string User-Agent menjadi 7 bidang (nama browser/versi mayor browser/versi lengkap browser/nama dan versi platform/arsitektur platform/nama model perangkat keras/apakah mobile) lalu menambahkannya ke header permintaan HTTP.
Google mengatakan bahwa dalam tahun ini (2020), string User-Agent di Google Chrome akan dibekukan agar tidak lagi berubah (tidak bisa dihapus karena ada masalah kompatibilitas), dan sebagai gantinya akan mulai menggunakan Client Hints ini. Mozilla, Apple, MS, dan pembuat browser web utama lainnya tampaknya juga berencana mendukung hal ini, tetapi rincian konkretnya masih belum keluar. Jika browser web lain juga mulai menggunakannya, sepertinya tidak akan ada hambatan besar dalam penyebarannya. Namun, melihat langkah Google yang membedakan layanannya terhadap browser selain miliknya sendiri, rasanya sulit juga untuk menyambut usulan ini dengan tangan terbuka.
Isi usulan Client Hints dari Google :
https://wicg.github.io/ua-client-hints/
Sejarah string User-Agent :
Belum ada komentar.