Tarayıcı Tanımlaması Nedir?
Tarayıcı tanımlaması (browser sniffing) sunucu veya istemci taraflı kullanılabilen ve ziyaretçi hangi tarayıcıyı kullandığını tespit etmeye yarayan bir yöntemdir. Bu yöntem sonucu elde edilen bilgi hangi tarayıcı ve işletim sistemini kullanızı gösterir. Web sitesi geliştiricileri ise bunu çeşitli amaçlarla kullanabilir.
Kısa Bir Tarih
Web’in bir dönenimde Netscape ve Internet Explorer çekişmesi vardı. Her iki tarayıcı geliştiricisi de kullanıcıların daha çok ilgisini çekmek için geliştirdikleri tarayıcıya çeşitli özellikler ekliyordu. Netscape taraycı ve kullanıcı arasında etkileşimi arttıracak olan Javascript dilini hazırladı. Microsoft ise ikili anlaşmazlıklardan dolayı kendi dilini, JScript, hazırlamak durumunda kaldı. Başlarda birbirine oldukça benzeyen bu iki dil iki üç yıl içinde birbirlerinden oldukça ayrılmaya başladı. Sonuç olarak sayfaya biraz dinamik öğeler katmak isteyen web geliştiricileri hazırladıkları web sayfasını ek olarak diğer web tarayıcısı için de hazırlamak zorunda kaldılar. Ziyaretçliler ise kendi kullandıkları tarayıcıyla uyumlu web sayfasını görüntülemeye başladılar. Yani aynı sayfanın bir Netscape versiyonu ve bir de Internet Explorer versiyonu bulunmaktaydı. Bu ikisini birleştirmek ve gelen ziyaretçinin web sayfasını otomatik olarak kendine uygun web sayfasını açması için web geliştiricileri tarayıcı kimliklerine bakmaya başladılar. Şimdi Netscape aktif geliştirilen tarayıcılar arasında değil ve yep yeni oyuncular var. Bahsi geçen dönemde hazırlanan web sayfaları yeni web tarayıcılarda çeşitli sıkıntılara yol açmaktadır. Browser sniffing işte tam da bu sorunların sebebi olmaktadır.
Browser sniffing adını verdiğimiz yöntem, çeşitli şekillerde (sunucu taraflı, istemci taraflı) yapılmaktadır. En belirgin olan yöntem Javascirpt yardımı ile tarayıcının kimliğine bakılmasıdır. Javascript uç birimden verilen navigator.userAgent komutu kullanmakta olduğunuz tarayıcının kimliğini gösterecektir. Bu kimlikteği bilgiler yardımıyla tarayıcınızın ne olduğuna, sürümüne ve kullandığınız işletim sistemine ulaşılmaktadır.
Günümüzde ise web tarayıcılarının sayısının artması ve birçoğunun güncel web standartlarını yakından takip eder olması sebebiyle bu yöntemin işlevselleği tamamen kaybetmiştir. Eski ve geçerliliğini yitirmiş tarayıcı tanımlama kodları barındıran web sayfalarının sayısı hiç de azımsanmayacak derecede olması, webin herkese açık olmasını diğer bir değişle herkesçe erişilebilmesini engellemektedir. Bu anlamda web geliştiricilerinin, büyük kurumların, şirketlerin bilgi işlem yetkililerinin benzer, güncelliğini web sitelerindeki güncelliğini yitirmiş kodları güncellemeleri gerekmektedir. Browser sniffing, sürekli yeni tarayıcıları, tarayıcı kimliklerinin takip edilmesini gerektirir. Bu yüzden bu yöntemle hazırlanan kodun bakımı zordur.
Opera’nın site uyumsuzlukları ile ilgili almış olduğumuz geri bildirimleri/şikayetleri incelediğimizde gördük ki, uyumsuzlukların büyük çoğunluğunun kaynağını sitelerde bulunan “Tarayıcı Tanımlaması” kaynaklı olduğu görülmektedir. Hatta bu konuda çeşitli örnekler görmek adına bu tip sorunları ele aldığımız forumumuzu inceleyebilirsiniz. Şu an geçici bir çözüm olarak Opera’nın tarayıcı tanımlamasının değiştirilmesi çoğu zaman işe yarar bir çözüm olarak karşımızda durmaktadır. Bunun anlamı şudur: girdiğiniz web sitesi Opera’yı engellemektedir ve gelecekteki herhangi farklı bir tarayıcıyı engelleme potansiyeline sahiptir.
Tarayıcı Tanımlaması Neleri İçerir
Tarayıcı tanımalaması, tarayıcıya ilişkin temel bilgiler yer almaktadır. Örneğin Opera’nın tarayıcı tanımlamamızın aşağıdaki gibi olduğunu var sayalım ve inceleyelim.
[codesyntax lang=”text” lines=”no” container=”div” capitalize=”no” strict=”no” blockstate=”expanded”]
Opera/9.80 (Windows NT 6.1; U; tr) Presto/2.10.229 Version/11.62
[/codesyntax]
![]() |
|
---|---|
Opera | İsim : ![]() |
9.80 | Opera versiyonu -> site uyumsuzlukları nedeniyle eski versiyon tanımlanmıştır. Güncel versiyon aşağıdadır. |
Windows NT 6.1 | İşletim sistemi: ![]() |
U | Güvenlik değerleri:
|
tr | Dil etiketi, kullanıcının tarayıcıyı hangi dilde kullandığını gösterir. (Chrome’da bulunmamakta) tr = ![]() |
Presto | Opera‘nın tarayıcı motoru (Diğer tarayıcılarda Trident, Gecko, Webkit olarak geçmekte) |
2.10.289 | Presto derlemesi |
Version | Tarayıcı derlemesi |
12.00 | Derleme 12.00 |
Son Söz
Gördüğünüz üzere tarayıcı tanımlamasının kullanım amacı eskiden oldukça verimli iken, günümüzde bu anlamda kullanımı çeşitli sorunlar ortaya çıkarmakta, daha uyumlu ve açık bir Web yaratmak anlamında zorluk oluşturmaktadır. Bu sebepten ötürü bu yöntem yerine özellik tanımlamalı kodlama yapmanızı öneriyoruz…
Yardımcı Bağlantılar
- Opera’da User Agent Switcher Kullanımı
- Tarayıcı Tanımlama Kodu 1 | 2
- Broswer Sniffing
- UserAgentString.com
- Browser ID strings
