انتقل إلى محتوى الدرس
الدرس 40
دورة تكنولوجيا الويب

بروتوكول نقل النصوص HTTPHTTP Hypertext Transfer Protocol

سنتعرف في هذا الدرس على مقدمة بسيطة عن بروتوكول نقل النصوص HTTP حيث سنتعرف على بروتوكول HTTP، ومكوناته بما في ذلك العميل أو وكيل المستخدم، خادم الويب، والبروكسي وسنتعرف على كل منهم بالتفصيل، كما سنتعرف على كيفية عمل بروتوكول HTTP.
أقسام الدرس
5
الأمثلة
2
اللغة
العربية
تاريخ النشر
المشاهدات
4,033
محتوى الدرس
في هذا الدرس 5تصفّح المواضيع

HTTP Hypertext Transfer Protocol Introduction مقدمة في بروتوكول نقل النصوص HTTP

بروتوكول نقل النصوص HTTP هو بروتوكول يُستخدم لتبادل البيانات عبر شبكة الإنترنت بين الخادم الذي يخزن البيانات والمتصفحات التي تطلب تلك البيانات، ويقوم هذا البروتوكول بتحديد كيفية تبادل البيانات بين الخوادم ومتصفحات الإنترنت عن طريق إرسال طلبات requests واستقبال استجابات responses. على سبيل المثال، عند زيارة موقع ويب وليكن موقع Close Tag، يُرسل المتصفح طلبًا إلى خادم الويب الخاص بموقع closetag.com باستخدام بروتوكول HTTP، ومن ثم يستجيب خادم Close Tag بالبيانات المطلوبة على شكل صفحات ويب لعرضها على المتصفح.


يُستخدم بروتوكول HTTP بالتعاون مع مجموعة متنوعة من البروتوكولات الأخرى والخدمات المتعلقة بالشبكة. ويشار إلى أن HTTP/2 أدخل التأطير الثنائي وتعدد التدفقات فوق TCP. ويوجد HTTP/3 الذي ينقل دلالات HTTP فوق QUIC المدمج مع TLS 1.3؛ HTTP/2 ليس أحدث إصدار. تعتمد مكاسب الأداء على ظروف الاتصال، ويحتاج HTTP/1.1 وHTTP/2 إلى TLS لحماية النقل عند استخدام HTTPS.

بروتوكول HTTP هو بروتوكول يستخدم لجلب الملفات والصور وباقي الموارد من الخادم، وهو يشكل الأساس لتبادل البيانات على الويب. يعتمد هذا البروتوكول على نمط خادم-عميل حيث يبادر المتصفح بإرسال الطلبات requests للحصول على الموارد مثل ملفات HTML و CSS و JavaScript والصور والفيديوهات، إلخ، من السيرفر ثم يقوم السيرفر بالاستجابة وإرسالها للمتصفح وذلك عبر بروتوكول HTTP.

HTTP Protocol

بروتوكول http:

نص
http://

HTTP Protocol

يكون بروتوكول http في بادئة موقع الويب بهذا الشكل:

هذه بادئة توضيحية لعنوان HTTP؛ الموقع الحالي يستخدم HTTPS وقد يعيد توجيه العنوان غير المشفر. لا تعني البادئة أن الاتصال محمي.

نص
http://www.closetag.com

HTTP Components مكونات بروتوكول HTTP

العميل: وكيل المستخدم Client: the user-agent: هو البرنامج الذي يتصرف نيابةً عن المستخدم عند التفاعل مع الإنترنت أو أي تطبيقات تعتمد على بروتوكول HTTP بشكل عام. يمكن أن يكون وكيل المستخدم متصفح ويب، أو أي تطبيق آخر يقوم بإرسال طلبات HTTP إلى الخوادم ويتلقى الردود منها.

خادم الويب Web Server: قد يشير إلى برنامج يعالج طلبات HTTP، أو إلى جهاز يستضيف هذا البرنامج ويقدم محتوى الويب للمستخدمين عبر الإنترنت أو عبر الشبكة الداخلية. يقوم خادم الويب بمعالجة طلبات HTTP الواردة من العملاء [مثل المتصفحات، والتطبيقات الأخرى]، وإرسال الاستجابات المناسبة التي قد تتضمن صفحات HTML، ملفات CSS، صور، نصوص JavaScript، أو أي موارد أخرى مطلوبة.

البروكسي Proxy: هو وسيط أو خادم يعمل كجسر بين العميل [مثل متصفح الويب] والخادم النهائي الذي يحتوي على الموارد التي يريد العميل الوصول إليها. يعمل البروكسي على تمرير الطلبات والاستجابات بين العميل والخادم، ويمكن أن يقوم بعدد من المهام الإضافية مثل تحسين الأداء، زيادة الأمان، وإدارة الوصول، ويمكن أن يكون بين العميل والخادم النهائي أكثر من وسيط.

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.

Proxies الوسطاء

البروكسي Proxy: هو وسيط أو خادم يعمل كجسر بين العميل [مثل متصفح الويب] والخادم النهائي الذي يحتوي على الموارد التي يريد العميل الوصول إليها. يعمل البروكسي على تمرير الطلبات والاستجابات بين العميل والخادم، ويمكن أن يقوم بعدد من المهام الإضافية مثل تحسين الأداء، زيادة الأمان، وإدارة الوصول، ويمكن أن يكون بين العميل والخادم النهائي أكثر من وسيط.


