Eğer Windows uygulamaları geliştiriyor veya test ediyorsanız ve hangi HTTP isteklerini gönderdiklerini görmek istiyorsanız, Fiddler ana aracınız olacaktır. Tüm trafiği yakalar, analiz etmenizi, anlık olarak değiştirmenizi ve yeniden üretmenizi sağlar. Bu, varsayılan olarak sistem proxy'sini atlayan UWP uygulamaları ile çalışırken özellikle faydalıdır.
Bu kılavuzda, kurulum, HTTPS yakalama ayarları, UWP ile çalışma, harici proxy bağlantıları ve hata ayıklama API'sinden arka plan isteklerinin izlenmesine kadar tipik kullanım senaryolarını inceleyeceğiz.
Fiddler nedir ve ne için kullanılır
Fiddler, Telerik (şimdi Progress) tarafından geliştirilen bir HTTP proxy hata ayıklayıcıdır. Yerel bir proxy sunucusu gibi çalışır: bilgisayarınızdaki tüm HTTP ve HTTPS istekleri onun üzerinden geçer ve her birini gerçek zamanlı olarak görebilirsiniz. Araç ücretsizdir, iki versiyonu vardır - Fiddler Classic (sadece Windows) ve Fiddler Everywhere (çapraz platform).
Fiddler, tarayıcıdaki Geliştirici Araçları'ndan ne ile farklıdır? Tarayıcı geliştirici araçları yalnızca tarayıcının trafiğini gösterir. Fiddler ise bilgisayarınızdaki herhangi bir uygulamadan gelen istekleri yakalar: masaüstü programları, sistem hizmetleri, Windows arka plan süreçleri, Wi-Fi üzerinden mobil uygulamalar ve özellikle önemli olan, Microsoft Store'dan UWP uygulamaları.
Fiddler'ın çözdüğü tipik görevler:
- Masaüstü uygulamalarının API isteklerini analiz etme - programın ne gönderdiğini, hangi başlıkları, hangi verileri
- Kendi kodunuzu hata ayıklama - uygulamanızın gerçek isteklerini görürsünüz, göndermeyi düşündüğünüz şeyleri değil
- İstekleri ve yanıtları anlık olarak değiştirme - edge durumlarını test etmek için verileri değiştirme
- Arka plan etkinliğini izleme - programın sizin bilginiz olmadan hangi sunuculara "çağrı" yaptığını
- Proxy üzerinden test etme - uygulamanın harici bir proxy sunucusu üzerinden çalışırken nasıl davrandığını kontrol etme
- İstekleri yeniden üretme - yakalanan bir isteği değiştirilmiş parametrelerle yeniden gönderme
Fiddler, kapalı API'lerle çalışan geliştiriciler için özellikle değerlidir - örneğin, bir mobil uygulamanın veya masaüstü istemcisinin protokolünü tersine mühendislik ile çözmek. Programı başlatıyorsunuz, arayüzde gerekli düğmelere basıyorsunuz ve Fiddler'da tüm istekleri görüyorsunuz.
Kurulum ve ilk ayarlar
Fiddler Classic'in kurulumu yaklaşık iki dakika sürer. Resmi web sitesinden telerik.com/fiddler adresinden yükleyiciyi indirin ve çalıştırın. Kurulumdan sonra Fiddler, kendisini Windows sistem proxy'si olarak 127.0.0.1:8888 portunda otomatik olarak kaydeder.
Başlatıldığında, üç alan içeren ana pencereyi göreceksiniz:
- Sol panel (Oturumlar) - gerçek zamanlı olarak yakalanan tüm isteklerin listesi
- Sağ üst panel - seçilen isteğin detayları (başlıklar, gövde, parametreler)
- Sağ alt panel - sunucunun yanıtı
İlk yapmanız gereken şey, filtrelemeyi ayarlamaktır, aksi takdirde listeye tüm Windows sistem trafiği (güncellemeler, telemetri, OneDrive vb.) girecek ve gerekli istekleri bulmak zor olacaktır. Sağ taraftaki Filters sekmesine gidin ve Use Filters seçeneğini etkinleştirin. Show only the following Hosts alanına ilginizi çeken alan adlarını girin.
Fiddler Classic için yararlı kısayol tuşları:
F12- trafiği aç/kapatCtrl+X- oturum listesini temizleCtrl+F- oturumlarda arama yapR- seçilen isteği tekrar gönderShift+Delete- seçilen oturumları sil
Ayrıca oturumların otomatik kaydedilmesini hemen ayarlamanızı öneririz: File → Capture Traffic ve File → Save → All Sessions. Bu, daha sonra kaydedilen trafiğe geri dönmenizi ve çevrimdışı olarak analiz etmenizi sağlar.
HTTPS trafiğini yakalama: sertifika ayarı
Varsayılan olarak Fiddler yalnızca HTTP trafiğini yakalar. HTTPS ile çalışmak için (bu, modern trafiğin %95'inden fazlasını oluşturur) SSL şifre çözümlemesi ayarlamanız gerekir. Fiddler, Man-in-the-Middle gibi çalışır: kendi kök sertifikasını oluşturur ve tüm HTTPS bağlantılarını onunla imzalar.
HTTPS yakalama ayarının adım adım yönergeleri:
- Tools → Options → HTTPS menüsünü açın
- Capture HTTPS CONNECTs seçeneğini işaretleyin
- Decrypt HTTPS traffic seçeneğini işaretleyin
- Açılır listeden ...from all processes seçeneğini seçin
- Actions → Trust Root Certificate butonuna tıklayın
- Sertifikanın Windows sistem deposuna kurulumunu onaylayın
- Fiddler'ı yeniden başlatın
Bundan sonra Protocol sütununda HTTPS yerine CONNECT göreceksiniz ve şifrelenmiş isteklerin ve yanıtların içeriğini görüntüleyebileceksiniz.
⚠️ Önemli: sertifika güvenliği
Fiddler sertifikası yalnızca mevcut Windows kullanıcısının deposuna kurulur. Sertifika dosyasını üçüncü şahıslara iletmemelisiniz - bu, onların HTTPS trafiğinizi yakalamasına izin verir. Hata ayıklama işlemi tamamlandıktan sonra sertifikayı Tools → Options → HTTPS → Actions → Remove Interception Certificates yoluyla kaldırabilirsiniz.
Bazı uygulamalar Sertifika Pinning kullanır - belirli bir sunucu sertifikasını kontrol ederler ve Fiddler üzerinden çalışmayı reddederler. Bu durumda uygulamada bir bağlantı hatası göreceksiniz. Pinning'i aşmak ayrı bir konudur ve bu makalenin kapsamını aşar.
UWP uygulamalarının trafiğini nasıl yakalarım
UWP (Evrensel Windows Platformu) - Microsoft Store'dan uygulamalardır: Posta, Haritalar, Film ve TV, Spotify, Netflix ve daha birçokları. Güvenlik nedenleriyle, izole bir konteynerde (Uygulama Konteyneri) çalışırlar ve sistem proxy'sini kullanmazlar. Bu nedenle, Fiddler'ın normal ayarları onların trafiğini yakalamaz.
Bu sorunu çözmek için Fiddler, özel bir araç sunar - AppContainer Loopback Exemption Utility. Bu, UWP uygulamasını istisnalar listesine ekleyerek, Fiddler'ın yerel proxy'sine erişmesine izin verir.
Yöntem 1 - Fiddler arayüzü üzerinden:
- Menüden WinConfig seçeneğini seçin (araç çubuğundaki düğme veya Tools → Win8 Loopback Exemptions)
- Tüm yüklü UWP uygulamalarının listesi açılacaktır
- İlgili uygulamayı bulun ve yanındaki kutucuğu işaretleyin
- Save Changes butonuna tıklayın
- UWP uygulamasını yeniden başlatın
Yöntem 2 - Komut istemi üzerinden (otomasyon için):
CheckNetIsolation LoopbackExempt -a -n="Microsoft.WindowsMaps_8wekyb3d8bbwe"
Microsoft.WindowsMaps_8wekyb3d8bbwe kısmını gerekli uygulamanın Paket Aile Adı ile değiştirin. Bunu PowerShell'de şu komutla bulabilirsiniz:
Get-AppxPackage | Select-Object Name, PackageFamilyName | Sort-Object Name
İstisna eklendikten sonra UWP uygulaması trafiğini Fiddler üzerinden göndermeye başlayacaktır. İsteklerini oturumlar listesindeki görünür hale gelecektir - genellikle User-Agent veya hedef host'a göre kolayca tanınabilirler.
💡 İpucu: UWP ve HTTPS
UWP uygulamalarının HTTPS trafiğini yakalamak için yalnızca loopback istisnası eklemek yeterli değildir. Ayrıca Fiddler sertifikasını Trusted Root Certification Authorities deposuna Local Machine için (yalnızca mevcut kullanıcı için değil) yüklemeniz gerekir. Bunu certmgr.msc veya grup politikaları aracılığıyla yapabilirsiniz.
Filtreler, kesme noktaları ve istekleri değiştirme
Fiddler'ın hata ayıklama için en güçlü üç işlevi, oturum filtreleme, kesme noktaları ve AutoResponder'dır. Her birini inceleyelim.
Oturum filtreleme
Filters sekmesi yalnızca gerekli istekleri göstermeye olanak tanır. Temel seçenekler:
- Show only the following Hosts - alan adına göre filtre (örneğin,
api.example.com) - Show only if URL contains - URL'nin bir kısmına göre filtre
- Show only if response Content-Type - yalnızca JSON, XML, resimler vb.
- Hide if URL contains - gürültü isteklerini hariç tutma (örneğin,
telemetry,analytics)
Ayrıca, hızlı komutlar için pencerenin altındaki QuickExec alanını kullanabilirsiniz. Örneğin, select status 404 komutu, 404 hatası olan tüm istekleri vurgular, bold api komutu ise URL'de "api" içeren tüm oturumları kalın yapar.
Kesme noktaları (Breakpoints)
Kesme noktaları, isteği veya yanıtı gönderilmeden/almadan önce durdurmanıza ve içeriği manuel olarak değiştirmenize olanak tanır. Bu, kod hata ayıklayıcısındaki bir duraklama noktasına benzer, ancak HTTP için.
- Rules → Automatic Breakpoints → Before Requests - her isteği gönderilmeden önce durdurur
- Rules → Automatic Breakpoints → After Responses - her yanıtı uygulamaya iletilmeden önce durdurur
- Oturuma sağ tıklayın → Breakpoint → Break on Request - belirli bir URL için nokta kesme noktası
İstek durdurulduğunda, herhangi bir başlığı, isteğin gövdesini, URL'yi değiştirebilir ve devam etmek için Run to Completion butonuna basabilirsiniz. Bu, değiştirilen verilerle uygulamanın davranışını test etmek için özellikle faydalıdır.
AutoResponder
AutoResponder, sunucu yanıtlarını değiştirmek için bir araçtır. Bir kural oluşturursunuz: "eğer URL belirli bir kalıpla eşleşiyorsa - bu dosyayı/yanıtı döndür". Kullanım alanları:
- Gerçek bir arka uç olmadan API ile uygulamayı test etme
- Sunucu hatalarını simüle etme (500, 503, zaman aşımı)
- Kaynakları değiştirme - sunucu sürümünün yerine yerel JS/CSS sürümünü yükleme
- Geliştirmeyi hızlandırma - yavaş dış API isteklerini önbelleğe alma
Fiddler üzerinden harici proxy bağlantısı
Fiddler'ın önemli özelliklerinden biri, "proxy üzerinden proxy" (upstream proxy) modunda çalışmaktır. Fiddler, trafiği yerel olarak yakalar ve ardından harici bir proxy sunucusuna yönlendirir. Bu, istekleri hata ayıklarken IP adresini veya coğrafi konumu değiştirmenizi sağlar.
Ne zaman gerekir:
- Kurumsal proxy üzerinden çalışırken uygulamanın davranışını test etme
- Coğrafi bağımlı içeriği kontrol etme - uygulamanın başka bir ülkeden nasıl çalıştığını görmek
- Kendisi proxy kullanan bir uygulamayı hata ayıklama
- IP kısıtlamaları olan API'leri test etme (IP beyaz listeleme)
Fiddler Classic'te upstream proxy ayarlama:
- Tools → Options → Gateway menüsünü açın
- Manual Proxy Configuration seçeneğini seçin
- Proxy alanına proxy adresini
host:portformatında girin - Proxy kimlik doğrulama gerektiriyorsa - kullanıcı adı ve şifreyi belirtin
- OK butonuna tıklayın ve trafik yakalamayı yeniden başlatın
Fiddler, upstream olarak HTTP, HTTPS ve SOCKS5 proxy'lerini destekler. SOCKS5 için kayıt formatı biraz farklıdır:
socks=proxy.example.com:1080
Coğrafi bağımlı uygulama davranışlarını test etmek için rezidans proxy'leri iyi bir seçimdir - bunlar, gerekli ülkeden gerçek ev kullanıcılarının IP'lerini kullanır ve uygulama, bu bölgeden gerçek bir kullanıcının alacağı yanıtları alır. Bu, API'nin coğrafyaya bağlı olarak farklı içerikler döndürmesi durumunda önemlidir.
Hata ayıklama sırasında büyük veri yüklemeleri için yüksek hız gerekiyorsa, veri merkezi proxy'leri uygundur - bunlar, istikrarlı bir bağlantı ve minimum gecikme sağlar, bu da ağır API'lerle çalışırken kullanışlıdır.
💡 FiddlerScript ile dinamik proxy seçimi
FiddlerScript aracılığıyla farklı hostlar için farklı upstream proxy'ler ayarlayabilirsiniz. Örneğin, api.us-service.com adresine gelen istekleri Amerikan proxy'si üzerinden yönlendirebilir, diğerlerini ise doğrudan gönderebilirsiniz:
static function OnBeforeRequest(oSession: Session) {
if (oSession.HostnameIs("api.us-service.com")) {
oSession["x-OverrideGateway"] = "us-proxy.example.com:8080";
}
}
Pratik senaryolar: ayrıştırma, API testi, coğrafi geçiş
Fiddler ile kolayca çözülebilecek belirli görevleri inceleyelim.
Senaryo 1: Mobil uygulamanın API'sinin tersine mühendisliği
Uygulamadaki eylemleri otomatikleştirmek istiyorsunuz, ancak kamuya açık bir API'si yok. Çözüm: Uygulamayı bir Android emülatöründe veya Windows istemcisi üzerinden çalıştırın, Fiddler'ı proxy olarak kullanacak şekilde ayarlayın ve gerekli eylemleri gerçekleştirirken tüm istekleri kaydedin.
Kayıttan sonra tam bir resim elde edersiniz: uç noktalar, istek formatları, kimlik doğrulama başlıkları, tokenlar. Bu veriler, kendi istemcinizi yazmak veya otomasyon için betikler oluşturmak için kullanılabilir.
Senaryo 2: Pazar yerinin ayrıştırıcısının hata ayıklanması
Wildberries, Ozon veya diğer pazar yerleri için bir ayrıştırıcı geliştirirken, genellikle isteklerin neden engellendiği anlaşılamaz. Fiddler, tarayıcıdan geçen (geçen) isteklerle ayrıştırıcıdan geçen (engellenen) istekleri karşılaştırmanıza ve başlıklar, sıralama, çerez değerleri veya TLS parmak izi gibi farklılıkları bulmanıza yardımcı olur.
Tipik bir bulgu: ayrıştırıcı, başlıkları farklı bir sırayla gönderiyor, Accept-Language eksik veya User-Agent Python sürümünü içeriyor. Bu ayrıntıları ayrıştırıcı kodunda düzelterek, engellenme olasılığını azaltırsınız.
Senaryo 3: Coğrafi bağımlı içeriğin test edilmesi
Uygulamanız, farklı ülkelerden gelen kullanıcılara farklı içerikler gösteriyorsa, gerçek IP'lerle test etmeniz gerekir. Fiddler'ı gerekli bölgeden upstream proxy ile ayarlayın, uygulamayı başlatın - ve o ülkenin kullanıcısının gördüğü tam olarak aynı şeyi göreceksiniz, artı tüm isteklerin tam kaydını.
Senaryo 4: Uygulamaların arka plan etkinliğinin izlenmesi
Yüklenmiş bir programın nereye "çağrı" yaptığını bilmek ister misiniz? Fiddler'ı başlatın, programı başlatın, 5-10 dakika bekleyin. Oturumlar listesinde programın eriştiği tüm hostlar görünecektir. Bu, üçüncü taraf yazılımların güvenlik denetimi, telemetri veya istenmeyen bağlantıları kontrol etmek için faydalıdır.
Senaryo 5: Yeniden üretim için isteklerin dışa aktarılması
Fiddler, yakalanan istekleri cURL formatında dışa aktarmanıza olanak tanır; bu, terminalde hemen çalıştırılabilir veya Postman'a yapıştırılabilir. Oturuma sağ tıklayın → Copy → cURL Request. Bu, bir isteği bir meslektaşınıza iletmek veya API'yi belgelemek için kullanışlıdır.
Fiddler Classic vs Fiddler Everywhere: hangisini seçmeli
Telerik, ürünün iki versiyonunu desteklemektedir ve bunlar arasında seçim yapmak her zaman açık değildir. Ana farklılıkları inceleyelim.
| Parametre | Fiddler Classic | Fiddler Everywhere |
|---|---|---|
| Platformalar | Sadece Windows | Windows, macOS, Linux |
| Fiyat | Ücretsiz | Ücretli abonelik (ücretsiz plan mevcut) |
| UWP desteği | Evet (WinConfig üzerinden) | Sınırlı |
| FiddlerScript | Evet (JScript.NET) | Hayır (Kurallar kullanılır) |
| Arayüz | Eski ama işlevsel | Modern, kullanışlı |
| Ekip çalışması | Hayır | Evet (bulut koleksiyonları) |
| Genişletilebilirlik | .NET eklentileri | Sınırlı |
| Sistem trafiğini yakalama | Tam | Tam |
Ne zaman Fiddler Classic'i seçmelisiniz: yalnızca Windows'ta çalışıyorsanız, UWP uygulamaları ile çalışmanız gerekiyorsa, otomasyon için FiddlerScript kullanıyorsanız veya tamamen ücretsiz bir sürüme ihtiyacınız varsa.
Ne zaman Fiddler Everywhere'i seçmelisiniz: macOS veya Linux'ta çalışıyorsanız, modern bir arayüze ihtiyacınız varsa, ortak istek koleksiyonları ile ekip çalışması önem taşıyorsa veya CI/CD boru hatları ile entegrasyon istiyorsanız.
Ayrıca alternatifleri de belirtmek gerekir: Charles Proxy (ücretli, macOS'ta popüler), mitmproxy (ücretsiz, konsol tabanlı, çok esnek), Wireshark (paket düzeyinde çalışır, HTTP değil). Her aracın güçlü yönleri vardır, ancak çoğu Windows uygulama hata ayıklama görevleri için Fiddler Classic en iyi seçim olmaya devam etmektedir.
Tipik sorunlar ve çözümleri
Fiddler ile çalışırken zaman zaman tipik sorunlar ortaya çıkabilir. İşte en yaygın olanları ve çözümleri.
Sorun: Fiddler açıkken uygulama çalışmıyor
Nedenler: Sertifika Pinning, uygulamada sertifika pinning kullanımı veya uygulama Fiddler sertifikasına güvenmiyor olabilir. Çözümler:
- Fiddler sertifikasını Local Machine → Trusted Root deposuna yükleyin
- Uygulamanın sertifika pinning kullanıp kullanmadığını kontrol edin
- SSL istisnalarına host ekleyin: Tools → Options → HTTPS → Skip Decryption for following hosts
Sorun: Fiddler kapatıldıktan sonra internet çalışmıyor
Fiddler, acil kapatma sırasında sistem proxy'sini kaldırmayı başaramadı. Çözüm: Windows Ayarları → Ağ → Proxy menüsünü açın ve manuel proxy'yi kapatın. Veya Fiddler'ı tekrar başlatın ve normal bir şekilde kapatın.
Sorun: Sadece CONNECT tünelleri görünüyor, ancak HTTPS içeriği yok
HTTPS yakalama ayarlanmamış. Sertifika ayarı bölümüne geri dönün ve Decrypt HTTPS traffic seçeneğinin işaretli olduğundan ve sertifikanın sistem deposuna yüklendiğinden emin olun.
Sorun: UWP uygulamasının trafiği Fiddler'da görünmüyor
Bu uygulama için loopback istisnası eklenmemiştir. WinConfig kullanın (UWP ile ilgili bölümde açıklandığı gibi) ve istisna ekledikten sonra uygulamayı yeniden başlatın.
Sorun: Upstream proxy çalışmıyor (bağlantı hatası)
Kontrol edin: proxy adresinin ve portunun doğruluğu, kullanıcı adı/şifrenin geçerliliği, proxy sunucusunun erişilebilirliği (Fiddler olmadan doğrudan bağlanmayı deneyin). Ayrıca, proxy'nin gerekli protokolü desteklediğinden emin olun - tüm HTTP proxy'leri HTTPS tünelleme desteğine sahip değildir.
Sonuç
Fiddler, Windows uygulamalarında HTTP trafiği ile çalışan herkes için vazgeçilmez bir araçtır. Gerçek zamanlı olarak tüm istekleri görmenizi, anlık olarak değiştirmenizi, uygulamaların farklı koşullardaki davranışlarını test etmenizi ve tarayıcı Geliştirici Araçları ile gerçekleştirilemeyecek görevleri çözmenizi sağlar. Özellikle, loopback istisnaları mekanizması aracılığıyla UWP uygulamalarını desteklemesi, çoğu alternatifte bulunmayan benzersiz bir fırsattır.
Coğrafi bağımlı uygulama davranışlarını test etmek veya harici proxy'ler aracılığıyla çalışma kontrolü yapmak için - Fiddler'da upstream proxy ayarlayın. Belirli ülkelerden doğru testler için gerçek IP'lere ihtiyacınız varsa, rezidans proxy'lerine dikkat edin - bunlar en gerçekçi coğrafyayı sağlar ve test edilen hizmetlerin blokaj riskini en aza indirir.
Fiddler Classic ile başlayın - ücretsizdir, iyi belgelenmiştir ve Windows'ta hata ayıklama için %90'lık görevleri kapsar. İhtiyaçlarınız arttıkça Fiddler Everywhere'a geçebilir veya daha esnek otomasyon için mitmproxy gibi özel araçlarla çalışma sürecinizi tamamlayabilirsiniz.
```