HTTP Hypertext Transfer Protocol
بروتوكول نقل النصوص HTTP
سنتعرف في هذا الدرس على مقدمة بسيطة عن بروتوكول نقل النصوص HTTP حيث سنتعرف على بروتوكول HTTP، ومكوناته بما في ذلك العميل أو وكيل المستخدم، خادم الويب، والبروكسي وسنتعرف على كل منهم بالتفصيل، كما سنتعرف على كيفية عمل بروتوكول HTTP.
التاريخ
الدروس
المستوى
اللغة
المشاهدات
المواضيع
الشروحات chevron_left HTTP Hypertext Transfer Protocol chevron_left Web Technology
HTTP Hypertext Transfer Protocol
بروتوكول نقل النصوص HTTP
</>
HTTP Hypertext Transfer Protocol Introduction
مقدمة في بروتوكول نقل النصوص HTTP
بروتوكول نقل النصوص HTTP هو بروتوكول يُستخدم لتبادل البيانات عبر شبكة الإنترنت بين الخادم الذي يخزن البيانات والمتصفحات التي تطلب تلك البيانات، ويقوم هذا البروتوكول بتحديد كيفية تبادل البيانات بين الخوادم ومتصفحات الإنترنت عن طريق إرسال طلبات requests واستقبال استجابات responses. على سبيل المثال، عند زيارة موقع ويب وليكن موقع Close Tag، يُرسل المتصفح طلبًا إلى خادم الويب الخاص بموقع closetag.com باستخدام بروتوكول HTTP، ومن ثم يستجيب خادم Close Tag بالبيانات المطلوبة على شكل صفحات ويب لعرضها على المتصفح.
يُستخدم بروتوكول HTTP بالتعاون مع مجموعة متنوعة من البروتوكولات الأخرى والخدمات المتعلقة بالشبكة. ويشار إلى أن الإصدار الأحدث من البروتوكول [HTTP/2] يقدم تحسينات كبيرة في الأداء والأمان مقارنة بالإصدارات السابقة حيث يوفر تدفقًا أفضل للبيانات وتقليل زمن الانتظار بين إرسال الطلبات واستقبال الاستجابات.
بروتوكول HTTP هو بروتوكول يستخدم لجلب الملفات والصور وباقي الموارد من الخادم، وهو يشكل الأساس لتبادل البيانات على الويب. يعتمد هذا البروتوكول على نمط خادم-عميل حيث يبادر المتصفح بإرسال الطلبات requests للحصول على الموارد مثل ملفات HTML و CSS و JavaScript والصور والفيديوهات، إلخ، من السيرفر ثم يقوم السيرفر بالاستجابة وإرسالها للمتصفح وذلك عبر بروتوكول HTTP.
HTTP Protocol
بروتوكول http:
http://
HTTP Protocol
يكون بروتوكول http في بادئة موقع الويب بهذا الشكل:
http://www.closetag.com
ملاحظات :
- يتم إرسال كل طلب request إلى خادم الويب ليتعامل معه ويُقدم استجابة تُعرف بالرد response.
- هناك العديد من الكيانات بين العميل والخادم تُعرف بشكل جماعي بالوكلاء agents وهي تقوم بعمليات متنوعة وتعمل كبوابات gateways أو مخازن مؤقتة caches.
</>
HTTP Components
مكونات بروتوكول HTTP
العميل: وكيل المستخدم Client: the user-agent: هو البرنامج الذي يتصرف نيابةً عن المستخدم عند التفاعل مع الإنترنت أو أي تطبيقات تعتمد على بروتوكول HTTP بشكل عام. يمكن أن يكون وكيل المستخدم متصفح ويب، أو أي تطبيق آخر يقوم بإرسال طلبات HTTP إلى الخوادم ويتلقى الردود منها.
خادم الويب Web Server: هو جهاز كمبيوتر يستخدم لاستضافة وتقديم محتوى الويب للمستخدمين عبر الإنترنت أو عبر الشبكة الداخلية. يقوم خادم الويب بمعالجة طلبات HTTP الواردة من العملاء [مثل المتصفحات، والتطبيقات الأخرى]، وإرسال الاستجابات المناسبة التي قد تتضمن صفحات HTML، ملفات CSS، صور، نصوص JavaScript، أو أي موارد أخرى مطلوبة.
البروكسي Proxy: هو وسيط أو خادم يعمل كجسر بين العميل [مثل متصفح الويب] والخادم النهائي الذي يحتوي على الموارد التي يريد العميل الوصول إليها. يعمل البروكسي على تمرير الطلبات والاستجابات بين العميل والخادم، ويمكن أن يقوم بعدد من المهام الإضافية مثل تحسين الأداء، زيادة الأمان، وإدارة الوصول، ويمكن أن يكون بين المستخدم ومتصفح الويب أكثر من بروكسي.
أهمية الطبقات في HTTP:
- واقعيًا، يوجد العديد من أجهزة الكمبيوتر بين المتصفح والخادم الذي يتعامل مع الطلب مثل أجهزة التوجيه routers والمودم modem وغيرها. وبفضل التصميم الطبقي للويب، تكون هذه الأجهزة مخفية في طبقات الشبكة والنقل. يُوجد HTTP في طبقة التطبيق أعلى هذه المستويات. على الرغم من أهمية الطبقات الأساسية في تشخيص مشاكل الشبكة، إلا أنها غالبًا ما تكون غير ذات صلة عند وصف HTTP.
</>
Client: the user-agent
العميل: وكيل المستخدم
وكيل المستخدم User-Agent: هو البرنامج الذي يتصرف نيابةً عن المستخدم عند التفاعل مع الإنترنت أو أي تطبيقات تعتمد على بروتوكول HTTP بشكل عام. يمكن أن يكون وكيل المستخدم متصفح ويب، أو أي تطبيق آخر يقوم بإرسال طلبات HTTP إلى الخوادم ويتلقى الردود منها.
وظائف وكيل المستخدم:
- إرسال طلبات HTTP: يقوم وكيل المستخدم بإنشاء طلبات HTTP وإرسالها إلى الخادم بهدف الحصول على موارد معينة مثل صفحات الويب، الصور، أو البيانات.
- استقبال الاستجابات: يتلقى من الخادم الردود التي تحتوي على المعلومات أو الصفحات المطلوبة. يقوم وكيل المستخدم بمعالجة هذه الاستجابات لعرض المحتوى أو تنفيذ العمليات المطلوبة وتختلف تلك العمليات بناءً على الاستجابة التي يتلقاها من الخادم.
- معالجة البيانات: يقوم وكيل المستخدم بمعالجة البيانات التي يتم استلامها من الخادم وعرضها للمستخدم النهائي بشكل يمكن قراءته أو استخدامه. في حالة المتصفحات يتم عرض صفحات الويب، فيما تقوم عملاء البريد الإلكتروني بعرض الرسائل، وهكذا.
- التخزين المؤقت Caching: يخزن بعض البيانات بشكل مؤقت لتقليل وقت التحميل عند الزيارات المستقبلية لنفس الموارد.
- إدارة ملفات تعريف الارتباط Cookies: يعالج ملفات الارتباط cookies لتسهيل إدارة الجلسات sessions وتتبع أنشطة المستخدم من خلال الطلبات المختلفة.
أمثلة على وكلاء المستخدم:
- متصفحات الويب: مثل Google Chrome، و Mozilla Firefox، و Microsoft Edge، و Safari. ووظيفتها تشمل تصفح وعرض صفحات الويب، وتشغيل الوسائط المتعددة.
- تطبيقات الأجهزة النقالة التي تقوم بإرسال طلبات HTTP إلى الخوادم وتتلقى الردود منها: مثل تطبيقات الدفع البنكي، الشبكات الاجتماعية، البريد الإلكتروني. ووظيفتها الوصول إلى خدمات الإنترنت وتبادل البيانات للغرض المحدد الذي أنشئت من أجله.
- تطبيقات مخصصة: مثل برامج تحميل الملفات مثل [IDM] Internet Download Manager، وكذلك الأدوات البرمجية مثل برنامج Postman الذي يستخدمه المطورون لجمع المعلومات من الخوادم باستخدام واجهات برمجة التطبيقات API.
ملاحظات :
- مدير تحميل الانترنت [IDM] Internet Download Manager: هو برنامج يساعد في تنزيل الملفات خاصة الكبيرة منها بسرعة وسهولة من الانترنت حيث يقوم بتقسيم الملفات الكبيرة إلى أجزاء أصغر لتسريع عملية التحميل.
- واجهة برمجة التطبيقات API: هي وسيط برمجي تمت برمجته من قبل مطورين تطبيق معين ليتم التواصل من خلاله مع تطبيقات أخرى تمت برمجتها بلغات مختلفة وذلك لتبادل البيانات والعمل مع بعضهم بكفاءة وسهولة. ويقوم الـ API أيضًا بالتحقق من هوية التطبيقات المتصلة لضمان الأمان قبل أن يرسل أي طلبات إلى الخادم لمعالجتها.
- برنامج Postman: هو برنامج يستخدم لإرسال طلبات HTTP إلى الخوادم باستخدام واجهات برمجة التطبيقات API، ويستخدمه المطورون لجمع المعلومات من الخوادم عند اختبار التطبيقات في المراحل الأولية.
</>
Proxies
الوسطاء
البروكسي Proxy: هو وسيط أو خادم يعمل كجسر بين العميل [مثل متصفح الويب] والخادم النهائي الذي يحتوي على الموارد التي يريد العميل الوصول إليها. يعمل البروكسي على تمرير الطلبات والاستجابات بين العميل والخادم، ويمكن أن يقوم بعدد من المهام الإضافية مثل تحسين الأداء، زيادة الأمان، وإدارة الوصول، ويمكن أن يكون بين المستخدم ومتصفح الويب أكثر من بروكسي.
أنواع الـ Proxies ووظائفها:
- Forward Proxy: يعمل كوسيط بين العميل والخادم النهائي حيث يقوم بإرسال الطلبات من العميل إلى الخادم النهائي نيابةً عن العميل؛ مما يعمل على إخفاء هوية العميل عن الخادم عن طريق استخدام عنوان IP الخاص بالبروكسي.
- Reverse Proxy: يعمل نيابة عن الخادم حيث يستقبل الطلبات من العملاء ويوجّهها إلى الخوادم الخلفية المناسبة، ويستخدم بشكل شائع في موازنة الحمل Load Balancing يُوزع الطلبات بين عدة خوادم لتحسين الأداء وتجنب التحميل الزائد.
- Web Proxy: هو نوع من أنواع الـ Forward Proxy ويُستخدم خصيصًا لتصفح الإنترنت. يوفر الأمان عن طريق حظر المواقع الضارة أو غير الآمنة.
- Transparent Proxy: يعمل كوسيط بين العميل والخادم دون الحاجة إلى إعدادات خاصة من جهة العميل؛ لذا يطلق عليه بروكسي غير مرئي، ويُستخدم غالبًا في الشبكات المؤسسية أو التعليمية لإدارة حركة المرور والتحكم في الوصول.
- Anonymous Proxy: يُخفي الهوية الحقيقية للعميل عن الخادم النهائي؛ مما يتيح تصفح الإنترنت بخصوصية أكبر حيث يمنع الكشف عن عنوان IP الحقيقي للعميل.
فوائد الخوادم الوكيلة Proxies:
- الأمان: تقدم الخوادم الوكيلة طبقات أمان إضافية عبر حجب الهجمات أو إخفاء المعلومات الحساسة مثل عنوان IP؛ مما يجعل تتبع هذا المستخدم أكثر صعوبة من قبل الجهات غير المرغوب فيها.
- الأداء: تُحسّن سرعة الاستجابة عبر تخزين المحتوى شائع الطلب في ذاكرة مؤقتة وعندما يطلب المتصفح نفس المحتوى لاحقًا يتم تلبية الطلبات بسرعة أكبر دون الحاجة للوصول إلى الخادم الأصلي.
- إدارة الوصول: يمكن تقييد الوصول إلى الإنترنت أو إلى موارد معينة بناء على سياسات محددة؛ مما يساعد في السيطرة على استخدام الشبكة، فمثلًا يمكن للمؤسسات التعليمية أو الشركات استخدام خوادم وكيلة لتقييد الوصول إلى مواقع الإنترنت غير المرغوبة أو لتحديد ساعات الاستخدام.
- التخطي الجغرافي Geo-blocking bypass: تمكن الخوادم الوكيلة العملاء من الوصول إلى المحتوى المُقيَّد جغرافيًا عن طريق توجيه الطلبات من خلال خوادم تقع في مناطق جغرافية مختلفة.
كيفية عمل البروكسي:
- العميل يُرسل طلب: عندما يريد المستخدم الوصول إلى موقع أو خدمة عبر الانترنت، يُرسل طلب HTTP إلى بروكسي بدلًا من إرسال الطلب مباشرة إلى الخادم النهائي.
- البروكسي يُحلل الطلب: يتلقى البروكسي الطلب من جهاز المستخدم ويقوم بفحصه ويقرر ما إذا كان يمكن تلبية الطلب من ذاكرة التخزين المؤقت أو يتعين عليه الاتصال بالخادم النهائي.
- تمرير الطلب: إذا لم يتم تلبية الطلب من ذاكرة التخزين المؤقت، يقوم البروكسي بتمرير الطلب إلى الخادم النهائي.
- استقبال الاستجابة: يستلم البروكسي استجابة HTTP من الخادم النهائي ويقوم بمراجعتها ومعالجتها إذا لزم الأمر.
- إعادة إرسال الاستجابة للعميل: يقوم البروكسي بإعادة إرسال الاستجابة إلى العميل.
ملاحظات :
- يطلق على Transparent Proxy أنه بروكسي غير مرئي أو شفاف لأن العميل لا يدرك أن هناك بروكسي يعمل في الخلفية حيث يتم تمرير البيانات عبر البروكسي بشكل سلس وشفاف من وجهة نظر العميل وذلك على عكس البروكسيات التقليدية حيث يتعين على العميل تكوين إعدادات خاصة لاستخدام البروكسي، ولكن البروكسي الشفاف يتم إعداده غالبًا من قبل إدارة الشبكة لذلك لا يشعر المستخدم بأي فرق في استخدام الإنترنت.
- احذر: اختيار بروكسي غير موثوق يمكن أن يعرض بياناتك الشخصية للخطر؛ لذلك يفضل استخدام خدمات بروكسي موثوق وذا سمعة جيدة لضمان الأمان والخصوصية.
</>
?How does http protocol work
كيف يعمل بروتوكول http؟
1. فتح اتصال TCP: يفتتح العميل قناة اتصال مع الخادم باستخدام TCP/IP لإرسال طلب أو عدة طلبات بين العميل والخادم، ويمكن هنا للعميل إما فتح اتصال جديد، أو إعادة استخدام اتصال حالي، أو إنشاء عدة اتصالات TCP.
2. إرسال طلب HTTP: بعد فتح الاتصال، يرسل العميل طلب HTTP إلى الخادم عبر قناة TCP المفتوحة. يشمل الطلب عدة عناصر رئيسية:
- سطر البدء Request Line: وهو يحتوي على الطريقة method مثل: GET، و POST، و PUT، و DELETE، والمسار Path الذي يشير إلى المورد المطلوب، ونسخة البروتوكول HTTP Version مثل HTTP/1.1.
- الرؤوس Headers: والتي تُقدم معلومات إضافية مثل نوع المتصفح، ونوع البيانات المقبولة، ومعلومات التوثيق إذا لزم الأمر.
- وأحيانًا الجسم Body: إذا كان هناك بيانات يتم إرسالها إلى الخادم كما في طرق POST و PUT.
3. معالجة الطلب: يستقبل الخادم الطلب ويقوم بمعالجته.
4. إنشاء الاستجابة HTTP Response: يقوم الخادم بإنشاء استجابة HTTP، تشمل:
- سطر الحالة Status Line: ويحتوي على نسخة البروتوكول مثل HTTP/1.1، وكود الحالة مثل 404، ورسالة توضيحية لحالة الطلب، ومن أمثلة كود الحالة والرسالة التوضيحية مثلما لو كانت الصفحة موجودة فإن الخادم سيرد بـ 200 OK وإذا كانت الصفحة غير موجودة سيرد بـ 404 Not Found.
- الرؤوس Headers: تقدم معلومات إضافية مثل نوع المحتوى طول المحتوى ، والتاريخ.
- الجسم Body: يحتوي على البيانات المطلوبة مثل صفحة HTML، صورة، إلخ.
5. إرسال الاستجابة إلى العميل: يُرسل الخادم الاستجابة إلى العميل عبر قناة TCP المفتوحة.
6. استلام الاستجابة من قِبل العميل: يستلم العميل الاستجابة ويقوم بقراءتها ومعالجتها، فمثلًا إذا كانت الاستجابة تحتوي على محتوى صفحة ويب، يتم عرضها في المتصفح.
7. إنهاء الاتصال: قد يتم إغلاق قناة TCP بعد اكتمال نقل البيانات أو الاحتفاظ بها مفتوحة لجلسات أخرى.