Charles Proxy — یہ کیا ہے، ترتیب اور HTTPS ٹریفک کی روک تھام

مصنف: IT Sectr اشاعت: 2026-05-08 مطالعے کا وقت: 8 منٹ

Charles Proxy ایک کراس پلیٹ فارم پراکسی سرور ہے جو HTTP/HTTPS ٹریفک کی ڈیبگنگ کے لیے استعمال ہوتا ہے، جسے ڈویلپرز نیٹ ورک کی درخواستوں کو روکنے، دیکھنے اور تبدیل کرنے کے لیے استعمال کرتے ہیں۔ Karl von Randow، ٹول کے تخلیق کار (2025) کے مطابق، Charles 2004 سے دنیا بھر کی 50,000 سے زیادہ کمپنیوں میں استعمال ہو رہا ہے۔ پراکسی WiFi کے ذریعے موبائل آلات سے ٹریفک روکنے، روٹ سرٹیفکیٹ انسٹالیشن کے ساتھ HTTPS پراکسی کرنے اور API تجزیہ کے لیے ٹولز کے وسیع سیٹ کو سپورٹ کرتا ہے۔

اہم نکات

  • Charles Proxy ایک HTTP/HTTPS پراکسی سرور ہے جو جدید ڈیبگنگ صلاحیتوں کے ساتھ نیٹ ورک ٹریفک کو روکنے اور تجزیہ کرنے کے لیے ہے
  • HTTPS پراکسی ڈیوائس پر Charles روٹ سرٹیفکیٹ انسٹال کرکے لاگو کی جاتی ہے، جو انکرپٹڈ ٹریفک دیکھنے کی اجازت دیتی ہے
  • Rewrite اور Breakpoints سرور یا کلائنٹ کوڈ کو تبدیل کیے بغیر درخواستوں اور جوابات کو فوری طور پر تبدیل کرنے کے طاقتور ٹولز ہیں
  • Map Local اور Map Remote جانچ کے لیے نیٹ ورک وسائل کو مقامی فائلوں یا متبادل سرورز سے تبدیل کرنے کی اجازت دیتے ہیں
  • Throttle خراب کنیکٹیویٹی کے حالات میں ایپ کے رویے کی جانچ کرنے کے لیے سست اور غیر مستحکم نیٹ ورک کنکشنز کی نقل کرتا ہے

Charles Proxy کیا ہے؟

Charles Proxy ایک HTTP پراکسی اور HTTP مانیٹر ہے جو کلائنٹ اور سرور کے درمیان ایک ثالث کے طور پر کام کرتا ہے۔ تمام درخواستیں اور جوابات Charles سے گزرتے ہیں، جس سے آپ ان کے مواد کو دیکھ سکتے ہیں، ان کی ساخت کا تجزیہ کر سکتے ہیں، ریئل ٹائم میں ڈیٹا میں ترمیم کر سکتے ہیں اور مختلف نیٹ ورک کے حالات کی نقل کر سکتے ہیں۔ یہ Windows، macOS اور Linux کے لیے دستیاب ہے۔

تاریخ اور مقام

Charles Proxy 2004 میں Karl von Randow نے بنایا تھا اور نیٹ ورک ٹریفک ڈیبگنگ کے لیے سب سے مشہور ٹولز میں سے ایک ہے۔ مفت متبادل کے برعکس، Charles 30 دن کی آزمائشی مدت کے ساتھ ادا شدہ لائسنس پیش کرتا ہے۔ یہ ٹول موبائل ایپ ڈویلپرز، ویب ڈویلپرز اور QA انجینئرز کے لیے ایک پیشہ ورانہ حل کے طور پر پوزیشن میں ہے جنہیں HTTP کمیونیکیشن پر مکمل کنٹرول کی ضرورت ہوتی ہے۔

پلیٹ فارم مطابقت

Charles کمپیوٹر پر ایک سسٹم پراکسی کے طور پر کام کرتا ہے اور ایک ہی نیٹ ورک پر کسی بھی ڈیوائس سے ٹریفک روک سکتا ہے: Android، iOS، سمیلیٹر، ایمولیٹر، ویب براؤزر اور IoT آلات۔ HTTPS کو روکنے کے لیے، آپ کو ہر ڈیوائس پر Charles روٹ سرٹیفکیٹ انسٹال کرنے کی ضرورت ہے۔ ٹریفک HTTP/1.1 اور HTTP/2 (جزوی) پر سپورٹ ہے۔ HTTP/3 (QUIC) انٹرسیپشن کی سطح پر سپورٹ نہیں ہے۔

Charles Proxy کیسے کام کرتا ہے

Charles MITM (Man-in-the-Middle) پراکسی کے اصول پر کام کرتا ہے: جب کلائنٹ Charles کے ذریعے درخواست بھیجتا ہے، ٹول درخواست کو روکتا ہے، اسے ہدف سرور پر بھیجتا ہے، جواب وصول کرتا ہے اور کلائنٹ کو واپس بھیجتا ہے۔ تمام ٹریفک Charles سے گزرتی ہے، جس سے اس کا تجزیہ اور ترمیم ممکن ہوتی ہے۔

پراکسی آرکیٹیکچر

لانچ ہونے پر، Charles پورٹ 8888 (ڈیفالٹ) پر ایک لوکل HTTP پراکسی بناتا ہے۔ آپریٹنگ سسٹم یا ایپلیکیشن اس پراکسی کو استعمال کرنے کے لیے کنفیگر کیا جاتا ہے۔ تمام HTTP درخواستیں پہلے Charles کو بھیجی جاتی ہیں، جو پھر ہدف سرور کے لیے ایک مکمل کلائنٹ کے طور پر کام کرتا ہے۔ HTTPS کے لیے، Charles اپنی SSL پراکسی تکنیک استعمال کرتا ہے: یہ ہر ڈومین کے لیے فوری طور پر ایک سرٹیفکیٹ تیار کرتا ہے، جو Charles روٹ سرٹیفکیٹ کے ذریعے دستخط شدہ ہوتا ہے۔ اگر روٹ سرٹیفکیٹ ڈیوائس پر قابل اعتماد کے طور پر انسٹال ہے، تو Charles HTTPS ٹریفک کو ڈکرپٹ اور دیکھ سکتا ہے۔

آپریٹنگ موڈز

Charles دو موڈز کو سپورٹ کرتا ہے: Proxy(کلاسک پراکسی سرور) اور SOCKS Proxy(UDP اور TCP ٹریفک کے لیے)۔ ویب ڈویلپمنٹ کے لیے معیاری HTTP پراکسی استعمال ہوتی ہے۔ موبائل آلات کے لیے — Charles چلانے والے کمپیوٹر کے IP ایڈریس کے ساتھ ڈیوائس پر WiFi Proxy کنفیگر کریں۔ macOS iOS سمیلیٹر کے لیے خودکار پراکسی کنفیگریشن کو سپورٹ کرتا ہے۔

xml
<!-- Charles سپورٹ کے ساتھ Android کے لیے network_security_config.xml کی ترتیب -->
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <!-- Debug بلڈ میں Charles سرٹیفکیٹ پر بھروسہ کریں -->
            <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>

Charles Proxy کی اہم خصوصیات

Charles Proxy سادہ درخواست روکنے سے کہیں آگے بڑھ کر ٹریفک تجزیہ اور ترمیم کے لیے پیشہ ورانہ ٹولز کا ایک سیٹ فراہم کرتا ہے۔

Rewrite اور Breakpoints

Rewrite ٹول آپ کو درخواستوں یا جوابات کے کچھ حصوں (ہیڈرز، URL پیرامیٹرز، جوابی باڈی) کو خود بخود تبدیل کرنے کی اجازت دیتا ہے۔ مثال کے طور پر، آپ User-Agent ہیڈر کو کسی دوسرے ڈیوائس کی قدر سے بدل سکتے ہیں یا مخصوص کوکیز کو ہٹا سکتے ہیں۔ Breakpoints ڈیبگر کی طرح کام کرتے ہیں: درخواست منتخب مرحلے پر رک جاتی ہے (بھیجنے سے پہلے یا وصول کرنے سے پہلے)، اور ڈویلپر آگے بڑھنے سے پہلے دستی طور پر اس کا مواد تبدیل کر سکتا ہے۔ یہ غلطی کے جوابات یا غیر معیاری حالات کی پروسیسنگ کی جانچ کے لیے مفید ہے۔

Map Local اور Map Remote

Map Local آپ کو نیٹ ورک ریسورس (CSS, JS, JSON) کو ڈسک پر موجود مقامی فائل سے تبدیل کرنے کی اجازت دیتا ہے۔ فرنٹ اینڈ ڈویلپمنٹ میں یہ ناگزیر ہے: آپ CSS/JS میں ترمیم کر سکتے ہیں اور سرور پر ڈپلائے کیے بغیر فوری نتیجہ دیکھ سکتے ہیں۔ Map Remote درخواستوں کو ایک URL سے دوسرے پر ری ڈائریکٹ کرتا ہے — مثال کے طور پر، ٹیسٹنگ کے لیے پروڈکشن سرور سے سٹیجنگ پر۔ دونوں ٹولز URL پیٹرن کے ساتھ کام کرتے ہیں جو وائلڈ کارڈ کو سپورٹ کرتے ہیں۔

Throttle اور نیٹ ورک کے حالات کی نقل

Throttle ٹول پہلے سے طے شدہ پروفائلز (3G, EDGE, GPRS, DSL, WiFi) کا استعمال کرتے ہوئے مختلف قسم کے نیٹ ورک کنکشنز کی نقل کرنے کی اجازت دیتا ہے۔ آپ رفتار کی حد (ڈاؤن لوڈ/اپ لوڈ)، لیٹنسی، پیکٹ لاس اور استحکام کنفیگر کر سکتے ہیں۔ یہ سست یا غیر مستحکم کنکشنز پر ایپ کے رویے (مناسب ٹائم آؤٹ ہینڈلنگ، دوبارہ کوشش منطق، آف لائن موڈ) کی جانچ کے لیے اہم ہے۔

پروفائلڈاؤن لوڈاپ لوڈلیٹنسیعام منظر نامہ
3G780 kbps330 kbps200 msکمزور موبائل سگنل کے ساتھ جانچ
EDGE130 kbps50 kbps400 msانتہائی سست کنکشن
GPRS50 kbps20 kbps500 msکم از کم ممکنہ کنکشن
DSL2 Mbps256 kbps50 msگھریلو وائرڈ کنکشن
WiFi10 Mbps10 Mbps10 msاچھا WiFi کنکشن

Auto Save اور Recording

Charles ٹریفک سیشنز کو .chls فائلوں میں خود بخود محفوظ کر سکتا ہے، جس سے آپ بعد میں ان کا تجزیہ کر سکتے ہیں یا ساتھیوں کے ساتھ شیئر کر سکتے ہیں۔ Recording Control آپ کو لچکدار طریقے سے کنفیگر کرنے کی اجازت دیتا ہے کہ کون سی ٹریفک محفوظ کرنی ہے: ڈومین، مواد کی قسم یا اسٹیٹس کوڈ کے مطابق۔ یہ طویل مدتی API مانیٹرنگ کے لیے آسان ہے۔

موبائل آلات کے لیے Charles Proxy ترتیب دینا

موبائل ایپ ٹریفک کی ڈیبگنگ کے لیے، Charles کو WiFi Proxy کے طور پر کنفیگر کیا جاتا ہے: کمپیوٹر کے ساتھ ایک ہی نیٹ ورک پر موجود تمام آلات Charles کے ذریعے ٹریفک روٹ کر سکتے ہیں۔ درست HTTPS کنفیگریشن کے لیے موبائل ڈیوائس پر Charles سرٹیفکیٹ انسٹال کرنا ضروری ہے۔

Android پر ترتیب

Android کے لیے: Settings → WiFi → Advanced → Proxy کھولیں، Manual منتخب کریں اور پورٹ 8888 کے ساتھ کمپیوٹر کا IP ایڈریس درج کریں۔ پھر ڈیوائس پر براؤزر کھولیں اور Charles سرٹیفکیٹ ڈاؤن لوڈ کرنے کے لیے http://chls.pro/ssl پر جائیں۔ Android 7+ (API 24+) پر، Debug بلڈ میں صارف سرٹیفکیٹ پر بھروسہ کرنے کے لیے network_security_config.xml کی ضرورت ہے — ورنہ ایپ Charles کے ذریعے ٹریفک روٹ نہیں کر سکتی۔

iOS پر ترتیب

iOS کے لیے: Settings → WiFi → پراکسی کنفیگر کریں IP اور پورٹ 8888 کے ساتھ۔ پھر Safari → http://chls.pro/ssl → سرٹیفکیٹ پروفائل انسٹال کریں۔ iOS 10.3+ پر، آپ کو اضافی طور پر سرٹیفکیٹ بھروسہ فعال کرنے کی ضرورت ہے: Settings → General → About → Certificate Trust Settings → Charles Proxy آن کریں۔ iOS سرٹیفکیٹ کے بارے میں زیادہ سخت ہے: کچھ ایپس SSL Pinning استعمال کر سکتی ہیں، قابل اعتماد سرٹیفکیٹ ہونے کے باوجود Charles کے ذریعے ٹریفک کو بلاک کر سکتی ہیں۔

SSL Pinning کے مسائل کا حل

اگر ایپ SSL Pinning(سرور سرٹیفکیٹ پننگ) استعمال کرتی ہے، تو Charles کے ذریعے معیاری پراکسی کام نہیں کرے گی — ایپ Charles سرٹیفکیٹ کو مسترد کر دے گی۔ حل: OkHttp یا URLSession کی ترتیبات کے ذریعے Debug بلڈ میں SSL Pinning غیر فعال کریں، رن ٹائم پر پننگ کو بائی پاس کرنے کے لیے Frida استعمال کریں، یا روٹ ایکسیس کے ساتھ Android Emulator استعمال کریں۔

Charles Proxy کے عملی استعمال کے معاملات

Charles Proxy مخصوص ترقی اور جانچ کے کاموں کو حل کرتا ہے۔ آئیے سب سے عام منظرناموں پر نظر ڈالتے ہیں جہاں ٹول ناگزیر ہے۔

API انٹیگریشن کی ڈیبگنگ

سب سے عام منظر نامہ — API درخواستوں کی درستگی کی جانچ۔ Charles درست درخواست URL، ہیڈرز، باڈی اور پیرامیٹرز دکھاتا ہے۔ اگر سرور غیر متوقع جواب دیتا ہے، تو آپ فوری طور پر دیکھتے ہیں: JSON ساخت، غلطی کوڈ، جوابی ہیڈرز۔ یہ دونوں طرف سے لاگ کے بغیر کلائنٹ سائیڈ کی غلطیوں کو سرور سائیڈ کی غلطیوں سے الگ کرنے کی اجازت دیتا ہے۔

سست کنکشن کے ساتھ جانچ

Throttle پروفائلز کا استعمال کرتے ہوئے، آپ جانچ سکتے ہیں کہ ایپ کم کنکشن اسپیڈ پر کیسے برتاؤ کرتی ہے: کیا لوڈنگ انڈیکیٹر ظاہر ہوتا ہے، کیا ٹائم آؤٹ صحیح طریقے سے ہینڈل ہوتے ہیں، کیا کنکشن کھونے پر UI جم جاتا ہے۔ کیشنگ کی جانچ خاص طور پر اہم ہے — اگر ڈیٹا پہلے ہی لوڈ ہو چکا ہے، تو ایپ کو لامتناہی لوڈنگ میں جانے کے بجائے کیشے سے ڈیٹا دکھانا چاہیے۔

سرور کے جوابات میں ترمیم

Breakpoints کا استعمال کرتے ہوئے، آپ ایپ کو بھیجے جانے سے پہلے سرور کے جواب میں ترمیم کر سکتے ہیں۔ مثال کے طور پر، ڈیٹا کے بجائے خالی array لوٹائیں، اسٹیٹس کوڈ کو 500 میں تبدیل کریں، JSON میں نیا فیلڈ شامل کریں۔ یہ سرور کوڈ میں ترمیم کیے بغیر کنارے کیسز کی پروسیسنگ کی جانچ کرنے کی اجازت دیتا ہے — موبائل ڈویلپمنٹ میں Charles کے سب سے طاقتور استعمال میں سے ایک۔

اکثر پوچھے گئے سوالات

کیا Charles Proxy مفت ہے؟

Charles Proxy 30 دن کی آزمائشی مدت کے ساتھ ایک تجارتی مصنوعہ ہے۔ آزمائشی مدت ختم ہونے کے بعد، پروگرام کام جاری رکھتا ہے لیکن ہر اسٹارٹ اپ پر 30 منٹ کے لیے رک جاتا ہے۔ لائسنس کی قیمت $50 فی کاپی ہے۔ Proxyman (macOS) اور mitmproxy (کراس پلیٹ فارم) جیسے مفت متبادل موجود ہیں۔

کیا میں iOS سمیلیٹر ٹریفک روک سکتا ہوں؟

ہاں، iOS سمیلیٹر خود بخود macOS سسٹم پراکسی استعمال کرتا ہے۔ بس Charles شروع کریں اور SSL پراکسی کو فعال کریں — تمام سمیلیٹر ٹریفک روک لی جائے گی۔ سمیلیٹر کے لیے سرٹیفکیٹ سیٹ اپ خود بخود ہوتا ہے؛ آپ کو صرف macOS کیچین میں Charles سرٹیفکیٹ پر بھروسہ کرنے کی ضرورت ہے۔

Charles Proxyman سے کیسے مختلف ہے؟

بنیادی فرق: Charles کراس پلیٹ فارم (Windows, macOS, Linux) ہے، Proxyman صرف macOS اور iOS کے لیے ہے۔ Charles کے پاس ٹولز کا وسیع تر سیٹ ہے (Rewrite, Map Local, Repeat, Auto Save) لیکن ادا شدہ ہے۔ Proxyman بنیادی فعالیت کے لیے مفت ہے، جدید انٹرفیس اور مقامی iOS سمیلیٹر انٹیگریشن کے ساتھ۔

Charles Proxy کارکردگی کو کیسے متاثر کرتا ہے؟

Charles پراکسی کے ذریعے ٹریفک گزرنے پر لیٹنسی بڑھاتا ہے، خاص طور پر فعال SSL پراکسی (ڈکرپشن/اینکرپشن) کے ساتھ۔ جدید کمپیوٹرز پر، تاخیر 5–15 ملی سیکنڈ فی درخواست ہے۔ کارکردگی کی جانچ کے لیے، Recording Control کے ذریعے جامد مواد (CSS, JS, تصاویر) کے لیے SSL پراکسی کو غیر فعال کرنے کی سفارش کی جاتی ہے۔

Charles سے سیشن کیسے ایکسپورٹ کریں؟

Charles ایکسپورٹ کو سپورٹ کرتا ہے فارمیٹس: .chls(مقامی، Charles میں دوبارہ کھولنے کے لیے)، HAR(HTTP Archive، براؤزرز اور دیگر ٹولز میں کھلتا ہے)، CSV(Excel یا اسپریڈ شیٹس میں پروسیسنگ کے لیے)، Trace(curl کے مطابق فارمیٹ میں مخصوص درخواست ایکسپورٹ کرنے کے لیے)۔ File → Export Session مینو کے ذریعے ایکسپورٹ کریں۔

خلاصہ

  • Charles Proxy 2004 سے نیٹ ورک ٹریفک کو روکنے، دیکھنے اور تبدیل کرنے کے لیے ایک پیشہ ور HTTP/HTTPS پراکسی سرور ہے
  • کام کرنے کا اصول — MITM پراکسی: تمام درخواستیں Charles سے گزرتی ہیں، فوری تجزیہ اور ترمیم کی اجازت دیتی ہیں
  • طاقتور ٹولز: Rewrite, Breakpoints, Map Local, Map Remote, Throttle — جامع API ڈیبگنگ اور صارف کے تجربے کی جانچ کے لیے
  • HTTPS پراکسی کے لیے ڈیوائس پر Charles روٹ سرٹیفکیٹ انسٹال کرنا ضروری ہے، اور Android 7+ کے لیے — Debug بلڈز میں network_security_config.xml
  • Throttle پروفائلز حقیقی دنیا کے حالات میں ایپ کے رویے کی جانچ کرنے کے لیے 3G, EDGE, DSL اور دیگر کنکشن اقسام کی نقل کرنے دیتے ہیں
  • سیشن ایکسپورٹ HAR, CSV اور .chls فارمیٹس میں تجزیہ، رپورٹنگ اور ٹیم کے ساتھ اشتراک کے لیے
  • محدود بجٹ والے منصوبوں کے لیے، مفت متبادل پر غور کریں: Proxyman (macOS) یا mitmproxy (کراس پلیٹ فارم اوپن سورس)

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں