Parser User-Agent

Parse string user-agent untuk mendeteksi browser, sistem operasi, perangkat, dan mesin rendering. Semua pemrosesan di browser Anda.

Deteksi Instan Analisis Lengkap Pemrosesan di Sisi Klien

Cara Menggunakan Parser User-Agent

1

Deteksi otomatis atau tempel UA

User-agent Anda saat ini dimuat otomatis, atau tempel string UA apa pun.

2

Analisis instan

Browser, OS, perangkat, dan mesin teridentifikasi seketika.

3

Salin hasil

Salin analisis lengkap atau komponen individual sesuai kebutuhan.

Apa itu User-Agent?

String user-agent adalah header HTTP yang dikirim browser dan aplikasi ke situs web untuk memperkenalkan diri. Berisi informasi nama browser, versi, sistem operasi, dan perangkat. Situs menggunakannya untuk menyajikan konten yang sesuai dan melacak penggunaan.

Komponen User-Agent

Browser

Nama dan versi aplikasi (Chrome 120, Firefox 121, dll.)

Sistem Operasi

OS dan versi yang mendasari (Windows 11, macOS 14, dll.)

Tipe Perangkat

Bentuk faktor: desktop, ponsel, tablet, atau lainnya

Mesin Rendering

Mesin yang mendasari (Blink, Gecko, WebKit, Trident)

Pertanyaan Umum

Bagaimana parsing user-agent bekerja?

Parser memakai pencocokan pola terhadap tanda tangan browser, OS, dan mesin yang dikenal dalam string UA untuk mengidentifikasi komponen. Hasilnya best-effort karena string UA bisa dipalsukan.

Bisakah mendeteksi bot dan crawler?

Ya. Parser mengenali bot, crawler, dan spider umum dengan mencocokkan pola yang dikenal seperti Googlebot, Bingbot, dan lainnya.

Apa user-agent saya saat ini?

Alat ini otomatis mendeteksi dan menampilkan string user-agent browser Anda saat ini saat halaman dimuat.

Mengapa user-agent Chrome juga memuat kata Safari?

Demi kompatibilitas. Chrome turunan WebKit, yang string UA-nya menyalin milik Safari, yang sendirinya menyalin browser lebih awal - sehingga UA Chrome hari ini berbunyi Mozilla/5.0 ... AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36. Setiap token adalah jabat tangan historis dengan skrip deteksi sisi server lama, dan itulah mengapa token browser yang cocok terakhir biasanya yang sebenarnya.

Apa itu User-Agent Client Hints (UA-CH)?

Pengganti yang lebih ramah privasi yang hadir bersama reduksi user-agent Chrome. Server meminta hint entropi tinggi dengan header respons Accept-CH dan menerima field terstruktur seperti Sec-CH-UA-Platform dan Sec-CH-UA-Full-Version pada permintaan berikutnya. Kode baru sebaiknya memilih deteksi fitur atau UA-CH daripada mem-parsing string UA mentah.

Seberapa andal deteksi berbasis user-agent?

Cukup untuk analitik dan routing kasar, rapuh untuk hal yang menyangkut keamanan. String UA mudah dipalsukan, browser pihak ketiga sering menyalin token Chrome mentah-mentah, dan UA tereduksi membekukan versi minor. Praktik terbaik yang direkomendasikan MDN: deteksi fitur (CSS @supports, if ('IntersectionObserver' in window)) alih-alih browser, dan anggap parsing UA sebagai fallback.

Bisakah saya mengubah atau memalsukan user-agent sendiri?

Ya. DevTools Chrome, Edge, dan Firefox desktop menyediakan emulasi perangkat dengan override UA; Safari punya Develop > User Agent; dan curl menyetelnya dengan -A. Situs yang mengunci konten pada string UA memang bisa dilewati sesuai desain - alasan lain server tidak boleh memperlakukan UA sebagai bukti identitas.

Apa itu user-agent 'tereduksi'?

Rencana pembekuan Chrome (bergulir sejak 2020) perlahan mengupas detail versi dari UA bawaan: versi minor dipatok ke 0 dan sebagian besar informasi perangkat dihapus, menghasilkan sesuatu seperti Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36. Tujuannya membatasi fingerprinting pasif; data presisi pindah ke Client Hints yang opt-in.

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}