Charles Proxy — bu nədir, qurulum və HTTPS trafikinin ələ keçirilməsi

Müəllif: IT Sectr Dərc olunub: 2026-05-08 Oxuma vaxtı: 8 dəq

Charles Proxy — HTTP/HTTPS trafikinin debug edilməsi üçün çoxplatformalı proksi-serverdir, şəbəkə sorğularını ələ keçirmək, baxmaq və dəyişdirmək üçün tərtibatçılar tərəfindən istifadə olunur. Karl von Randow, alətin yaradıcısı (2025) məlumatına görə, Charles 2004-cü ildən bəri dünya üzrə 50 000-dən çox şirkətdə istifadə olunur. Proksi WiFi vasitəsilə mobil cihazlardan trafikin ələ keçirilməsini, kök sertifikatının quraşdırılması ilə HTTPS-proksiləşdirməni və API analizi üçün geniş alətlər dəstini dəstəkləyir.

Əsas məqamlar

  • Charles Proxy — genişləndirilmiş debug imkanları ilə şəbəkə trafikini ələ keçirmək və təhlil etmək üçün HTTP/HTTPS proksi-serverdir
  • HTTPS-proksiləşdirmə cihazda Charles kök sertifikatının quraşdırılması ilə həyata keçirilir ki, bu da şifrələnmiş trafikə baxmağa imkan verir
  • Rewrite və Breakpoints — server və ya müştəri kodunu dəyişmədən sorğu və cavabları anında dəyişdirmək üçün güclü alətlər
  • Map Local və Map Remote test üçün şəbəkə resurslarını lokal fayllar və ya alternativ serverlərlə əvəz etməyə imkan verir
  • Throttle — zəif əlaqə şəraitində tətbiq davranışını yoxlamaq üçün yavaş və qeyri-sabit şəbəkə bağlantılarının simulyasiyası

Charles Proxy nədir?

Charles Proxy — müştəri və server arasında vasitəçi kimi işləyən HTTP-proksi və HTTP-monitordur. Bütün sorğu və cavablar Charles-dan keçir ki, bu da onların məzmununa baxmağa, strukturu təhlil etməyə, məlumatları real vaxtda dəyişdirməyə və müxtəlif şəbəkə şərtlərini simulyasiya etməyə imkan verir. Windows, macOS və Linux üçün mövcuddur.

Tarix və mövqeləşdirmə

Charles Proxy 2004-cü ildə Karl fon Randow tərəfindən yaradılmış və şəbəkə trafikinin debug edilməsi üçün ən populyar alətlərdən biri olaraq qalır. Pulsuz alternativlərdən fərqli olaraq, Charles 30 günlük sınaq müddəti ilə pullu lisenziya təklif edir. Alət HTTP kommunikasiyaları üzərində tam nəzarətə ehtiyacı olan mobil tətbiq tərtibatçıları, veb-tərtibatçılar və QA mühəndisləri üçün peşəkar həll kimi mövqeləşdirilir.

Platforma uyğunluğu

Charles kompüterdə sistem proksisi kimi işləyir və eyni şəbəkədəki istənilən cihazdan trafiki ələ keçirə bilər: Android, iOS, simulyatorlar, emulyatorlar, veb-brauzerlər və IoT cihazları. HTTPS-ni ələ keçirmək üçün hər bir cihazda Charles kök sertifikatını quraşdırmaq lazımdır. Trafik HTTP/1.1 və HTTP/2 (qismən) dəstəklənir. HTTP/3 (QUIC) ələ keçirmə səviyyəsində dəstəklənmir.

Charles Proxy necə işləyir

Charles MITM (Man-in-the-Middle) proksi prinsipi ilə işləyir: müştəri Charles vasitəsilə sorğu göndərdikdə, alət bu sorğunu ələ keçirir, hədəf serverə yönləndirir, cavabı alır və müştəriyə qaytarır. Bütün trafik Charles-dan keçir ki, bu da onu təhlil etməyə və dəyişdirməyə imkan verir.

Proksiləşdirmə arxitekturası

Charles işə salındıqda 8888 portunda (standart) lokal HTTP-proksi yaradır. Əməliyyat sistemi və ya tətbiq bu proksidən istifadə etmək üçün konfiqurasiya edilir. Bütün HTTP sorğuları əvvəlcə Charles-a göndərilir, o da hədəf server üçün tam hüquqlu müştəri kimi çıxış edir. HTTPS üçün Charles öz SSL-proksiləşdirmə texnikasından istifadə edir: hər bir domen üçün Charles kök sertifikatı ilə imzalanmış sertifikat yaradır. Kök sertifikat cihazda etibarlı kimi quraşdırılıbsa, Charles HTTPS trafikini şifrədən çıxara və baxa bilər.

İş rejimləri

Charles iki rejimi dəstəkləyir: Proxy (klassik proksi-server) və SOCKS Proxy (UDP və TCP trafiki üçün). Veb-inkişaf üçün standart HTTP-proksi istifadə olunur. Mobil cihazlar üçün — Charles-ın işlədiyi kompüterin IP ünvanı göstərilməklə cihazda WiFi Proxy qurulumu. MacOS iOS simulyatoru üçün avtomatik proksi konfiqurasiyasını dəstəkləyir.

xml
<!-- Android üçün Charles dəstəyi ilə network_security_config.xml-in qurulması -->
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <!-- Debug quruluşunda Charles sertifikatına etibar et -->
            <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>

Charles Proxy-nin əsas imkanları

Charles Proxy sadə sorğu ələ keçirməkdən çox kənara çıxan peşəkar alətlər dəsti təqdim edir.

Rewrite və Breakpoints

Rewrite aləti sorğu və ya cavabların müəyyən hissələrini avtomatik dəyişdirməyə imkan verir: başlıqlar, URL parametrləri, cavab məzmunu. Məsələn, User-Agent başlığını başqa cihazın dəyəri ilə əvəz etmək və ya müəyyən cookies-ləri silmək olar. Breakpoints debugger kimi işləyir: sorğu seçilmiş mərhələdə (göndərməzdən əvvəl və ya almazdan əvvəl) dayandırılır və tərtibatçı onun məzmununu əl ilə dəyişə bilər. Bu, səhv cavabların və ya qeyri-standart vəziyyətlərin işlənməsini test etmək üçün faydalıdır.

Map Local və Map Remote

Map Local şəbəkə resursunu (CSS, JS, JSON) diskdəki lokal faylla əvəz etməyə imkan verir. Bu, frontend inkişafında əvəzolunmazdır: CSS/JS dəyişdirmək və serverə yerləşdirmədən dərhal nəticəni görmək olar. Map Remote sorğuları bir URL-dən digərinə yönləndirir — məsələn, test etmək üçün istehsal serverindən staging-ə. Hər iki alət wildcards dəstəyi ilə URL şablonları üzrə işləyir.

Throttle və şəbəkə şərtlərinin simulyasiyası

Throttle aləti əvvəlcədən təyin edilmiş profillər üzrə müxtəlif şəbəkə bağlantı növlərini simulyasiya etməyə imkan verir: 3G, EDGE, GPRS, DSL, WiFi. Sürət məhdudiyyəti (download/upload), gecikmə, paket itkisi və sabitlik konfiqurasiya edilə bilər. Bu, yavaş və ya qeyri-sabit bağlantıda tətbiq davranışını test etmək üçün kritik əhəmiyyətlidir — timeoutların düzgün işlənməsi, təkrar cəhdlər, oflayn rejim.

ProfilDownloadUploadGecikməTipik ssenari
3G780 kbps330 kbps200 msZəif mobil siqnalda test
EDGE130 kbps50 kbps400 msHəddindən artıq yavaş bağlantı
GPRS50 kbps20 kbps500 msMümkün olan minimal bağlantı
DSL2 Mbps256 kbps50 msEv naqilli bağlantısı
WiFi10 Mbps10 Mbps10 msYaxşı WiFi bağlantısı

Auto Save və Recording

Charles trafik sessiyalarını avtomatik olaraq .chls fayllarına saxlaya bilər ki, bu da onları sonra təhlil etməyə və ya həmkarlara ötürməyə imkan verir. Recording Control hansı trafikin saxlanacağını çevik şəkildə konfiqurasiya etməyə imkan verir: domenlər, məzmun növləri, status kodları üzrə. Bu, API-nin uzunmüddətli monitorinqi üçün əlverişlidir.

Mobil cihazlar üçün Charles Proxy-nin qurulması

Mobil tətbiqlərin trafikini debug etmək üçün Charles WiFi Proxy kimi konfiqurasiya edilir: kompüterlə eyni şəbəkədəki bütün cihazlar trafiki Charles üzərindən yönləndirə bilər. HTTPS-nin düzgün qurulması mobil cihazda Charles sertifikatının quraşdırılmasını tələb edir.

Android-də qurulum

Android üçün lazımdır: Parametrlər → WiFi → Qabaqcıl → Proxy açmaq, Manual seçmək və 8888 portu ilə kompüterin IP ünvanını göstərmək. Bundan sonra cihazda brauzeri açıb sertifikatı yükləmək üçün http://chls.pro/ssl ünvanına keçin. Android 7+ (API 24+) sistemində Debug quruluşunda istifadəçi sertifikatlarına etibar etmək üçün network_security_config.xml tələb olunur — əks halda tətbiq trafiki Charles-dan keçirməyə bilər.

iOS-da qurulum

iOS üçün: Parametrlər → WiFi → proksini konfiqurasiya et IP və 8888 portuna. Sonra Safari → http://chls.pro/ssl → sertifikat profilini quraşdırın. iOS 10.3+-də əlavə olaraq sertifikata etibarı aktivləşdirmək lazımdır: Parametrlər → Ümumi → Haqqında → Sertifikat Etibar Parametrləri → Charles Proxy-ni aktiv edin. iOS sertifikatlarla bağlı daha sərtdir: bəzi tətbiqlər hətta etibarlı sertifikatla belə Charles üzərindən trafiki bloklayan SSL Pinning istifadə edə bilər.

SSL Pinning ilə problemlərin həlli

Əgər tətbiq SSL Pinning (server sertifikatının bərkidilməsi) istifadə edirsə, Charles vasitəsilə standart proksiləşdirmə işləməyəcək — tətbiq Charles sertifikatını rədd edəcək. Həll yolları: OkHttp və ya URLSession parametrləri ilə Debug quruluşunda SSL Pinning-i söndürmək, runtime-da pinning-i keçmək üçün Frida istifadə etmək və ya kök girişi olan Android Emulator tətbiq etmək.

Charles Proxy-dən istifadənin praktik ssenariləri

Charles Proxy konkret inkişaf və test tapşırıqlarını həll edir. Alətin əvəzolunmaz olduğu ən çox yayılmış ssenarilərə baxaq.

API inteqrasiyasının debug edilməsi

Ən çox yayılmış ssenari — API sorğularının düzgünlüyünün yoxlanılması. Charles sorğunun dəqiq URL-ni, başlıqları, məzmunu, parametrləri göstərir. Server gözlənilməz cavab qaytarırsa, dərhal görünür: JSON strukturu, səhv kodu, cavab başlıqları. Bu, hər iki tərəfdən log olmadan müştəri səhvini server səhvindən ayırmağa imkan verir.

Yavaş bağlantı ilə test

Throttle profillərindən istifadə edərək, tətbiqin aşağı bağlantı sürətində necə davrandığını yoxlamaq olar: yükləmə göstəricisi göstərilirmi, timeout düzgün işlənirmi, bağlantı itkisində UI donurmu. Xüsusilə keşləməni test etmək vacibdir — məlumatlar artıq yüklənibsə, tətbiq onları keşdən göstərməlidir, sonsuz yüklənməyə getməməlidir.

Server cavablarının redaktəsi

Breakpoints vasitəsilə server cavabını dəyişdirmək olar. Məsələn, məlumatların yerinə boş massiv qaytarmaq, status kodunu 500-ə dəyişmək, JSON-a yeni sahə əlavə etmək. Bu, server kodunu dəyişmədən sərhəd hallarının işlənməsini yoxlamağa imkan verir — mobil inkişafda Charles-ın ən güclü tətbiqlərindən biridir.

Tez-tez verilən suallar

Charles Proxy pulsuzdur?

Charles Proxy kommersiya məhsuludur 30 günlük sınaq müddəti ilə. Sınaq müddəti bitdikdən sonra proqram hər işə salınanda 30 dəqiqəlik fasilə ilə işləməyə davam edir. Lisenziyanın dəyəri bir nüsxə üçün 50$ təşkil edir. Proxyman (macOS) və mitmproxy (çoxplatformalı) kimi pulsuz alternativlər mövcuddur.

iOS simulyatorunun trafikini ələ keçirmək olarmı?

Bəli, iOS simulyatoru avtomatik olaraq macOS sistem proksisindən istifadə edir. Charles-ı işə salmaq və SSL-proksiləşdirməni aktiv etmək kifayətdir — simulyatorun bütün trafiki ələ keçiriləcək. Simulyator üçün sertifikat qurulumu avtomatik baş verir, yalnız macOS açar paketində Charles sertifikatına etibar etmək tələb olunur.

Charles Proxyman-dan nə ilə fərqlənir?

Əsas fərqlər: Charles çoxplatformalıdır (Windows, macOS, Linux), Proxyman — yalnız macOS və iOS. Charles daha geniş alətlər dəstinə malikdir (Rewrite, Map Local, Repeat, Auto Save), lakin pulludur. Proxyman əsas funksionallıq üçün pulsuzdur, müasir interfeys və iOS simulyatoru ilə native inteqrasiyaya malikdir.

Charles Proxy məhsuldarlığa necə təsir edir?

Charles proksidən trafik keçərkən gecikmə əlavə edir, xüsusilə aktiv SSL-proksiləşdirmədə (şifrədənçıxarma/şifrələmə). Müasir kompüterlərdə gecikmə sorğu üçün 5–15 millisaniyə təşkil edir. Məhsuldarlıq testləri üçün Recording Control vasitəsilə statik resurslar (CSS, JS, şəkillər) üçün SSL-proksiləşdirməni söndürmək tövsiyə olunur.

Charles-dan sessiyanı necə ixrac etmək olar?

Charles aşağıdakı formatlara ixracı dəstəkləyir: .chls (öz formatı, Charles-da yenidən açmaq üçün), HAR (HTTP Archive, brauzerlərdə və digər alətlərdə açılır), CSV (Excel və ya cədvəllərdə işlənmək üçün), Trace (curl-uyğun formatda konkret sorğunun ixracı üçün). İxrac File → Export Session menyusu vasitəsilə həyata keçirilir.

Nəticə

  • Charles Proxy — 2004-cü ildən bəri şəbəkə trafikini ələ keçirmək, baxmaq və dəyişdirmək üçün peşəkar HTTP/HTTPS proksi-serverdir
  • İş prinsipi — MITM-proksi: bütün sorğular Charles-dan keçir ki, bu da onları anında təhlil etməyə və dəyişdirməyə imkan verir
  • Güclü alətlər: Rewrite, Breakpoints, Map Local, Map Remote, Throttle — API və istifadəçi təcrübəsinin hərtərəfli debug edilməsi üçün
  • HTTPS-proksiləşdirmə cihazda Charles kök sertifikatının quraşdırılmasını, Android 7+ üçün isə Debug quruluşunda network_security_config.xml tələb edir
  • Throttle profilləri real şəraitdə tətbiq davranışını test etmək üçün 3G, EDGE, DSL və digər bağlantı növlərini simulyasiya etməyə imkan verir
  • Sessiyaların ixracı HAR, CSV və .chls formatlarında təhlil, hesabat və komandaya ötürmək üçün
  • Məhdud büdcəli layihələr üçün pulsuz alternativləri nəzərdən keçirin: Proxyman (macOS) və ya mitmproxy (çoxplatformalı open-source)

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun