كمطورين، غالباً ما نختبر مواقعنا على أجهزة قوية واتصال إنترنت فائق السرعة. لكن الواقع مختلف: مستخدم في قرية نائية قد يتصفح موقعك عبر شبكة 3G متقطعة. إذا كان موقعك "ثقيلاً"، ستخسر هذا المستخدم. البروكسي يمكنه أن يلعب دور "المبطئ" (Throttler) لمحاكاة ظروف الشبكة الواقعية.
لماذا نحاكي الشبكات البطيئة؟
محاكاة السرعات المختلفة تساعدك في اكتشاف مشاكل لا تظهر في البيئة المثالية:
- Timeout Errors: هل السكربتات الخاصة بك تفشل بوقار (Graceful Degradation) عند بطء الشبكة؟
- Loading Order: هل يظهر المحتوى المهم أولاً أم ينتظر تحميل خطوط وإعلانات ثقيلة؟
- Race Conditions: مشاكل التزامن التي تظهر فقط عند تأخر استجابة السيرفر.
كيفية استخدام Charles Proxy للمحاكاة
أداة Charles Proxy هي المعيار الذهبي لهذا الغرض. يمكنك إعداد "Throttling Profile" يحاكي شبكة 3G القياسية:
- Bandwidth: 384 kbps
- Latency: 150 ms
- Packet Loss: 2%
إعداد Throttling في Squid
يمكنك أيضاً استخدام Squid Proxy لتحديد السرعة باستخدام delay_pools:
# Squid Configuration for Throttling
acl slow_users src 192.168.1.0/24
delay_pools 1
delay_class 1 1
delay_parameters 1 64000/64000 # Limit to 64KB/s
delay_access 1 allow slow_users