Semua artikel

User-Agent: mengapa string ini begitu berantakan

Coba lihat User-Agent Chrome modern, kamu akan menemukan sesuatu seperti "Mozilla/5.0 ... AppleWebKit/537.36 ... Chrome/120.0 Safari/537.36" — string yang penuh sebutan browser lain yang sebenarnya bukan Chrome. Ini hasil dari puluhan tahun akal-akalan historis, bukan kebetulan.

Asal-usul kata "Mozilla"

Pada era 1990-an, situs mendeteksi kemampuan browser dengan memeriksa apakah User-Agent mengandung kata "Mozilla" (nama kode Netscape Navigator, pemimpin pasar saat itu). Ketika Internet Explorer ingin mendapat konten "canggih" yang sama, ia mulai menambahkan "Mozilla" ke User-Agent-nya sendiri — dan preseden ini melekat selamanya di industri.

Dominasi Android dan browser hemat data di Indonesia

Indonesia adalah salah satu pasar dengan pangsa Android yang sangat tinggi, jauh di atas iOS, didorong oleh banyaknya ponsel kelas entry-level dari berbagai merek. Di masa ketika kuota data masih mahal, browser seperti UC Browser dan Opera Mini populer justru karena fitur kompresi halaman lewat server proxy untuk menghemat data — fitur yang jarang dibutuhkan di pasar dengan broadband murah. Browser semacam ini menyisipkan token khusus di User-Agent (misalnya UCBrowser/ atau OPR/), sehingga kode parsing yang cuma mencari kata "Chrome" bisa salah mengenali browser tersebut.

Kenapa deteksi lewat User-Agent tidak bisa diandalkan

Karena setiap browser baru menambahkan token milik pendahulunya ke User-Agent demi kompatibilitas, string ini berubah jadi tumpukan artefak sejarah, bukan deskripsi akurat tentang browser. Praktik terbaik saat ini adalah mendeteksi langsung dukungan fitur JavaScript/CSS tertentu, bukan mem-parsing User-Agent.

Kegunaannya

  • Mendiagnosis masalah kompatibilitas dengan memeriksa persis browser dan versi apa yang dilaporkan client.
  • Memahami log server tempat User-Agent pengunjung tercatat.
  • Memahami kenapa kode deteksi browser lama berbasis User-Agent sering keliru.

User-Agent Client Hints sebagai pengganti

Alih-alih mem-parsing satu string yang penuh sesak, browser modern berbasis Chromium kini mendukung User-Agent Client Hints — header terpisah seperti Sec-CH-UA, Sec-CH-UA-Platform, dan Sec-CH-UA-Mobile, yang harus diminta secara eksplisit oleh server dan diterima dalam bentuk terstruktur. Ini bagian dari tren "User-Agent Reduction" demi privasi, sehingga seiring waktu string User-Agent klasik akan membawa detail yang makin sedikit.

Coba alat