User Agent Çözümleyici ve Tarayıcı Bilgilerim

Tarayıcının sunuculara kendini nasıl tanıttığını gör: user agent dizen, Client Hints değerlerin, ekranın, dilin, saat dilimin. İstediğin user agent dizesini yapıştırıp tarayıcı, motor, işletim sistemi ve cihaz türüne ayır. Her şey tarayıcında çözümlenir, hiçbir veri gönderilmez.

Başka bir user agent çözümle

Hazır örnekler

Çözümleme

Client Hints

Tarayıcının user agent dizesinden bağımsız olarak bildirdiği yapılandırılmış değerler. Dize donduruldukça asıl kaynak burası oluyor.

Tarayıcı ortamın

Bu değerler user agent dizesinden değil, çalışan tarayıcıdan okunur. Bir sitenin sana ne gösterebileceğini belirleyen asıl bilgiler bunlardır.

Bu sayfa hiçbir şey göndermez: çözümleme, Client Hints okuması ve ortam bilgileri tamamen tarayıcında çalışır. Yapıştırdığın dize sunucuya gitmez, kaydedilmez.

User agent nasıl çözümlenir?

  1. Kendi user agent dizeni gör

    Sayfayı açtığın anda tarayıcının sunuculara gönderdiği user agent dizesi en üstte yazar ve tek tıkla kopyalanır. Aynı anda tarayıcı, motor, işletim sistemi ve cihaz türü çözümlenir.

  2. Başka bir dizeyi çözümle

    Kutuya merak ettiğin user agent dizesini yapıştır ya da hazır örneklerden birine tıkla. Sonuç sen yazarken güncellenir; yapıştırdığın dize hiçbir yere gönderilmez.

  3. Client Hints değerlerini karşılaştır

    Chromium tabanlı tarayıcılarda navigator.userAgentData da okunur. Windows 10 ile Windows 11 ayrımı ve tam tarayıcı sürümü gibi klasik dizenin artık vermediği bilgiler burada çıkar.

  4. Tarayıcı ortamını incele

    Ekran çözünürlüğü, görünüm alanı, piksel oranı, diller, saat dilimi, çekirdek sayısı, dokunma noktası ve güvenli bağlam aynı sayfada listelenir. Hepsi tarayıcıdan okunur.

User agent nedir?

User agent, tarayıcının her HTTP isteğiyle birlikte gönderdiği bir başlıktır: User-Agent. İçinde tarayıcının adı, sürümü, çalıştığı işletim sistemi ve kimi zaman cihaz modeli yazar. Sunucu bu tek satıra bakarak karşısındakinin ne olduğunu tahmin eder; mobil sayfa mı göndereceğine, hangi indirme bağlantısını önereceğine, isteğin bir bot mu olduğuna çoğunlukla buradan karar verir.

Ama user agent bir kimlik belgesi değil, bir beyandır. Tarayıcı ne yazarsa o gider; istemci tarafında tek satırlık bir ayarla ya da bir eklentiyle değiştirilebilir, curl ile istediğin şey yazılabilir. Bu yüzden güvenlik kararları user agent üzerine kurulmaz. Bir dizeyi çözümlemek, karşı tarafın ne olduğunu değil, ne olduğunu iddia ettiğini söyler.

Türkçede kimi yerde kullanıcı aracısı diye geçse de sektörde herkes user agent der; kaynaklarda, tarayıcı geliştirici araçlarında ve HTTP belirtiminde geçen ad budur.

Neden her tarayıcı Mozilla/5.0 diye başlıyor?

Çünkü otuz yıllık bir taklit zinciri var. 1993’te Mosaic vardı; ertesi yıl çıkan Netscape kendine kod adı olarak Mozilla dedi ve dizesine Mozilla/1.0 yazdı. Netscape çerçeveleri destekleyen ilk tarayıcı olunca siteler dizede Mozilla arayıp çerçeveli sayfayı yalnızca ona göndermeye başladı.

Internet Explorer aynı sayfaları alabilmek için kendini Mozilla/4.0 (compatible; MSIE 4.0) diye tanıttı: yani Mozilla gibiyim, ama aslında IE’yim. Sonra Safari geldi ve KHTML motorundan türediği için like Gecko yazdı, üstelik Mozilla ile de başladı. Chrome hem KHTML’i hem Safari’yi hem Mozilla’yı yazdı. Edge, Chromium’a geçtiğinde dizesine Chrome, Safari ve Mozilla’yı birden koydu ve sonuna Edg ekledi.

Bugün Mozilla/5.0 ile başlamayan neredeyse hiçbir tarayıcı yok ve bu ifade hiçbir şey anlatmıyor. Aynı şekilde like Gecko de, çoğu dizedeki AppleWebKit sürüm numarası da tarihsel kalıntıdır. Bir dizeyi doğru okumak, tam olarak bu yalanların hangisinin ne anlama geldiğini bilmektir.

Bir user agent dizesinin anatomisi

