الشبكات / المتوسط: العمر والثقة وبروتوكولات التطبيق / الدرس 12
تتبع دلالات HTTP عبر الوسطاء
افصل الأساليب والحالة والتأطير وإعادة الاتصال والنسخ والوسطاء والمخابئ في مسار الطلب.
في هذه الصفحة
أهداف الدرس
- شرح الدلالة مستقلة عن نسخة النقل.
- تمييز حالة التطبيق من فشل DNS وTCP وTLS.
- تتبع الوسيط والمخبأ بحدود ثقة صريحة.
تصف الأساليب والحالات معنى التطبيق
يحدد HTTP الأسلوب والمورد والحقول والحالة مستقلاً عن ترميز واحد. تختلف GET وPOST وتتعلق التكرارية بالأثر لا تطابق الرد. يثبت 4xx أو5xx إجابة مكون قد يكون وسيطاً. احفظ الأسلوب والجهة والمسار والحالة والهوية ولا تسم كل غير200 انقطاعاً أو تعد غير التكراري عميانياً.
تشترك النسخ بالدلالة وتختلف بالنقل
تستخدم 1.1 صياغتها واتصالها وتعدد 2 التدفقات بتأطير ثنائي، وتربط 3 الدلالة بـ QUIC فوق UDP وآلياته. لا تفسر TCP كل الويب. يعتمد التفاوض والبديل على النشر؛ يقلل التعدد كلفة ويضيف مشاركة ولا يضمن سرعة كل حمل. احفظ النسخة والاتصال قبل مقارنة الزمن.
تحليل الصيغة المعلنة لا تخمين الحدود
تمنع قواعد التأطير خلط الحمولة بالرسالة التالية. يوضح محلل صغير سطراً أو URL لا HTTP إنتاجياً. يحتاج الحقيقي الحقول والطول والنسخة والتشوه المتسق؛ قد يكون اختلاف الوسطاء أمنياً فلا تبن وسيطاً بتقسيم اعتباطي. استخدم مكتبات مدعومة؛ نفحص نصاً ثابتاً فقط.
from urllib.parse import urlsplit
url = urlsplit('https://report.example:8443/reports/7?format=json')
print('scheme=' + url.scheme)
print('host=' + str(url.hostname))
print('port=' + str(url.port))
print('path=' + url.path)
scheme=https
host=report.example
port=8443
path=/reports/7
يحلل المكونات فقط دون DNS أو اتصال أو مصادقة.
ينشئ الوسيط نقطة رصد وثقة أخرى
قد ينهي الوسيط ويعيد السياق ويوثق ويولد رداً فيرى الأصل عنوانه. لا تثق ببيانات Forwarded إلا من حد مضبوط مع معالجة نسخة العميل. لا يثبت فحص الموازن كل مسار أو اعتماد. سجل الأمامي والخلفي والنهاية وربط الطلب ولا تنشر جرداً خاصاً أو اعتماداً.
للاستجابة المخبأة حداثة وتحقق
تستخدم المخابئ توجيهات ومتحققات وعمرًا لإعادة الاستخدام. قد لا يصل الحديث للأصل ويتحقق الشرطي من تمثيل سابق. لا يتساوى no-cache وno-store وللخاص والمشترك حدود خاصة بالشخصي. لا تستنتج صحة الخلفي من نجاح مخبأ. يحسب المثبت حداثة معلنة لا كل القواعد.
max_age = 120
current_age = 90
print('synthetic_fresh=' + str(current_age < max_age))
print('remaining=' + str(max(0, max_age - current_age)))
synthetic_fresh=True
remaining=30
يبقى ثلاثون ثانية بالنموذج ولا ينفذ التخويل أو المتحققات أو Vary أو العمر الكامل.
الأخطاء الشائعة وإصلاحها
تسمية HTTP403 فشل TCP
- لماذا يحدث؟
- اختلط الرد بغياب النقل.
- كيف تصلحه؟
- حدد المجيب وسياسة التخويل.
- كيف تتجنب تكراره؟
- افصل المراحل.
افتراض TCP لكل الويب
- لماذا يحدث؟
- أُهمل HTTP3 وQUIC.
- كيف تصلحه؟
- سجل الفعلي.
- كيف تتجنب تكراره؟
- أدرج التفاوض بالتشخيص.
اعتبار نجاح مخبأ صحة الأصل
- لماذا يحدث؟
- قد لا يصل الطلب للأصل.
- كيف تصلحه؟
- ميز الاستخدام والتحقق والأصل.
- كيف تتجنب تكراره؟
- احفظ المخبأ مع دليل التوفر.
اختبر فهمك
1. يعيد وسيط عكسي502. ماذا تثبت قبل لوم شبكة العميل؟
اعرض الحل المشروح
وصل العميل مكون HTTP. حدد اتصال الخلفي وسياقه وميز الاسم والنقل وTLS والتطبيق؛ لا تسمي الحالة السبب.
2. لماذا لا يعني no-cache عدم التخزين ببساطة؟
اعرض الحل المشروح
يتعلق بإعادة الاستخدام والتحقق لا منع التخزين نفسه، فراجع القواعد والسياق قبل تصميم الخصوصية أو الحداثة من الاسم اللغوي.
أهم ما تعلمته
- تتبع HTTP عبر النقل والوسطاء الفعليين.
- عامل المخبأ وتنفيذ الأصل حدثين.