أنواع الـ Proxies ووظائفها:

  • Forward Proxy: يعمل كوسيط بين العميل والخادم النهائي حيث يقوم بإرسال الطلبات من العميل إلى الخادم النهائي نيابةً عن العميل؛ وقد يرى الخادم عنوان البروكسي بدل عنوان اتصال العميل، لكن ذلك لا يضمن إخفاء الهوية؛ يمكن أن تمرر الرؤوس عنوان العميل وتظل الحسابات وملفات الارتباط كاشفة له.

  • Reverse Proxy: يعمل نيابة عن الخادم حيث يستقبل الطلبات من العملاء ويوجّهها إلى الخوادم الخلفية المناسبة،ويستخدم بشكل شائع في موازنة الحمل Load Balancing يُوزع الطلبات بين عدة خوادم لتحسين الأداء وتجنب التحميل الزائد.

  • Web Proxy: هو نوع من أنواع الـ Forward Proxy ويُستخدم خصيصًا لتصفح الإنترنت. قد يطبق سياسات لحظر بعض المواقع عند إعداده لذلك، لكنه لا يضمن سلامة كل موقع أو ملف.

  • Transparent Proxy: يعمل كوسيط بين العميل والخادم دون الحاجة إلى إعدادات خاصة من جهة العميل؛ لذا يطلق عليه بروكسي غير مرئي، ويُستخدم غالبًا في الشبكات المؤسسية أو التعليمية لإدارة حركة المرور والتحكم في الوصول.

  • Anonymous Proxy: يهدف إلى عدم تمرير عنوان اتصال العميل إلى الوجهة؛ ليست التسمية ضمانًا لإخفاء الهوية، ويظل مشغل البروكسي ومحتوى الطلب والإعدادات عوامل مؤثرة في الخصوصية.

فوائد الخوادم الوكيلة Proxies:

  • الأمان: تقدم الخوادم الوكيلة طبقات أمان إضافية عبر حجب الهجمات أو إخفاء المعلومات الحساسة مثل عنوان IP؛ مما يجعل تتبع هذا المستخدم أكثر صعوبة من قبل الجهات غير المرغوب فيها.

  • الأداء: قد تُحسّن سرعة الاستجابة عند السماح بالتخزين وإعادة الاستخدام عبر تخزين المحتوى شائع الطلب في ذاكرة مؤقتة وعندما يطلب المتصفح نفس المحتوى لاحقًا يتم تلبية الطلبات بسرعة أكبر  دون الحاجة للوصول إلى الخادم الأصلي.

  • إدارة الوصول: يمكن تقييد الوصول إلى الإنترنت أو إلى موارد معينة بناء على سياسات محددة؛ مما يساعد في السيطرة على استخدام الشبكة، فمثلًا يمكن للمؤسسات التعليمية أو الشركات استخدام خوادم وكيلة لتقييد الوصول إلى مواقع الإنترنت غير المرغوبة أو لتحديد ساعات الاستخدام.

  • التخطي الجغرافي Geo-blocking bypass: قد تغير الخوادم الوكيلة الموقع الظاهر للاتصال، لكن ذلك لا يضمن الوصول إلى المحتوى المُقيَّد جغرافيًا عن طريق توجيه الطلبات من خلال خوادم تقع في مناطق جغرافية مختلفة.

كيفية عمل البروكسي:

  • العميل يُرسل طلب: عندما يريد المستخدم الوصول إلى موقع أو خدمة عبر الانترنت، يُرسل طلب HTTP إلى بروكسي بدلًا من إرسال الطلب مباشرة إلى الخادم النهائي.

  • البروكسي يُحلل الطلب: يتلقى البروكسي الطلب من جهاز المستخدم ويقوم بفحصه ويقرر ما إذا كان يمكن تلبية الطلب من ذاكرة التخزين المؤقت أو يتعين عليه الاتصال بالخادم النهائي.

  • تمرير الطلب: إذا لم يتم تلبية الطلب من ذاكرة التخزين المؤقت، يقوم البروكسي بتمرير الطلب إلى الخادم النهائي.

  • استقبال الاستجابة: يستلم البروكسي استجابة HTTP من الخادم النهائي ويقوم بمراجعتها ومعالجتها إذا لزم الأمر.

  • إعادة إرسال الاستجابة للعميل: يقوم البروكسي بإعادة إرسال الاستجابة إلى العميل.

?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 بعد اكتمال نقل البيانات أو الاحتفاظ بها مفتوحة لجلسات أخرى.

التسلسل المعروض يخص HTTP/1.1 بصيغته النصية فوق TCP؛ مع HTTPS تضاف حماية TLS. HTTP/2 يستخدم إطارات ثنائية فوق TCP، وHTTP/3 يستخدم QUIC، فلا ترسل هذه الأسطر النصية نفسها فيهما. الاتصال قد يخدم طلبات متعددة. جسم الاستجابة ليس لازمًا دائمًا: استجابة HEAD و204 و304 لا تحمل جسم رسالة.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…