İçeriğe geç
Guides 10 dk okuma 1820 görüntülenme

Charles Proxy

Charles Proxy'yi HTTP isteklerinde hata ayıklamak için etkili biçimde nasıl kullanacağınızı öğrenin. Bu rehber kurulumu, trafik incelemeyi ve GProxy ile sık karşılaşılan hata ayıklama senaryolarını kapsıyor.

Browser
Charles Proxy

Charles Proxy, bir man-in-the-middle proxy gibi davranarak HTTP isteklerinde hata ayıklamayı kolaylaştırır; istemci uygulaması ile hedef sunucular arasındaki tüm ağ trafiğini yakalar, incelenmesine ve değiştirilmesine olanak tanır.

Charles Proxy yerel bir HTTP proxy sunucusu olarak çalışır ve geliştiricilerin ile QA mühendislerinin ağ iletişimini gözlemlemesini, araya girmesini ve üzerinde değişiklik yapmasını sağlar. Bu yetenek; istemci-sunucu etkileşimlerini anlamak, entegrasyon sorunlarını teşhis etmek, uç durumları test etmek ve API davranışını doğrulamak için kritiktir; özellikle upstream bir proxy ile etkileşen servislerle çalışırken veya bu servisleri geliştirirken.

Charles Proxy'yi Kurma

Kurulum ve İlk Çalıştırma

Charles Proxy'yi resmi web sitesinden indirip kurun. İlk çalıştırmada Charles genellikle kendisini sistem proxy'si olarak yapılandırmayı dener. Sistem proxy ayarlarına uyan uygulamaların trafiğini Charles'ın yakalayabilmesi için bu istemi kabul edin.

Sistem Proxy Ayarlarını Yapılandırma

Charles çalışırken sistemin HTTP/HTTPS proxy ayarlarını otomatik olarak 127.0.0.1 (localhost) ve 8888 portuna (varsayılan) ayarlar. Web tarayıcıları dâhil çoğu uygulama bu ayarlara uyar.

Doğrulamak veya elle yapılandırmak için:
* macOS: Sistem Ayarları > Ağ > Wi-Fi/Ethernet > Ayrıntılar > Proxy'ler. "Web Proxy (HTTP)" ve "Secure Web Proxy (HTTPS)" seçeneklerinin etkin olduğundan ve 127.0.0.1:8888 adresini gösterdiğinden emin olun.
* Windows: Ayarlar > Ağ ve İnternet > Proxy > El ile proxy kurulumu. "Proxy sunucusu kullan" seçeneğinin 127.0.0.1 ve 8888 portuyla etkin olduğundan emin olun.
* Linux (GNOME): Ayarlar > Ağ > Ağ Proxy'si. Yöntemi "Manuel" olarak ayarlayın ve HTTP/HTTPS proxy'yi 127.0.0.1:8888 şeklinde yapılandırın.

İstemci Uygulamalarını Yapılandırma

Bazı uygulamalar, özellikle komut satırı araçları veya belirli SDK'lar, sistem genelindeki proxy ayarlarına uymayabilir. Bu durumlarda uygulamayı doğrudan yapılandırın.

Örnek: proxy ile curl

curl -x http://127.0.0.1:8888 https://api.example.com/data

Örnek: proxy ile Node.js axios

const axios = require('axios');

axios.get('https://api.example.com/data', {
  proxy: {
    host: '127.0.0.1',
    port: 8888
  }
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error(error);
});

HTTPS Trafiği için SSL Proxying

HTTPS trafiğini incelemek için Charles Proxy'nin SSL (veya TLS) proxying yapması gerekir. Bu işlemde Charles, hedef alan adları için sertifikalar üretip imzalar, bunları istemciye sunar ve ardından gerçek sunucuya kendi güvenli bağlantısını kurar.

Charles Kök Sertifikasını Yükleme

SSL proxying'in güvenlik uyarıları olmadan çalışması için istemci uygulamasının Charles'ın kök sertifikasına güvenmesi gerekir.

  • Masaüstü Tarayıcılar/Sistem:
    • Help > SSL Proxying > Install Charles Root Certificate yolunu izleyin. Sertifikayı sistemin güvenilen kök sertifika deposuna kurmak için işletim sistemine özgü istemleri takip edin.
  • Mobil Cihazlar:
    • Mobil cihazı Charles'ı HTTP proxy olarak kullanacak şekilde yapılandırın (örneğin your_mac_ip:8888).
    • Cihazda chls.pro/ssl adresine gidin ve sertifikayı indirip kurmak için yönergeleri izleyin.

Belirli Hostlar için SSL Proxying'i Etkinleştirme

Kök sertifikayı kurduktan sonra, incelemek istediğiniz belirli hostlar için SSL proxying'i etkinleştirin.

  1. Proxy > SSL Proxying Settings... yolunu izleyin.
  2. "Add" düğmesine tıklayın.
  3. Host (örneğin api.example.com, joker için *.example.com veya tüm hostlar için *) ve Port (HTTPS için genellikle 443, tüm portlar için *) değerlerini girin.
  4. "OK" ve ardından tekrar "OK" düğmesine tıklayın.

Belirtilen hostlara giden trafik artık şifresi çözülerek Charles'ta görünür hâle gelecektir.

Temel Hata Ayıklama Özellikleri

Trafik İzleme ve Filtreleme

"Structure" ve "Sequence" görünümleri yakalanan istekleri gösterir.
* Sequence View: İstekleri kronolojik sırayla gösterir.
* Structure View: İstekleri host ve yola göre düzenler.

İlgili trafiğe odaklanmak için:
* Filtre Alanı: URL'leri, hostları veya içeriği eşleştirmek için Charles penceresinin üst kısmındaki filtre alanını kullanın.
* Focus Aracı: Bir isteğe sağ tıklayıp "Focus" seçeneğini seçerek diğer tüm hostları geçerli görünümden gizleyin.
* Record Düğmesi: Trafik yakalamayı başlatmak/durdurmak için kayıt düğmesini (kırmızı daire) açıp kapatın.

Breakpoint'ler

Breakpoint'ler, istekleri sunucuya gönderilmeden veya yanıtları istemciye ulaşmadan önce duraklatmanıza ve değiştirmenize olanak tanır.

  1. Proxy > Breakpoints Settings... yolunu izleyin.
  2. İstekler veya yanıtlar için "Add" düğmesine tıklayın.
  3. Host ve Path değerlerini belirtin (örneğin /login).
  4. Bir istek/yanıt eşleştiğinde Charles duraklatır ve bir "Breakpoints" sekmesi görünür.
  5. Başlıkları, sorgu parametrelerini veya gövdeyi değiştirin.
  6. Değiştirilmiş isteği/yanıtı göndermek için "Execute" düğmesine tıklayın.

Rewrite Aracı

Rewrite aracı, isteklerde ve yanıtlarda otomatik ve kalıcı değişiklikler sağlar. Belirli sunucu davranışlarını veya istemci koşullarını elle müdahale olmadan simüle etmek için kullanışlıdır.

  1. Tools > Rewrite... yolunu izleyin.
  2. Rewrite'ı etkinleştirin ve yeni bir "Set" ekleyin.
  3. Host ve Path kullanarak "Locations" (kuralların uygulanacağı URL'ler) ekleyin.
  4. Set içine "Rules" ekleyin:
    • Add Header/Remove Header: HTTP başlıklarını değiştirir.
    • Change Query Parameter: URL sorgu parametrelerini değiştirir.
    • Body Replace: İstek/yanıt gövdesindeki metni bulup değiştirir.
    • URL Replace: İstek URL'sinin parçalarını değiştirir.

Örnek: Bir API yanıt gövdesini değiştirme
Bir Rewrite kuralı, istemcinin farklı durumları nasıl işlediğini test etmek için bir JSON yanıtındaki {"status": "active"} ifadesini {"status": "maintenance"} ile değiştirebilir.

Map Local / Map Remote

Bu araçlar istekleri farklı kaynaklara yönlendirir.

  • Map Local: Uzak bir yanıt yerine yerel bir dosya sunar.

    1. Tools > Map Local... yolunu izleyin.
    2. Map Local'ı etkinleştirin ve yeni bir giriş ekleyin.
    3. Uzak URL'nin Host ve Path değerlerini belirtin.
    4. Sunulacak yerel File yolunu seçin.
      Bu, UI değişikliklerini hızlıca test etmek veya backend'i değiştirmeden belirli API yanıtlarını simüle etmek için kullanışlıdır.
  • Map Remote: Bir URL'ye giden isteği tamamen farklı bir URL'ye yönlendirir.

    1. Tools > Map Remote... yolunu izleyin.
    2. Map Remote'u etkinleştirin ve yeni bir giriş ekleyin.
    3. Orijinal isteğin Host ve Path değerlerini belirtin.
    4. Yönlendirilen istek için yeni Host ve Path değerlerini belirtin.
      API çağrılarını bir staging ortamına veya yerel bir geliştirme sunucusuna yönlendirmek için kullanışlıdır.

Throttling

Throttling yavaş ağ koşullarını simüle eder ve performans darboğazlarını ya da yavaş veri yüklemesine bağlı UI sorunlarını tespit etmeye yardımcı olur.

  1. Proxy > Throttle Settings... yolunu izleyin.
  2. "Enable Throttling" seçeneğini etkinleştirin.
  3. Bandwidth, Utilisation ve Latency parametrelerini yapılandırın.
  4. İsteğe bağlı olarak "Only for selected hosts" seçeneğini seçin ve throttling uygulanacak belirli hostları ekleyin.

Repeat / Advanced Repeat

Bu özellikler istekleri yeniden göndermenize olanak tanır.

  • Repeat: Bir isteğe sağ tıklayıp "Repeat" seçeneğini seçerek onu hemen tekrar gönderin.
  • Advanced Repeat: Bir isteğe sağ tıklayıp "Advanced Repeat" seçeneğini seçerek özelleştirilebilir eşzamanlılık ve yineleme sayılarıyla birden çok kez gönderin. Bu, yük testi veya yarış koşullarını kontrol etmek için kullanışlıdır.

Upstream Proxy Etkileşimlerinde Hata Ayıklama

İstemci uygulamanız Charles'ı kullanacak şekilde yapılandırıldığında ve Charles'ın kendisi de upstream bir proxy'yi (örneğin kurumsal bir proxy) kullanacak şekilde yapılandırıldığında, Charles aracı olarak davranır.

Charles'ı upstream bir proxy kullanacak şekilde yapılandırmak için:
1. Proxy > External Proxy Settings... yolunu izleyin.
2. "Use external proxy" seçeneğini etkinleştirin.
3. Upstream proxy'niz için Host, Port ve gerekli Username/Password bilgilerini girin.
4. Upstream proxy'niz bir SOCKS proxy ise "SOCKS proxy" seçeneğini etkinleştirin.

Bu kurulumda Charles istemcinizden gelen trafiği yakalar, ardından onu upstream proxy'ye iletir. Böylece trafiği upstream proxy'ye ulaşmadan önce inceleyebilirsiniz; bu da upstream proxy'nin istekleri değiştirdiği veya belirli endpoint'leri engellediği durumları teşhis etmek için kritik önemdedir.

CHARLES PROXY: PROXY ÜZERİNDEN HTTP İSTEKLERİNDE HATA AYIKLAMA

Charles Proxy, bir man-in-the-middle proxy gibi davranarak HTTP isteklerinde hata ayıklar; istemci uygulaması ile hedef sunucular arasındaki tüm ağ trafiğini yakalar ve ayrıntılı inceleme ile değişiklik yapılmasına imkân verir.

Genel Bakış

Charles Proxy, yerel makinenizde çalışan bir HTTP proxy (HTTP/HTTPS/SOCKS) ve HTTP monitörüdür. Makineniz ile İnternet arasındaki tüm HTTP ve HTTPS trafiğini görüntülemenizi sağlar. Upstream bir proxy ile etkileşen servislerde hata ayıklarken Charles, istemci ile upstream proxy arasında konumlanacak şekilde yapılandırılabilir ve uygulamanızın tam olarak hangi istekleri gönderip aldığını görünür kılar.

İlk Kurulum

Kurulum

Charles Proxy'yi resmi web sitesinden (charlesproxy.com) indirip kurun. Charles macOS, Windows ve Linux'u destekler.

Sistem Proxy Yapılandırması

Başlatıldığında Charles genellikle kendisini sistem proxy'si olarak yapılandırmak için sorar. Bunu kabul etmek, Charles'ın sistem proxy ayarlarını kullanacak şekilde yapılandırılmış uygulamaların (örneğin çoğu web tarayıcısı, Java uygulamaları, .NET uygulamaları) trafiğini otomatik olarak yakalamasını sağlar.

Elle doğrulamak veya yapılandırmak için:
* Varsayılan HTTP/HTTPS Proxy Adresi: 127.0.0.1
* Varsayılan HTTP/HTTPS Proxy Portu: 8888

Charles'ın harici (upstream) bir proxy'ye bağlanması gereken ortamlar için:
1. Proxy > External Proxy Settings... yolunu izleyin.
2. "Use external proxy" seçeneğini işaretleyin.
3. Upstream proxy'nin Host ve Port değerlerini girin.
4. Upstream proxy gerektiriyorsa Username ve Password bilgilerini girin.
5. Upstream proxy bir SOCKS proxy ise "SOCKS proxy" seçeneğini işaretleyin.

Bu yapılandırma, Charles'ın istemcinizden gelen trafiği yakalamasını ve ardından belirtilen harici proxy üzerinden yönlendirmesini sağlar; böylece harici proxy'ye ne gönderildiğini ve ondan ne alındığını inceleyebilirsiniz.

HTTPS Trafiği için SSL Proxying

HTTP Secure (HTTPS) trafiği şifrelidir ve doğrudan incelenmesini engeller. Charles, HTTPS trafiğinin şifresini çözüp incelemek için SSL Proxying (man-in-the-middle saldırısı) kullanır.

Charles Kök Sertifikası Kurulumu

SSL Proxying yapabilmek için Charles her HTTPS alan adı için dinamik SSL sertifikaları üretir. SSL hatalarından kaçınmak için istemci uygulamanızın Charles'ın kök sertifikasına güvenmesi gerekir.

  • Masaüstü İşletim Sistemleri (macOS/Windows/Linux):
    1. Help > SSL Proxying > Install Charles Root Certificate yolunu izleyin.
    2. Sertifikayı güvenilen kök sertifika deposuna kurmak için işletim sisteminin istemlerini takip edin.
  • Mobil Cihazlar (iOS/Android):
    1. Mobil cihazın Wi-Fi ayarlarını Charles'ı HTTP proxy olarak kullanacak şekilde yapılandırın (Charles'ın IP adresi ve 8888 portu).
    2. Mobil cihazda bir tarayıcı açın ve chls.pro/ssl adresine gidin.
    3. Charles Kök Sertifikasını güvenilir kimlik bilgisi olarak indirip kurmak için yönergeleri izleyin.

Belirli Hostlar için SSL Proxying'i Etkinleştirme

Kök sertifikayı kurduktan sonra Charles'ın hangi HTTPS hostlarının şifresini çözeceğini belirtin.
1. Proxy > SSL Proxying Settings... yolunu izleyin.
2. "Add" düğmesine tıklayın.
3. Host (örneğin api.yourdomain.com, *.yourdomain.com veya tüm hostlar için *) ve Port (genellikle 443, tüm portlar için *) değerlerini girin.
4. "OK" düğmesine tıklayın.

Temel Hata Ayıklama İşlevleri

Trafik Yakalama ve Filtreleme

Charles yakalanan trafiği iki temel görünümde gösterir:
* Sequence: İsteklerin kronolojik listesi.
* Structure: Host ve klasör yoluna göre gruplanmış hiyerarşik görünüm.

Belirli istekleri bulmak için:
* Filtre Alanı: Host, URL yolu veya içeriğe göre arama yapmak için üstteki filtre çubuğunu kullanın.
* Focus Aracı: Bir isteğe sağ tıklayıp "Focus" seçeneğini seçerek diğer tüm hostları geçerli görünümden gizleyin.
* Record Düğmesi: Trafik yakalamayı başlatmak/durdurmak için kırmızı daire simgesini açıp kapatın.

Breakpoint'ler

Breakpoint'ler, istekleri gönderilmeden veya yanıtları istemciye ulaşmadan önce elle yakalayıp değiştirmenize olanak tanır.

  1. Proxy > Breakpoints Settings... yolunu izleyin.
  2. "Request" veya "Response" breakpoint'leri için "Add" düğmesine tıklayın.
  3. Hedef URL için Host ve Path kalıplarını belirtin.
  4. Eşleşen bir istek/yanıt oluştuğunda Charles duraklatır ve bir "Breakpoints" sekmesi görüntüler.
  5. Headers, Query Parameters veya Body içeriğini değiştirin.
  6. Değiştirilmiş işlemle devam etmek için "Execute" düğmesine tıklayın.

Rewrite Aracı