Aşağıdaki dize Windows üzerinde çalışan bir Chrome’a ait. Altı parçadan yalnızca ikisi gerçekten bilgi taşıyor.

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36
Parça Ne anlatır?
Mozilla/5.0 Hiçbir şey. Netscape uyumluluğu için taşınan tarihsel bir kalıntı; bugün neredeyse bütün tarayıcılarda var.
(Windows NT 10.0; Win64; x64) Platform bölümü. Windows çekirdek sürümü ve mimari. NT 10.0 hem Windows 10 hem Windows 11 demektir; bu ikisi dizeden ayrılamaz.
AppleWebKit/537.36 WebKit sürümü. Chrome 2013’te Blink’e geçtiğinden beri bu numara sabit; artık gerçek bir sürüm değil.
(KHTML, like Gecko) Yine kalıntı. WebKit’in atası KHTML’e ve Firefox’un motoru Gecko’ya yapılan uyumluluk beyanı.
Chrome/153.0.0.0 Asıl bilgi. Tarayıcının adı ve sürümü. Küçük haneler artık sıfırlanıyor: gerçek sürüm 120.0.6099.129 olabilir.
Safari/537.36 Safari’ye göre yazılmış siteler bozulmasın diye eklenen uyumluluk beyanı. Tarayıcının Safari olduğu anlamına gelmez.

Dizedeki tanıdık parçalar ve tuzakları

Bir user agent çözümleyicisinin doğru sonuç verip vermediği, aşağıdaki parçaları hangi sırayla aradığına bağlıdır. Bu sayfadaki çözümleyici en özel eşleşmeden en genele doğru ilerler; Edge’i Chrome, Opera’yı Chrome, Chrome’u Safari sanmamasının tek sebebi budur.

Parça Anlamı Tuzağı
Edg/ Microsoft Edge (Chromium) Aynı dizede Chrome ve Safari de yazar. Önce Chrome aranırsa Edge kaybolur.
EdgA/ EdgiOS/ Android ve iOS üzerindeki Edge iOS sürümünde motor Blink değil WebKit’tir.
OPR/ Opera (Chromium) Dizede Chrome yazar. Eski Opera ise Opera/9.80 diye başlar ve gerçek sürümü Version parçasında taşır.
CriOS/ FxiOS/ iOS üzerindeki Chrome ve Firefox Apple kuralı gereği ikisi de WebKit ile çalışır; motoru Blink ya da Gecko sanmak yanlıştır.
SamsungBrowser/ Samsung Internet Chrome sürümünü de taşır ve o sürüm tarayıcının kendi sürümünden geridedir.
; wv) Android WebView Bağımsız bir tarayıcı değil, bir uygulamanın içine gömülü görünüm. Chrome ile karıştırılır.
Version/26.5 Safari/605.1.15 Safari Safari’nin sürümü Version parçasındadır; Safari parçasındaki numara yapı numarasıdır.
Macintosh; Intel Mac OS X 10_15_7 macOS Sürüm dondurulmuş, Apple Silicon da Intel diye yazıyor ve masaüstü modundaki iPad de aynı dizeyi gönderiyor.
Android 10; K Android İndirgenmiş dize. Chrome artık gerçek Android sürümünü ve cihaz modelini yazmıyor.
Trident/ Internet Explorer IE 11 dizesinde MSIE ifadesi geçmez; sürüm rv parçasındadır.

User Agent Client Hints: dizenin yerini alan şey

User agent dizesi, ayrıntısı yüzünden parmak izi çıkarmaya elverişli hâle geldi: işletim sistemi yaması, cihaz modeli ve tam sürüm birleştiğinde bir tarayıcıyı kalabalıkta tek başına ayırt etmeye yetiyordu. Chromium bu yüzden dizeyi dondurmaya başladı ve yerine User Agent Client Hints adında yapılandırılmış bir mekanizma getirdi.

Mantık şu: az bilgi taşıyan alanlar kendiliğinden gönderilir, çok bilgi taşıyanlar ise ancak sunucu açıkça isterse. Tarayıcı her istekte Sec-CH-UA, Sec-CH-UA-Mobile ve Sec-CH-UA-Platform başlıklarını yollar. Cihaz modeli, tam sürüm, mimari ve platform sürümü gibi değerler için sunucunun Accept-CH başlığıyla bunları talep etmesi gerekir. Aynı değerlere JavaScript tarafından navigator.userAgentData ile ulaşılır; yüksek entropili olanlar için getHighEntropyValues çağrısı yapılır ve sonuç bir söz olarak döner.

Bunun pratikteki sonucu, bu sayfanın üst kısmında görünür: Windows 10 ile Windows 11 klasik dizeden ayırt edilemez, Client Hints platform sürümünden ayırt edilir. Aynı şekilde Chrome’un tam sürümü artık yalnızca hints tarafındadır. Firefox ve Safari bu API’yi uygulamadı; o tarayıcılarda geriye yine klasik dize kalıyor.

