Charles Proxy — nedir, kurulumu ve HTTPS trafiği yakalama

Yazar: IT Sectr Yayınlanma: 2026-05-08 Okuma süresi: 8 dk

Charles Proxy, HTTP/HTTPS trafiğinde hata ayıklamak için kullanılan, geliştiricilerin ağ isteklerini yakalamasına, görüntülemesine ve değiştirmesine olanak tanıyan çapraz platformlu bir proxy sunucusudur. Aracın yaratıcısı Karl von Randow'a (2025) göre Charles, 2004'ten beri dünya çapında 50.000'den fazla şirkette kullanılmaktadır. Proxy, WiFi üzerinden mobil cihazlardan trafik yakalamayı, kök sertifika kurulumuyla HTTPS proxy'yi ve API analizi için geniş bir araç setini destekler.

Önemli Noktalar

  • Charles Proxy, gelişmiş hata ayıklama özellikleriyle ağ trafiğini yakalamak ve analiz etmek için bir HTTP/HTTPS proxy sunucusudur
  • HTTPS proxy, cihaza Charles kök sertifikası kurularak uygulanır ve şifrelenmiş trafiğin görüntülenmesini sağlar
  • Rewrite ve Breakpoints, sunucu veya istemci kodunu değiştirmeden istekleri ve yanıtları anında değiştirmek için güçlü araçlardır
  • Map Local ve Map Remote, test için ağ kaynaklarını yerel dosyalar veya alternatif sunucularla değiştirmeye olanak tanır
  • Throttle, zayıf bağlantı koşullarında uygulama davranışını test etmek için yavaş ve dengesiz ağ bağlantılarını simüle eder

Charles Proxy Nedir?

Charles Proxy, istemci ve sunucu arasında aracı görevi gören bir HTTP proxy ve HTTP monitörüdür. Tüm istekler ve yanıtlar Charles üzerinden geçer ve içeriklerini görüntülemenize, yapılarını analiz etmenize, verileri gerçek zamanlı olarak değiştirmenize ve çeşitli ağ koşullarını simüle etmenize olanak tanır. Windows, macOS ve Linux için kullanılabilir.

Tarihçe ve Konumlandırma

Charles Proxy, 2004 yılında Karl von Randow tarafından oluşturuldu ve ağ trafiği hata ayıklama için en popüler araçlardan biri olmaya devam ediyor. Ücretsiz alternatiflerin aksine Charles, 30 günlük deneme süresi olan ücretli bir lisans sunar. Araç, HTTP iletişimi üzerinde tam kontrol gerektiren mobil uygulama geliştiricileri, web geliştiricileri ve QA mühendisleri için profesyonel bir çözüm olarak konumlandırılmıştır.

Platform Uyumluluğu

Charles, bilgisayarda bir sistem proxy'si olarak çalışır ve aynı ağdaki herhangi bir cihazdan (Android, iOS, simülatörler, emülatörler, web tarayıcıları ve IoT cihazları) trafiği yakalayabilir. HTTPS'yi yakalamak için her cihaza Charles kök sertifikasını kurmanız gerekir. Trafik HTTP/1.1 ve HTTP/2 (kısmi) üzerinde desteklenir. HTTP/3 (QUIC) yakalama düzeyinde desteklenmez.

Charles Proxy Nasıl Çalışır

Charles, MITM (Man-in-the-Middle) proxy ilkesiyle çalışır: bir istemci Charles üzerinden bir istek gönderdiğinde, araç isteği yakalar, hedef sunucuya iletir, yanıtı alır ve istemciye geri gönderir. Tüm trafik Charles üzerinden geçer ve analiz edilip değiştirilebilir.

Proxy Mimarisi

Başlatıldığında Charles, 8888 numaralı bağlantı noktasında (varsayılan) bir yerel HTTP proxy oluşturur. İşletim sistemi veya uygulama bu proxy'yi kullanacak şekilde yapılandırılır. Tüm HTTP istekleri önce Charles'a gönderilir, ardından Charles hedef sunucuya tam bir istemci olarak davranır. HTTPS için Charles kendi SSL proxy tekniğini kullanır: her etki alanı için anında bir sertifika oluşturur ve Charles kök sertifikası tarafından imzalanır. Kök sertifika cihazda güvenilir olarak kurulursa, Charles HTTPS trafiğinin şifresini çözebilir ve görüntüleyebilir.

Çalışma Modları

Charles iki modu destekler: Proxy(klasik proxy sunucusu) ve SOCKS Proxy(UDP ve TCP trafiği için). Web geliştirme için standart HTTP proxy kullanılır. Mobil cihazlar için — Charles'ın çalıştığı bilgisayarın IP adresini belirterek cihazda WiFi Proxy yapılandırın. macOS, iOS simülatörü için otomatik proxy yapılandırmasını destekler.

xml
<!-- Charles desteğiyle Android için network_security_config.xml yapılandırması -->
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <!-- Debug yapısında Charles sertifikasına güven -->
            <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>

Charles Proxy'nin Temel Özellikleri