Rewrite aracı, önceden tanımlanmış kurallara göre isteklerde ve yanıtlarda yapılan değişiklikleri otomatikleştirir. Elle müdahale olmadan tutarlı test senaryoları için kullanışlıdır.

  1. Tools > Rewrite... yolunu izleyin.
  2. Rewrite'ı etkinleştirin ve yeni bir "Set" ekleyin.
  3. Host ve Path kullanarak "Locations" (kuralların geçerli olduğu URL'ler) tanımlayın.
  4. Set içine "Rules" ekleyin:
    • Type: Add Header, Remove Header, Change Query Parameter, Host, Path, URL, Body.
    • Action: Değişiklik için Value veya Regex belirtin.

Örnek: API sürüm değişikliğini simüle etme
Bir Rewrite kuralı, belirli bir API endpoint'ine giden tüm isteklerde Accept başlığını application/json;v=1 yerine application/json;v=2 olarak değiştirebilir.

Map Local / Map Remote

Bu özellikler istekleri alternatif kaynaklara yönlendirir.

  • Map Local: Uzak bir sunucu yanıtı yerine yerel bir dosya sunar.

    1. Tools > Map Local... yolunu izleyin.
    2. Map Local'ı etkinleştirin ve yeni bir giriş ekleyin.
    3. Eşlenecek uzak URL'nin Host ve Path değerlerini belirtin.
    4. Charles'ın sunması gereken dosyanın Local Path değerini seçin.
      Bu, frontend geliştirmede backend değişikliği yapmadan belirli sahte verilerle UI değişikliklerini test etmek için kullanışlıdır.
  • Map Remote: Bir URL'ye giden isteği tamamen farklı bir URL'ye yönlendirir.

    1. Tools > Map Remote... yolunu izleyin.
    2. Map Remote'u etkinleştirin ve yeni bir giriş ekleyin.
    3. Orijinal isteğin Host ve Path değerlerini belirtin.
    4. Yeni hedef URL'nin Host ve Path değerlerini belirtin.
      Bu, üretim API çağrılarını bir staging ortamına veya yerel bir geliştirme sunucusuna yönlendirmek için kullanışlıdır.

Throttling

Throttling, uygulamanın kötü ağ bağlantısı altındaki performansını ve yanıt verme hızını test etmek için çeşitli ağ koşullarını (örneğin dial-up, 3G, özel hızlar) simüle eder.

  1. Proxy > Throttle Settings... yolunu izleyin.
  2. "Enable Throttling" seçeneğini işaretleyin.
  3. Bir Preset seçin veya Bandwidth, Utilisation ve Latency değerlerini elle yapılandırın.
  4. İsteğe bağlı olarak "Only for selected hosts" seçeneğini işaretleyin ve throttling uygulanacak belirli hostları ekleyin.

Repeat / Advanced Repeat

Bu işlevler istekleri yeniden göndermenize olanak tanır.
* Repeat: Charles oturumundaki bir isteğe sağ tıklayıp "Repeat" seçeneğini seçerek onu bir kez yeniden gönderin.
* Advanced Repeat: Bir isteğe sağ tıklayıp "Advanced Repeat" seçeneğini seçerek birden çok yineleme, eşzamanlılık ve gecikme yapılandırın; temel yük testi veya idempotency doğrulaması için kullanışlıdır.

Güncellendi: 04.03.2026
Kategoriye dön

Bunları da okuyun

Guides 2 dk

Nike SNKRS için Proxy: Sınırlı Sürümler ve Çoklu Katılım

Nike SNKRS'ta birden fazla hesapla çekilişlere katılmak, IP limitlerini aşmak ve ban yemeden sınırlı sürümleri kapmak için residential veya mobil proxy kullanın. Hangi türü seçmeli ve nasıl kurmalı.

Guides 2 dk

iPhone'da Proxy Nasıl Kurulur (Wi-Fi ve SOCKS5)

iPhone'da proxy'yi yerleşik Wi-Fi ayarlarından (HTTP/HTTPS) veya SOCKS5 ile hücresel kapsama için Shadowrocket gibi bir uygulamayla kurun. Adım adım iOS kurulumu ve bilinmesi gereken kısıtlar.

Guides 3 dk

Tinder için proxy: çoklu hesap ve ban'lerden kaçınma

Birden fazla profil işletmek ve IP shadowban'lerinden kaçınmak için Tinder'da mobil veya residential proxy kullanın. Mobilin neden kazandığı, kurulumu ve proxy'nin şehri neden değiştirmediği.

Guides 2 dk

StockX için proxy: fiyat takibi ve hesap yönetimi

StockX'te fiyatları izlemek, birden fazla hesap çalıştırmak ve drop'ları yasaklanmadan kapmak için residential, ISP veya mobil proxy kullanın. Hangi türü seçeceğinizi ve nasıl kuracağınızı anlatıyoruz.

Guides 3 dk

OpenAI API için Proxy: Erişim, Hız Limitleri ve Kurulum

OpenAI API'yi residential veya ISP proxy üzerinden yönlendirerek desteklenen bölgelere erişin, 429 hız limitlerinden kaçının ve hesapları izole edin. Hangi proxy'yi seçmeli ve Python kurulum örnekleri.

Guides 1 dk

E2E testleri için Cypress'te proxy kurulumu

Cypress'te proxy kurulumu: HTTP_PROXY değişkenleri, cy-proxy-middleware ve coğrafi konuma bağlı içeriğin test edilmesi.

Proxy'lerimizi deneyin

100+ ülkede 20,000+ proxy

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.