Bir şeyler kodlarken illa ki orta bir yerde denemeniz gerekir. İçgüdüsel olarak eliniz echo (ya da oluşturduğunuz kısayolunu) yazma, beyniniz ise tanımladığınız, işin içinde olan değişkenleri ekrana basma eğilimine girer.

Ekrana bastığınız, bir ziyaretçi için hiçbir şey ifade etmeyecek o string kalabalığı, sizin için çok şey ifade etmektedir. Doğru değerleri görüp rahatlar, ya da hatalı değer görüp “ben nerede yanlış yaptım” demeye başlarsınız. Kodlamada profesyonelliğiniz arttıkça bunu yapma aralığınız artar, fakat hiçbir zaman sıfıra inmez.

İşin bir gereksinimi bu. Peki, karmaşık bir AJAX çağrısı, ya da ekrana bir şey basmanın mümkün olmayan durumlarda, browser pencerenizin arkasında neler oluyor, görmek istediniz mi?

Uu beybi, güzel bir hareketlenme oldu bende..

Evet, böyle bir şey var. Browserınızın ya da herhangi bir programın yarattığı HTTP requestları takip edebileceğiniz; duruma göre modifiye edebileceğiniz; hatta bunları koşula bağlayabileceğiniz kadar güzellikte programlar mevcut. Bunlara Web Debugger Proxy denmekte.

Internet 33.6k iken, Internet Kafe kavramı yeni yeni oluşmaya başlamışken, bir ana bilgisayar üzerinden dağıtılırdı internet trafiği. Genellikle Windows NT çalıştıran bu makinada, bir yazılım; ahlaka mugayir sitelere girilmesin diye URL bazlı filtreleme yapar, tüm makinaların girdiği URL’ler de ekrana düşerdi.

İşte bu zımbırtı bir proxy server‘dı. Bizim web debugger proxy‘lerimiz de benzer mantıkla çalışmakta. Trafiği kendi üzerlerinden geçirip, gelen giden trafiği ekrana basan programlar olarak düşünebiliriz. Peki bunun bize web geliştirme esnasındaki avantajı nedir?

  • Yazının başında bahsedildiği gibi, HTTP requestlar üzerinden debugging yapabilirsiniz. Çalışan sistem üzerinde geliştirme yapıyorsanız, custom HTTP headerlar ekleyip istediğiniz verileri uygulama tarafında oraya inject edip, takibatını debugger proxy ile yapabilirsiniz.
  • Siteniz kaç tane HTTP request yapıyor, bunlar kaç saniye sürüyor görebilir; sitenizin Internet üzerindeki performansı hakkında bir fikir sahibi olabilirsiniz. Hatta trafik hızını kısıtlayıp, yavaş bağlantılarda siteniz nasıl geliyor, görebilirsiniz.
  • Browserınızın yaptığı isteklere web sunucunuz nasıl tepki veriyor görebilirsiniz. Tüm HTTP requestları ve response code’ları görebildiğiniz için, redirect işlemlerini rahatlıkla takip edebilir, cookie transferini, session değişkenlerinin aktarımını izleyebilir; statik dosyalar için web sunucunuzda adam gibi mod_expires ayarı yapıp yapmadığınızı tesbit edebilir, GZIP sıkıştırmanızın mantıklı çalışıp çalışmadığını kontrol edebilirsiniz.
  • Yapılan veya gelen HTTP request/responselar ile browser/server işlemeden önce elleşebilirsiniz. Amaç dışı kullanımlarla sitenizin/sunucunuzun patlayıp patlamadığını görebilir, ona göre kalenizi sağlamlaştırabilirsiniz.
  • Sitenizi farklı user agentlar ile test edebilir, gelip giden trafiği takip edebilirsiniz. (özellikle device spesific siteler için)
  • Flash developer iseniz (hörmetler), AMF mesajlarınızı yakalayabilir; içine göz atabilirsiniz.
  • Bunun gibi bilimum şey yapılabilir..

Güzelmiş, alternatiflerimiz neler?

Arama yaparsanız göreceksiniz, adam gibi 2 alternatifiniz var aslında. Fiddler ve Charles. İkisini de denemiş biri olarak, ikisinin de iyi iş çıkardığını gönül rahatlığı ile söyleyebilirim. Kendi aralarında kapıştıkları birkaç konu var, çok çok basit bir anlatımla, artı ve eksileri sıralamak isterim.

Fiddler’in artıları

  • Beleş.
  • Ufak.
  • Hızlı (az sistem kaynağı kullanmakta)
  • İşinize yarayabilecek her şeyi barındırıyor.
  • Plugin desteği var.

Fiddler’ın eksileri

  • Platform bağımlı (sadece Windows işletim sistemleri için – Ayrıca geliştiricisi de Microsoft)
  • AMF decoding yok
  • Arayüzü çok başarılı değil.

Charles’ın artıları

  • AMF desteği var.
  • Cross platform, (Windows Linux Mac)
  • Açılıştaki sürahi mi desem, vazo mu desem obje harici gayet şık.

Charles’ın eksileri

  • 50$
  • Java ile yazıldığı için CPU ve belleğe aç
  • Bir üst maddeyle alakalı olarak, biraz zorladığınızda tıkanıyor
  • 50$ demiş miydim?

Sadece HTTP yetmiyorsa

Webciye yetecektir; fakat herhangi bir protokolü TCP/IP paketleri bazında röntgenlemek istiyorsanız, size de programlar var. En bilinenleri Ethereal ve yeni kardeşi Wireshark. Bu programların kullanım amacı çok daha farklıdır, sadist webci değilseniz, web işinde bunlar sizi aşacaktır. Aklınıza bir gün “yahu bu WPA’da four way handshaking nasıl oluyor” gibisinden bir soru takılırsa, bu iki program size yardımcı olacaktır.

Görelim

İndirelim

Toparlarsak

Bu işe ilk girdiğim program Charles olmasına rağmen, ücretli oluşu ve en azından Windows’ta hantal kalması yüzünden ben birkaç senedir oyumu Fiddler’dan yana kullanıyorum.

Web işinde olan herkese tavsiye.