Soru Klasik dize Client Hints
Windows 10 mu, 11 mi? Ayırt edemez Platform sürümü 13 ve üzeriyse Windows 11
Tam tarayıcı sürümü Yalnızca ana sürüm Dört haneli tam sürüm
İşlemci mimarisi Çoğu zaman yanıltıcı Mimari ve bit genişliği ayrı ayrı
Cihaz modeli Android tarafında artık gizli İstenirse bildirilir
Firefox ve Safari desteği Var Yok

Öne çıkan özellikler

Kendi bilgilerin hazır

Sayfa açılır açılmaz kendi user agent dizen, Client Hints değerlerin ve tarayıcı ortamın yazılı gelir. Tek tıkla kopyalarsın.

Tuzakları bilen çözümleyici

Edge’i Chrome, Opera’yı Chrome, iOS Chrome’unu Blink sanmaz. Kurallar en özelden en genele sıralıdır ve gerçek dizelerle ölçülmüştür.

Belirsizliği gizlemez

Windows 10 ile 11, macOS ile masaüstü modundaki iPad ayrılamadığında bunu uydurmak yerine yazar.

Bot ve araç tanıma

Googlebot, Bingbot, yapay zekâ tarayıcıları, curl, Wget ve HTTP kütüphaneleri tarayıcı gibi gösterilmez; ayrı bir istemci türü olarak işaretlenir.

Ortamın tamamı

Ekran, görünüm alanı, piksel oranı, dil, saat dilimi, çekirdek sayısı, bellek, dokunma noktası ve güvenli bağlam tek listede.

Hiçbir şey gönderilmez

Sunucuya istek yok, üçüncü tarafa çağrı yok. Yapıştırdığın dize de okunan değerler de tarayıcından çıkmaz.

Sıkça Sorulan Sorular

User agent, tarayıcının her HTTP isteğiyle birlikte gönderdiği User-Agent başlığıdır. İçinde tarayıcının adı ve sürümü, çalıştığı işletim sistemi ve kimi zaman cihaz modeli yazar. Sunucular bu tek satıra bakarak mobil sayfa gönderip göndermeyeceklerine, hangi indirme bağlantısını önereceklerine ya da isteğin bir bot olup olmadığına karar verir. Ancak bu bir kimlik belgesi değil, bir beyandır: tarayıcı ne yazarsa o gider ve kolayca değiştirilebilir.

Bu sayfayı açman yeterli: kendi user agent dizen en üstte yazar ve tek tıkla kopyalanır. Hemen altında dizeden çıkarılan tarayıcı, motor, işletim sistemi ve cihaz türü ile birlikte ekran çözünürlüğün, görünüm alanın, dillerin ve saat dilimin gibi tarayıcı bilgilerin listelenir. Bu değerler sunucudan değil, çalışan tarayıcından okunur.

Otuz yıllık bir uyumluluk zinciri yüzünden. Netscape kendine Mozilla dedi, siteler dizede Mozilla aramaya başladı; Internet Explorer aynı sayfaları alabilmek için kendini Mozilla/4.0 (compatible; MSIE 4.0) diye tanıttı. Safari KHTML’den türediği için like Gecko yazdı, Chrome hem Safari hem Mozilla yazdı, Edge de Chromium’a geçince üçünü birden yazıp sonuna Edg ekledi. Bugün Mozilla/5.0 ile like Gecko hiçbir şey anlatmaz.

Değiştirilebilir ve bu yüzden güvenilmez. Tarayıcının geliştirici araçlarından tek satırlık bir ayarla, bir eklentiyle ya da curl -A ile istediğin dizeyi gönderebilirsin. Bu yüzden erişim denetimi, lisans kontrolü ya da güvenlikle ilgili hiçbir karar user agent üzerine kurulmamalıdır. Özellik desteği için doğru yöntem, dizeyi okumak değil, özelliğin kendisini sınamaktır.

Evet, yavaş yavaş. Dizenin ayrıntısı parmak izi çıkarmaya elverişli olduğu için Chromium dizeyi dondurdu: küçük sürüm haneleri sıfırlandı, Android sürümü ve cihaz modeli indirgendi. Yerine Sec-CH-UA ailesi geldi; az bilgi taşıyan alanlar kendiliğinden, cihaz modeli ve tam sürüm gibi alanlar ise sunucu Accept-CH ile isterse gönderiliyor. JavaScript tarafında karşılığı navigator.userAgentData. Firefox ve Safari bu API’yi uygulamadı.

Hayır. Bu sayfada sunucuya giden hiçbir istek yok: çözümleme de, Client Hints okuması da, ekran ve saat dilimi gibi ortam bilgileri de tamamen tarayıcında çalışır. Üçüncü taraf bir servise çağrı yapılmaz, hiçbir değer kaydedilmez. Sekmeyi kapattığında geriye iz kalmaz.

Kolayca hayalindeki işe kavuş!

Şimdi Kayıt Ol
Kolayca Üye Ol
Yazılım Bilgini Göster
Teklifleri Değerlendir