Charles Proxy — HTTP/HTTPS trafigini disk raskadrovka qilish uchun ko'p platformali proksi-server bo'lib, ishlab chiquvchilar tomonidan tarmoq so'rovlarini ushlash, ko'rish va o'zgartirish uchun ishlatiladi. Karl von Randow, asbob yaratuvchisi (2025) ma'lumotlariga ko'ra, Charles 2004 yildan beri dunyo bo'ylab 50 000 dan ortiq kompaniyalarda qo'llaniladi. Proksi WiFi orqali mobil qurilmalardan trafikni ushlash, ildiz sertifikatini o'rnatish bilan HTTPS-proksilash va API tahlili uchun keng vositalar to'plamini qo'llab-quvvatlaydi.
Asosiy fikrlar
Charles Proxy — mijoz va server o'rtasida vositachi sifatida ishlaydigan HTTP-proksi va HTTP-monitor. Barcha so'rov va javoblar Charles orqali o'tadi, bu ularning mazmunini ko'rish, tuzilmani tahlil qilish, ma'lumotlarni real vaqtda o'zgartirish va turli tarmoq sharoitlarini simulyatsiya qilish imkonini beradi. Windows, macOS va Linux uchun mavjud.
Charles Proxy 2004 yilda Karl fon Randow tomonidan yaratilgan va tarmoq trafigini disk raskadrovka qilish uchun eng mashhur vositalardan biri bo'lib qolmoqda. Bepul alternativlardan farqli o'laroq, Charles 30 kunlik sinov muddati bilan pulli litsenziyani taklif qiladi. Asbob HTTP kommunikatsiyalari ustidan to'liq nazoratga muhtoj bo'lgan mobil ilova ishlab chiquvchilari, veb-ishlab chiquvchilar va QA muhandislari uchun professional yechim sifatida joylashtirilgan.
Charles kompyuterda tizim proksisi sifatida ishlaydi va bir xil tarmoqdagi istalgan qurilmadan trafikni ushlashi mumkin: Android, iOS, simulyatorlar, emulyatorlar, veb-brauzerlar va IoT qurilmalari. HTTPS ni ushlash uchun har bir qurilmada Charles ildiz sertifikatini o'rnatish kerak. Trafik HTTP/1.1 va HTTP/2 (qisman) qo'llab-quvvatlanadi. HTTP/3 (QUIC) ushlash darajasida qo'llab-quvvatlanmaydi.
Charles MITM (Man-in-the-Middle) proksi printsipi asosida ishlaydi: mijoz Charles orqali so'rov yuborganda, asbob bu so'rovni ushlaydi, maqsadli serverga yo'naltiradi, javobni oladi va mijozga qaytaradi. Barcha trafik Charles orqali o'tadi, bu uni tahlil qilish va o'zgartirish imkonini beradi.
Ishga tushirilganda, Charles 8888 portida (standart) mahalliy HTTP proksi yaratadi. Operatsion tizim yoki ilova ushbu proksidan foydalanish uchun sozlanadi. Barcha HTTP so'rovlari avval Charles ga yuboriladi, keyin u maqsadli server uchun to'liq mijoz sifatida ishlaydi. HTTPS uchun Charles o'zining SSL-proksilash texnikasidan foydalanadi: har bir domen uchun Charles ildiz sertifikati bilan imzolangan sertifikatni joyida yaratadi. Agar ildiz sertifikati qurilmada ishonchli sifatida o'rnatilgan bo'lsa, Charles HTTPS trafigini shifrdan chiqarishi va ko'rishi mumkin.
Charles ikkita rejimni qo'llab-quvvatlaydi: Proxy (klassik proksi-server) va SOCKS Proxy (UDP va TCP trafiki uchun). Veb-ishlab chiqish uchun standart HTTP-proksi ishlatiladi. Mobil qurilmalar uchun — Charles ishlayotgan kompyuterning IP manzilini ko'rsatgan holda qurilmada WiFi Proxy sozlamalari. MacOS iOS simulyatori uchun avtomatik proksi sozlamalarini qo'llab-quvvatlaydi.
<!-- Android uchun Charles qo'llab-quvvatlashi bilan network_security_config.xml sozlamasi -->
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Debug qurilishida Charles sertifikatiga ishonish -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
Charles Proxy oddiy so'rovlarni ushlashdan ancha uzoqqa ketadigan professional vositalar to'plamini taqdim etadi.
Rewrite vositasi so'rov yoki javoblarning ma'lum qismlarini avtomatik o'zgartirish imkonini beradi: sarlavhalar, URL parametrlari, javob tanasi. Masalan, User-Agent sarlavhasini boshqa qurilmadagi qiymat bilan almashtirish yoki ma'lum cookie-fayllarni olib tashlash mumkin. Breakpoints debugger kabi ishlaydi: so'rov tanlangan bosqichda (yuborishdan oldin yoki olishdan oldin) to'xtatiladi va ishlab chiquvchi uning mazmunini qo'lda o'zgartirishi mumkin. Bu xato javoblarini yoki nostandart holatlarni qayta ishlashni sinash uchun foydali.
Map Local tarmoq resursini (CSS, JS, JSON) diskdagi mahalliy fayl bilan almashtirish imkonini beradi. Bu frontend ishlab chiqishda ajralmas hisoblanadi: CSS/JS ni o'zgartirish va serverni joylashtirmasdan darhol natijani ko'rish mumkin. Map Remote so'rovlarni bir URL dan boshqasiga yo'naltiradi — masalan, sinov uchun ishlab chiqarish serveridan staging ga. Ikkala vosita wildcards qo'llab-quvvatlashi bilan URL shablonlari asosida ishlaydi.
Throttle vositasi oldindan o'rnatilgan profillar bo'yicha turli xil tarmoq ulanish turlarini simulyatsiya qilish imkonini beradi: 3G, EDGE, GPRS, DSL, WiFi. Tezlik chegarasini (yuklab olish/yuklash), kechikish, paket yo'qotish va barqarorlikni sozlash mumkin. Bu sekin yoki beqaror ulanishda ilova harakatini sinash uchun juda muhimdir — taym-autlarni to'g'ri qayta ishlash, qayta urinishlar, oflayn rejim.
| Profil | Yuklab olish | Yuklash | Kechikish | Oddiy stsenariy |
|---|---|---|---|---|
| 3G | 780 kbps | 330 kbps | 200 ms | Zaif mobil signal bilan sinash |
| EDGE | 130 kbps | 50 kbps | 400 ms | Juda sekin ulanish |
| GPRS | 50 kbps | 20 kbps | 500 ms | Mumkin bo'lgan minimal ulanish |
| DSL | 2 Mbps | 256 kbps | 50 ms | Uy simli ulanishi |
| WiFi | 10 Mbps | 10 Mbps | 10 ms | Yaxshi WiFi ulanishi |
Charles trafik seanslarini avtomatik ravishda .chls fayllariga saqlashi mumkin, bu ularni keyinroq tahlil qilish yoki hamkasblarga yuborish imkonini beradi. Recording Control qaysi trafikni saqlash kerakligini moslashuvchan sozlash imkonini beradi: domenlar, kontent turlari, status kodlari bo'yicha. Bu API ning uzoq muddatli monitoringi uchun qulay.
Mobil ilovalar trafigini disk raskadrovka qilish uchun Charles WiFi Proxy sifatida sozlanadi: kompyuter bilan bir xil tarmoqdagi barcha qurilmalar trafikni Charles orqali yo'naltirishi mumkin. HTTPS ni to'g'ri sozlash mobil qurilmada Charles sertifikatini o'rnatishni talab qiladi.
Android uchun kerak: Sozlamalar → WiFi → Kengaytirilgan → Proksi ni oching, Manual ni tanlang va 8888 port bilan kompyuterning IP manzilini kiriting. Keyin qurilmada brauzerni oching va Charles sertifikatini yuklab olish uchun http://chls.pro/ssl manziliga o'ting. Android 7+ (API 24+) da Debug qurilishida foydalanuvchi sertifikatlariga ishonish uchun network_security_config.xml talab qilinadi — aks holda ilova trafikni Charles orqali o'tkazmasligi mumkin.
iOS uchun: Sozlamalar → WiFi → proksini sozlash IP va 8888 portiga. Keyin Safari → http://chls.pro/ssl → sertifikat profilini o'rnating. iOS 10.3+ da qo'shimcha ravishda sertifikatga ishonishni yoqish kerak: Sozlamalar → Umumiy → Haqida → Sertifikat ishonch sozlamalari → Charles Proxy ni yoqing. iOS sertifikatlar bilan bog'liq holda qattiqroq: ba'zi ilovalar hatto ishonchli sertifikat bilan ham Charles orqali trafikni bloklaydigan SSL Pinning dan foydalanishi mumkin.
Agar ilova SSL Pinning (server sertifikatini mahkamlash) dan foydalansa, Charles orqali standart proksilash ishlamaydi — ilova Charles sertifikatini rad etadi. Yechimlar: OkHttp yoki URLSession sozlamalari orqali Debug qurilishida SSL Pinning ni o'chirish, Runtime da pinning ni chetlab o'tish uchun Frida dan foydalanish yoki ildiz kirishi bilan Android Emulator ni qo'llash.
Charles Proxy aniq ishlab chiqish va test vazifalarini hal qiladi. Keling, asbob ajralmas bo'lgan eng keng tarqalgan stsenariylarni ko'rib chiqaylik.
Eng keng tarqalgan stsenariy — API so'rovlarining to'g'riligini tekshirish. Charles so'rovning aniq URL sini, sarlavhalarini, tanasini, parametrlarini ko'rsatadi. Agar server kutilmagan javob qaytarsa, darhol ko'rinadi: JSON tuzilishi, xato kodi, javob sarlavhalari. Bu har ikki tomondan loglarsiz mijoz xatosini server xatosidan ajratish imkonini beradi.
Throttle profillaridan foydalanib, ilova past ulanish tezligida qanday harakat qilishini tekshirish mumkin: yuklash indikatori ko'rsatiladimi, taym-aut to'g'ri qayta ishlanadimi, ulanish uzilganda UI muzlaydimi. Keshni sinash ayniqsa muhim — agar ma'lumotlar allaqachon yuklangan bo'lsa, ilova ularni keshdan ko'rsatishi kerak, cheksiz yuklashga kirmasligi kerak.
Breakpoints yordamida server javobini o'zgartirish mumkin. Masalan, ma'lumotlar o'rniga bo'sh massivni qaytarish, status kodini 500 ga o'zgartirish, JSON ga yangi maydon qo'shish. Bu server kodini o'zgartirmasdan chekka holatlarni qayta ishlashni tekshirish imkonini beradi — mobil ishlab chiqishda Charles ning eng kuchli qo'llanmalaridan biri.
Ko'p beriladigan savollar
Charles Proxy tijoriy mahsulot bo'lib, 30 kunlik sinov muddatiga ega. Sinov muddati tugagandan so'ng, dastur har bir ishga tushirishda 30 daqiqalik tanaffus bilan ishlashda davom etadi. Litsenziya narxi bir nusxa uchun 50$. Proxyman (macOS) va mitmproxy (ko'p platformali) kabi bepul alternativlar mavjud.
Ha, iOS simulyatori avtomatik ravishda macOS tizim proksisidan foydalanadi. Charles ni ishga tushirish va SSL-proksilashni yoqish kifoya — simulyatorning barcha trafigi ushlanadi. Simulyator uchun sertifikat sozlamalari avtomatik ravishda amalga oshiriladi, faqat macOS kalitlar to'plamida Charles sertifikatiga ishonish kerak.
Asosiy farqlar: Charles ko'p platformali (Windows, macOS, Linux), Proxyman — faqat macOS va iOS. Charles kengroq vositalar to'plamiga ega (Rewrite, Map Local, Repeat, Auto Save), lekin pulli. Proxyman asosiy funksionallik uchun bepul, zamonaviy interfeys va iOS simulyatori bilan mahalliy integratsiyaga ega.
Charles proksi orqali trafik o'tganda kechikish qo'shadi, ayniqsa faol SSL-proksilashda (shifrdan chiqarish/shifrlash). Zamonaviy kompyuterlarda kechikish so'rov uchun 5–15 millisekundni tashkil qiladi. Unumdorlik testlari uchun Recording Control orqali statik resurslar (CSS, JS, tasvirlar) uchun SSL-proksilashni o'chirish tavsiya etiladi.
Charles formatlarga eksportni qo'llab-quvvatlaydi: .chls (o'z formati, Charles da qayta ochish uchun), HAR (HTTP Archive, brauzerlar va boshqa vositalarda ochiladi), CSV (Excel yoki jadvallarda qayta ishlash uchun), Trace (curl-mos formatda aniq so'rovni eksport qilish uchun). Eksport File → Export Session menyusi orqali amalga oshiriladi.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.