Charles Proxy, basit istek yakalamanın çok ötesine geçen trafik analizi ve değişikliği için bir dizi profesyonel araç sağlar.

Rewrite ve Breakpoints

Rewrite aracı, isteklerin veya yanıtların belirli bölümlerini (başlıklar, URL parametreleri, yanıt gövdesi) otomatik olarak değiştirmenize olanak tanır. Örneğin, User-Agent başlığını başka bir cihazın değeriyle değiştirebilir veya belirli çerezleri kaldırabilirsiniz. Breakpoints bir hata ayıklayıcı gibi çalışır: istek seçilen bir aşamada (göndermeden önce veya almadan önce) durdurulur ve geliştirici devam etmeden önce içeriğini manuel olarak değiştirebilir. Bu, hata yanıtlarının veya standart olmayan durumların işlenmesini test etmek için kullanışlıdır.

Map Local ve Map Remote

Map Local, bir ağ kaynağını (CSS, JS, JSON) diskteki yerel bir dosyayla değiştirmenize olanak tanır. Bu, ön uç geliştirmede vazgeçilmezdir: CSS/JS'yi değiştirebilir ve bir sunucuya dağıtmadan hemen sonucu görebilirsiniz. Map Remote, istekleri bir URL'den diğerine yönlendirir — örneğin, test için üretim sunucusundan staging sunucusuna. Her iki araç da joker karakterleri destekleyen URL desenleriyle çalışır.

Throttle ve Ağ Koşulları Simülasyonu

Throttle aracı, önceden ayarlanmış profilleri (3G, EDGE, GPRS, DSL, WiFi) kullanarak çeşitli ağ bağlantısı türlerini simüle etmenize olanak tanır. Hız sınırını (indirme/yükleme), gecikme süresini, paket kaybını ve kararlılığı yapılandırabilirsiniz. Bu, yavaş veya dengesiz bağlantılarda uygulama davranışını (doğru zaman aşımı işleme, yeniden deneme mantığı, çevrimdışı mod) test etmek için kritiktir.

ProfilİndirmeYüklemeGecikmeTipik Senaryo
3G780 kbps330 kbps200 msZayıf mobil sinyal ile test
EDGE130 kbps50 kbps400 msAşırı yavaş bağlantı
GPRS50 kbps20 kbps500 msMümkün olan minimum bağlantı
DSL2 Mbps256 kbps50 msEv kablolu bağlantısı
WiFi10 Mbps10 Mbps10 msİyi WiFi bağlantısı

Auto Save ve Recording

Charles, trafik oturumlarını .chls dosyalarına otomatik olarak kaydedebilir, böylece daha sonra analiz etmenize veya meslektaşlarınızla paylaşmanıza olanak tanır. Recording Control, hangi trafiğin kaydedileceğini (etki alanına, içerik türüne veya durum koduna göre) esnek bir şekilde yapılandırmanızı sağlar. Bu, uzun vadeli API izleme için uygundur.

Mobil Cihazlar için Charles Proxy Kurulumu

Mobil uygulama trafiğinde hata ayıklamak için Charles, bir WiFi Proxy olarak yapılandırılır: bilgisayarla aynı ağdaki tüm cihazlar trafiği Charles üzerinden yönlendirebilir. Doğru HTTPS yapılandırması, mobil cihaza Charles sertifikasının kurulmasını gerektirir.

Android'de Kurulum

Android için: Settings → WiFi → Advanced → Proxy'yi açın, Manual'i seçin ve 8888 bağlantı noktasıyla birlikte bilgisayarın IP adresini girin. Ardından cihazda bir tarayıcı açın ve Charles sertifikasını indirmek için http://chls.pro/ssl adresine gidin. Android 7+ (API 24+) üzerinde, Debug yapılarında kullanıcı sertifikalarına güvenmek için network_security_config.xml gerekir — aksi takdirde uygulama trafiği Charles üzerinden yönlendirmeyebilir.

iOS'ta Kurulum

iOS için: Settings → WiFi → proxy'yi yapılandırın IP ve 8888 bağlantı noktası ile. Ardından Safari → http://chls.pro/ssl → sertifika profilini yükleyin. iOS 10.3+ üzerinde, ayrıca sertifika güvenini etkinleştirmeniz gerekir: Settings → General → About → Certificate Trust Settings → Charles Proxy'yi açın. iOS sertifikalar konusunda daha katıdır: bazı uygulamalar SSL Pinning kullanarak güvenilir bir sertifika olsa bile Charles üzerinden trafiği engelleyebilir.

SSL Pinning Sorunlarını Çözme

Uygulama SSL Pinning(sunucu sertifikası sabitleme) kullanıyorsa, Charles üzerinden standart proxy çalışmaz — uygulama Charles sertifikasını reddeder. Çözümler: Debug yapılarında OkHttp veya URLSession ayarları üzerinden SSL Pinning'i devre dışı bırakmak, pinning'i çalışma zamanında atlamak için Frida kullanmak veya root erişimli Android Emulator kullanmak.

Charles Proxy'nin Pratik Kullanım Durumları

Charles Proxy, belirli geliştirme ve test görevlerini çözer. Aracın vazgeçilmez olduğu en yaygın senaryolara bakalım.

API Entegrasyonunda Hata Ayıklama

En yaygın senaryo — API isteklerinin doğruluğunu kontrol etme. Charles, isteğin tam URL'sini, başlıklarını, gövdesini ve parametrelerini gösterir. Sunucu beklenmedik bir yanıt döndürürse, hemen görürsünüz: JSON yapısı, hata kodu, yanıt başlıkları. Bu, her iki taraftan günlükler olmadan istemci tarafı hatalarını sunucu tarafı hatalarından ayırmanızı sağlar.

Yavaş Bağlantıyla Test

Throttle profillerini kullanarak, uygulamanın düşük bağlantı hızında nasıl davrandığını test edebilirsiniz: yükleme göstergesi görüntüleniyor mu, zaman aşımları doğru işleniyor mu, bağlantı kaybında UI donuyor mu. Özellikle önbelleğe almayı test etmek önemlidir — veriler zaten yüklendiyse, uygulama sonsuz yükleme durumuna girmek yerine bunları önbellekten göstermelidir.

Sunucu Yanıtlarını Düzenleme

Breakpoints kullanarak, uygulamaya gönderilmeden önce sunucu yanıtını değiştirebilirsiniz. Örneğin, veriler yerine boş bir dizi döndürebilir, durum kodunu 500 olarak değiştirebilir, JSON'a yeni bir alan ekleyebilirsiniz. Bu, sunucu kodunu değiştirmeden uç durumların işlenmesini test etmenize olanak tanır — mobil geliştirmede Charles'ın en güçlü kullanımlarından biridir.

Sıkça Sorulan Sorular

Charles Proxy ücretsiz mi?

Charles Proxy, 30 günlük deneme süresi olan ticari bir üründür. Deneme süresi bittikten sonra program çalışmaya devam eder ancak her başlangıçta 30 dakika duraklar. Lisans ücreti kopya başına 50 $'dır. Proxyman (macOS) ve mitmproxy (çapraz platform) gibi ücretsiz alternatifler mevcuttur.

iOS simülatörü trafiği yakalanabilir mi?

Evet, iOS simülatörü otomatik olarak macOS sistem proxy'sini kullanır. Charles'ı başlatmanız ve SSL proxy'yi etkinleştirmeniz yeterlidir — tüm simülatör trafiği yakalanacaktır. Simülatör için sertifika kurulumu otomatik olarak gerçekleşir; yalnızca macOS anahtarlığında Charles sertifikasına güvenmeniz gerekir.

Charles, Proxyman'dan nasıl farklıdır?

Temel farklar: Charles çapraz platformdur (Windows, macOS, Linux), Proxyman yalnızca macOS ve iOS içindir. Charles daha geniş bir araç setine sahiptir (Rewrite, Map Local, Repeat, Auto Save) ancak ücretlidir. Proxyman temel işlevler için ücretsizdir, modern bir arayüz ve yerel iOS simülatörü entegrasyonu sunar.

Charles Proxy performansı nasıl etkiler?

Charles, trafik proxy üzerinden geçerken gecikme ekler, özellikle aktif SSL proxy (şifre çözme/şifreleme) ile. Modern bilgisayarlarda gecikme, istek başına 5–15 milisaniyedir. Performans testleri için, Recording Control aracılığıyla statik içerik (CSS, JS, resimler) için SSL proxy'nin devre dışı bırakılması önerilir.

Charles'tan oturum nasıl dışa aktarılır?

Charles şu biçimlere dışa aktarmayı destekler: .chls(yerel, Charles'ta yeniden açmak için), HAR(HTTP Archive, tarayıcılarda ve diğer araçlarda açılır), CSV(Excel veya e-tablolarda işleme için), Trace(belirli bir isteği curl uyumlu biçimde dışa aktarmak için). File → Export Session menüsü üzerinden dışa aktarın.

Özet

  • Charles Proxy 2004'ten beri ağ trafiğini yakalamak, görüntülemek ve değiştirmek için profesyonel bir HTTP/HTTPS proxy sunucusudur
  • Çalışma prensibi — MITM proxy: tüm istekler Charles üzerinden geçer, anında analiz ve değişiklik sağlar
  • Güçlü araçlar: Rewrite, Breakpoints, Map Local, Map Remote, Throttle — kapsamlı API hata ayıklama ve kullanıcı deneyimi testi için
  • HTTPS proxy cihazda Charles kök sertifikasının kurulmasını gerektirir ve Android 7+ için — Debug yapılarında network_security_config.xml
  • Throttle profilleri, gerçek dünya koşullarında uygulama davranışını test etmek için 3G, EDGE, DSL ve diğer bağlantı türlerini simüle etmenizi sağlar
  • Oturum dışa aktarma HAR, CSV ve .chls biçimlerinde analiz, raporlama ve ekip paylaşımı için
  • Sınırlı bütçeli projeler için ücretsiz alternatifleri değerlendirin: Proxyman (macOS) veya mitmproxy (çapraz platform açık kaynak)

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun