Charles Proxy — ما هو، الإعداد والتقاط حركة مرور HTTPS

المؤلف: IT Sectr نُشر: 2026-05-08 وقت القراءة: 8 دق

Charles Proxy هو خادم بروكسي متعدد المنصات لتصحيح أخطاء حركة مرور HTTP/HTTPS، يستخدمه المطورون لالتقاط وعرض وتعديل طلبات الشبكة. وفقًا لـ Karl von Randow، منشئ الأداة (2025)، يُستخدم Charles في أكثر من 50,000 شركة حول العالم منذ عام 2004. البروكسي يدعم التقاط حركة المرور من الأجهزة المحمولة عبر 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 يومًا. يتم وضع الأداة كحل احترافي لمطوري التطبيقات المحمولة ومطوري الويب ومهندسي ضمان الجودة الذين يحتاجون إلى تحكم كامل في اتصالات HTTP.

التوافق مع المنصات

يعمل Charles كـ بروكسي نظام على الكمبيوتر ويمكنه التقاط حركة المرور من أي جهاز في نفس الشبكة: Android و iOS و المحاكيات ومتصفحات الويب وأجهزة IoT. لالتقاط HTTPS، تحتاج إلى تثبيت الشهادة الجذرية لـ Charles على كل جهاز. حركة المرور مدعومة على HTTP/1.1 و HTTP/2 (جزئيًا). HTTP/3 (QUIC) غير مدعوم على مستوى الالتقاط.

كيف يعمل Charles Proxy

يعمل Charles وفقًا لمبدأ بروكسي MITM (رجل في المنتصف): عندما يرسل العميل طلبًا عبر Charles، تلتقط الأداة الطلب، وتعيد توجيهه إلى الخادم الهدف، وتستقبل الرد، وتعده إلى العميل. تمر كل حركة المرور عبر Charles، مما يسمح بتحليلها وتعديلها.

هندسة البروكسي

عند التشغيل، يقوم Charles بإنشاء بروكسي HTTP محلي على المنفذ 8888 (افتراضيًا). يتم تكوين نظام التشغيل أو التطبيق لاستخدام هذا البروكسي. يتم إرسال جميع طلبات HTTP أولاً إلى Charles، الذي يعمل بعد ذلك كعميل كامل للخادم الهدف. بالنسبة لـ HTTPS، يستخدم Charles تقنية بروكسي SSL الخاصة به: يقوم بإنشاء شهادة فورية لكل مجال، موقعة من الشهادة الجذرية لـ Charles. إذا تم تثبيت الشهادة الجذرية على الجهاز كموثوقة، يمكن لـ Charles فك تشفير وعرض حركة مرور HTTPS.

أوضاع التشغيل

يدعم Charles وضعين: Proxy(خادم بروكسي كلاسيكي) و SOCKS Proxy(لحركة مرور UDP و TCP). لتطوير الويب، يُستخدم بروكسي HTTP القياسي. للأجهزة المحمولة — تكوين WiFi Proxy على الجهاز مع تحديد عنوان IP للكمبيوتر الذي يعمل عليه Charles. يدعم macOS التكوين التلقائي للبروكسي لمحاكي iOS.

xml
<!-- تهيئة network_security_config.xml لـ Android مع دعم Charles -->
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <!-- الوثوق بشهادة Charles في إصدار Debug -->
            <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 إلى آخر — على سبيل المثال، من خادم الإنتاج إلى staging للاختبار. تعمل كلتا الأداتين مع أنماط 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، وأدخل عنوان IP للكمبيوتر مع المنفذ 8888. ثم افتح متصفحًا على الجهاز واذهب إلى http://chls.pro/ssl لتنزيل شهادة Charles. على Android 7+ (API 24+)، يلزم وجود network_security_config.xml للثقة بشهادات المستخدم في إصدارات Debug — وإلا فقد لا يمرر التطبيق حركة المرور عبر 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. الحلول: تعطيل SSL Pinning في إصدارات Debug من خلال إعدادات OkHttp أو URLSession، أو استخدام Frida لتجاوز pinning في وقت التشغيل، أو استخدام Android Emulator مع وصول جذر.

سيناريوهات الاستخدام العملي لـ Charles Proxy

يحل Charles Proxy مهام تطوير واختبار محددة. دعنا نلقي نظرة على السيناريوهات الأكثر شيوعًا حيث تكون الأداة لا غنى عنها.

تصحيح أخطاء تكامل API

السيناريو الأكثر شيوعًا — التحقق من صحة طلبات API. يعرض Charles عنوان URL الدقيق للطلب، والرؤوس، والنص، والمعلمات. إذا أعاد الخادم استجابة غير متوقعة، ترى فورًا: بنية JSON، ورمز الخطأ، ورؤوس الاستجابة. هذا يسمح بالتمييز بين أخطاء العميل وأخطاء الخادم دون سجلات من كلا الجانبين.

الاختبار مع اتصال بطيء

باستخدام ملفات تعريف Throttle، يمكنك اختبار كيفية تصرف التطبيق في ظل سرعة اتصال منخفضة: هل يتم عرض مؤشر التحميل، هل يتم التعامل مع المهلات بشكل صحيح، هل تتجمد واجهة المستخدم عند فقدان الاتصال. من المهم بشكل خاص اختبار التخزين المؤقت — إذا تم تحميل البيانات بالفعل، يجب أن يعرضها التطبيق من ذاكرة التخزين المؤقت بدلاً من الدخول في حالة تحميل لا نهائية.

تحرير ردود الخادم

باستخدام Breakpoints، يمكنك تعديل استجابة الخادم قبل إرسالها إلى التطبيق. على سبيل المثال، إرجاع مصفوفة فارغة بدلاً من البيانات، أو تغيير رمز الحالة إلى 500، أو إضافة حقل جديد إلى JSON. هذا يسمح باختبار معالجة الحالات الحدودية دون تعديل كود الخادم — أحد أقوى استخدامات Charles في تطوير الجوال.

الأسئلة الشائعة

هل Charles Proxy مجاني؟

Charles Proxy هو منتج تجاري مع فترة تجريبية مدتها 30 يومًا. بعد انتهاء الفترة التجريبية، يستمر البرنامج في العمل مع توقف لمدة 30 دقيقة عند كل تشغيل. تكلفة الترخيص $50 لكل نسخة. توجد بدائل مجانية مثل Proxyman (macOS) و mitmproxy (متعدد المنصات).

هل يمكن التقاط حركة مرور محاكي iOS؟

نعم، محاكي iOS يستخدم تلقائيًا بروكسي نظام macOS. يكفي تشغيل Charles وتمكين بروكسي SSL — سيتم التقاط كل حركة مرور المحاكي. إعداد الشهادة للمحاكي يتم تلقائيًا، ما عليك سوى الوثوق بشهادة Charles في سلسلة مفاتيح macOS.

كيف يختلف Charles عن Proxyman؟

الاختلافات الرئيسية: Charles متعدد المنصات (Windows، macOS، Linux)، Proxyman مخصص لـ macOS و iOS فقط. Charles لديه مجموعة أدوات أوسع (Rewrite، Map Local، Repeat، Auto Save) ولكنه مدفوع. Proxyman مجاني للوظائف الأساسية، بواجهة حديثة وتكامل أصلي مع محاكي iOS.

كيف يؤثر Charles Proxy على الأداء؟

Charles يضيف زمن انتقال عند مرور حركة المرور عبر البروكسي، خاصة مع بروكسي SSL النشط (فك التشفير/التشفير). على أجهزة الكمبيوتر الحديثة، التأخير هو 5-15 مللي ثانية لكل طلب. لاختبارات الأداء، يُوصى بتعطيل بروكسي SSL للمحتوى الثابت (CSS, JS, الصور) عبر Recording Control.

كيف يتم تصدير جلسة من Charles؟

يدعم Charles التصدير إلى تنسيقات: .chls(أصلي، لإعادة الفتح في Charles)، HAR(HTTP Archive، يُفتح في المتصفحات والأدوات الأخرى)، CSV(للمعالجة في Excel أو جداول البيانات)، Trace(لتصدير طلب محدد بتنسيق متوافق مع curl). التصدير عبر قائمة File → Export Session.

الخلاصة

  • Charles Proxy هو خادم بروكسي HTTP/HTTPS احترافي لالتقاط وعرض وتعديل حركة مرور الشبكة منذ 2004
  • مبدأ العمل — بروكسي MITM: تمر جميع الطلبات عبر Charles، مما يسمح بتحليلها وتعديلها بسرعة
  • أدوات قوية: Rewrite، Breakpoints، Map Local، Map Remote، Throttle — لتصحيح أخطاء API وتجربة المستخدم بشكل شامل
  • بروكسي HTTPS يتطلب تثبيت الشهادة الجذرية لـ Charles على الجهاز، ولـ Android 7+ — network_security_config.xml في إصدارات Debug
  • ملفات تعريف Throttle تسمح بمحاكاة 3G، EDGE، DSL وأنواع اتصال أخرى لاختبار سلوك التطبيق في ظروف حقيقية
  • تصدير الجلسات إلى تنسيقات HAR، CSV و .chls للتحليل وإعداد التقارير والمشاركة مع الفريق
  • للمشاريع ذات الميزانية المحدودة، فكر في البدائل المجانية: Proxyman (macOS) أو mitmproxy (مفتوح المصدر متعدد المنصات)

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا