الاستجابة الوهمية
يستطيع Chute إرجاع بيانات وهمية لطلبات HTTP/HTTPS المطابقة دون الوصول إلى الخادم الحقيقي. هذا مفيد للاختبار، التطوير، أو حظر المحتوى غير المرغوب باستجابة مخصصة.
تُعرف قواعد الوهم في القسم [Map Local] (يدعم أيضاً [Mock] كاسم قسم قديم).
يمكن تطبيق عدة قواعد لطلب واحد. يتم استخدام أول استجابة وهمية بنمط رابط مطابق.
تنسيق الوهم المضمن
للاستجابات الوهمية البسيطة بمحتوى مضمن:
[Map Local]
^http://example\.com/api/status status=200 body={"ok":true}
^http://example\.com/blocked status=403
^http://ad\.com/.* status=200 body="<html></html>" content-type="text/html"
تتكون قاعدة الوهم المضمن من: تعبير نمطي للرابط، وواحد أو أكثر من معاملات الاستجابة key=value.
المعاملات المضمنة
status: مطلوب.
status=200
رمز حالة HTTP المراد إرجاعه.
body: اختياري.
body={"result":"mocked"}
محتوى الاستجابة المراد إرجاعه. إذا لم يتم تحديده، يتم إرجاع محتوى فارغ.
content-type: اختياري.
content-type=application/json
ترويسة Content-Type للاستجابة الوهمية. تستخدم مع body لتقديم استجابات مناسبة.
headers: اختياري.
headers=X-Custom:Value1;X-Another:Value2
ترويسات استجابة إضافية، مفصولة بـ ;.
تنسيق Map Local
لتقديم استجابات وهمية من ملفات محلية أو بمحتوى مشفر بـ base64:
[Map Local]
^https://example\.com/api data="/path/to/mock-response.json"
^https://example\.com/page data="/path/to/page.html" header="SGVhZGVyOiBWYWx1ZQ=="
^https://example\.com/pixel base64="R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
معاملات Map Local
| المعامل | الوصف |
|---|---|
data="/path/to/file" |
مسار الملف لتقديمه كمحتوى استجابة. يتم قراءة الملف عند وقت الطلب. |
base64="<encoded>" |
محتوى استجابة مشفر بـ base64. |
header="<base64>" |
ترويسات استجابة مخصصة مشفرة بـ base64 (بتنسيق Key: Value\n). |
يجب تحديد واحد على الأقل من
data=أوbase64=.
متغيرات القالب
عند استخدام data= أو base64=، يدعم محتوى الاستجابة استبدال متغيرات القالب:
| المتغير | يستبدل بـ |
|---|---|
{{url}} |
مسار الرابط الكامل للطلب |
{{host}} |
اسم مضيف الطلب |
{{path}} |
مسار الرابط النسبي |
{{method}} |
طريقة HTTP |
{{ua}} |
قيمة ترويسة User-Agent |
مثال ملف استجابة وهمية (response.json):
{
"requested_url": "{{ "{{url}}" }}",
"host": "{{ "{{host}}" }}",
"method": "{{ "{{method}}" }}"
}
ملاحظة: لطلبات HTTPS، يجب تفعيل فك تشفير MitM لاسم المضيف المطابق. سيتم تجاهل قواعد الوهم لحركة HTTPS بدون MitM.