ما هو البروتوكول المستخدم لخدمات الويب. خدمات الويب كوسيلة لدمج التطبيقات في WWW

HTTP. يعتمد على التفاعل" خدمة الزبائن"، أي أنه من المفترض أن:
  1. مستهلك- عميلبعد بدء الاتصال بخادم الموفر، يرسل له طلبًا؛
  2. مزود- الخادمبعد تلقي الطلب، يقوم بتنفيذ الإجراءات اللازمة وإرجاع الاستجابة بالنتيجة إلى العميل.

    في هذه الحالة، هناك طريقتان ممكنتان لتنظيم عمل الكمبيوتر العميل:

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

قبل الانتقال إلى تقنيات ويب محددة لخادم العميل، دعونا نلقي نظرة على المبادئ الأساسية وبنية بروتوكول HTTP الأساسي.

بروتوكول HTTP

HTTP (بروتوكول نقل النص التشعبي - RFC 1945، RFC 2616) هو بروتوكول طبقة تطبيق لنقل النص التشعبي.

الكيان المركزي في HTTP هو المواردعنوان URL المشار إليه في طلب العميل. عادةً ما تكون هذه الموارد عبارة عن ملفات مخزنة على الخادم. إحدى ميزات بروتوكول HTTP هي القدرة على التحديد في الطلب والاستجابة طريقة تمثيل نفس المورد وفقًا لمعلمات مختلفة: التنسيق والتشفير واللغة وما إلى ذلك. وذلك بفضل القدرة على تحديد طريقة تشفير الرسالة أنه يمكن للعميل والخادم تبادل البيانات الثنائية، على الرغم من أن هذا البروتوكول مصمم في البداية لنقل المعلومات الرمزية. للوهلة الأولى، قد يبدو هذا مضيعة للموارد. في الواقع، تستهلك البيانات في شكل رمزي قدرًا أكبر من الذاكرة، وتخلق الرسائل حملًا إضافيًا على قنوات الاتصال، ولكن هذا التنسيق له العديد من المزايا. الرسائل المرسلة عبر الشبكة قابلة للقراءة، وبعد تحليل البيانات المستلمة، مدير النظاميمكن بسهولة العثور على الخطأ وإصلاحه. إذا لزم الأمر، يمكن لأي شخص أن يلعب دور أحد التطبيقات المتفاعلة عن طريق إدخال الرسائل يدويًا بالتنسيق المطلوب.

على عكس العديد من البروتوكولات الأخرى، فإن HTTP هو بروتوكول بدون ذاكرة. وهذا يعني أن البروتوكول لا يخزن معلومات حول طلبات العميل السابقة واستجابات الخادم. يمكن للمكونات التي تستخدم HTTP أن تحتفظ بشكل مستقل بمعلومات الحالة المرتبطة بالطلبات والاستجابات الأخيرة. على سبيل المثال، يمكن لتطبيق عميل الويب الذي يرسل الطلبات تتبع تأخيرات الاستجابة، ويمكن لخادم الويب تخزين عناوين IP ورؤوس الطلبات لأحدث العملاء.

الجميع برمجةللعمل مع بروتوكول HTTP ينقسم إلى ثلاث فئات رئيسية:

  • الخوادم- مقدمو خدمات تخزين ومعالجة المعلومات (معالجة الطلب).
  • العملاء- المستهلكون النهائيون لخدمات الخادم (إرسال الطلبات).
  • خوادم بروكسيلدعم عمل خدمات النقل.

العملاء الرئيسيون هم المتصفحاتعلى سبيل المثال: الإنترنت إكسبلورر، أوبرا، موزيلا فايرفوكس، نتسكيب الملاح وآخرون. تطبيقات خادم الويب الأكثر شيوعًا هي: الإنترنت معلومة الخدمات (IIS)، أباتشي، lighttpd، nginx. تطبيقات الخادم الوكيل الأكثر شهرة: Squid، UserGate، Multiproxy، Naviscope.

يبدو نظام جلسة HTTP "الكلاسيكي" هكذا.

  1. إنشاء اتصال TCP.
  2. طلب الزبون.
  3. استجابة الخادم.
  4. إنهاء اتصال TCP.

وبالتالي، يرسل العميل طلبًا إلى الخادم، ويتلقى استجابة منه، وبعد ذلك يتوقف التفاعل. عادةً ما يكون طلب العميل هو طلب لنقل مستند HTML أو بعض الموارد الأخرى، وتحتوي استجابة الخادم على التعليمات البرمجية لهذا المورد.

يتضمن طلب HTTP الذي يرسله العميل إلى الخادم المكونات التالية.

  • سطر الحالة (أحيانًا يتم استخدام سطر حالة المصطلحات أو سطر الاستعلام أيضًا للإشارة إليه).
  • حقول الرأس.
  • سطر فارغ.
  • هيئة الطلب.

شريط الحالةمعا مع حقول الرأسيُطلق عليه أحيانًا أيضًا رأس الطلب.


أرز. 2.1.

شريط الحالةلديه التنسيق التالي:

request_method URL_pecypca Protocol_version HTTP

دعونا نلقي نظرة على مكونات شريط الحالة، مع إيلاء اهتمام خاص لطرق الطلب.

طريقةالمحدد في سطر الحالة كيفية تأثر المورد الذي تم تحديد عنوان URL الخاص به في نفس السطر. يمكن أن تأخذ الطريقة القيم GET وPOST وHEAD وPUT وDELETE وما إلى ذلك. على الرغم من وفرة الأساليب، إلا أن اثنتين منها فقط مهمتان حقًا لمبرمج الويب: GET وPOST.

  • يحصل. وفقًا للتعريف الرسمي، تهدف طريقة GET إلى الحصول على مورد بعنوان URL محدد. عند تلقي طلب GET، يجب على الخادم قراءة المورد المحدد وتضمين رمز المورد كجزء من الاستجابة للعميل. لا يجب أن يكون المورد الذي تم تمرير عنوان URL الخاص به كجزء من الطلب عبارة عن صفحة HTML أو ملف صورة أو بيانات أخرى. يمكن أن يشير عنوان URL للمورد إلى رمز البرنامج القابل للتنفيذ والذي، في حالة استيفاء شروط معينة، يجب تنفيذه على الخادم. في هذه الحالة، لا يتم إرجاع رمز البرنامج إلى العميل، ولكن البيانات التي تم إنشاؤها أثناء تنفيذها. على الرغم من أن أسلوب GET، حسب التعريف، يهدف إلى استرداد المعلومات، إلا أنه يمكن استخدامه لأغراض أخرى. تعتبر طريقة GET مناسبة تمامًا لنقل أجزاء صغيرة من البيانات إلى الخادم.
  • بريد. وفقًا لنفس التعريف الرسمي، فإن الغرض الرئيسي من طريقة POST هو نقل البيانات إلى الخادم. ومع ذلك، مثل طريقة GET، يمكن استخدام طريقة POST بعدة طرق مختلفة وغالبًا ما تُستخدم لاسترداد المعلومات من الخادم. كما هو الحال مع طريقة GET، يشير عنوان URL المحدد في شريط الحالة إلى مورد محدد. يمكن أيضًا استخدام طريقة POST لبدء العملية.
  • تُعد طريقتا HEAD وPUT تعديلات على طريقتي GET وPOST.

نسخة البروتوكوليتم تحديد HTTP عادةً بالتنسيق التالي:

HTTP/version.modification

حقول الرأس، بعد سطر الحالة، يسمح لك بتحسين الطلب، على سبيل المثال. إرسال معلومات إضافية إلى الخادم. يحتوي حقل الرأس على التنسيق التالي:

اسم الحقل: القيمة

يتم تحديد الغرض من الحقل حسب اسمه، والذي يتم فصله عن القيمة بنقطتين.

يتم عرض أسماء بعض حقول الرأس الأكثر شيوعًا في طلب العميل والغرض منها في الجدول 2.1.

الجدول 2.1. حقول رأس طلب HTTP.
حقول الرأس HTTP -طلب معنى
يستضيف اسم المجال أو عنوان IP للمضيف الذي يصل إليه العميل
المُحيل عنوان URL للمستند الذي يشير إلى المورد المدرج في شريط الحالة
من عنوان البريد الإلكتروني للمستخدم الذي يعمل مع العميل
يقبل أنواع MIME من البيانات التي تتم معالجتها من قبل العميل. يمكن أن يحتوي هذا الحقل على قيم متعددة، مفصولة بفواصل. غالبًا ما يتم استخدام حقل رأس القبول لإخبار الخادم بأنواع ملفات الرسومات التي يدعمها العميل
قبول اللغة مجموعة من المعرفات المكونة من حرفين مفصولة بفواصل تشير إلى اللغات التي يدعمها العميل
قبول-محارف قائمة مجموعات الأحرف المدعومة
نوع المحتوى نوع MIME من البيانات الموجودة في نص الطلب (إذا كان الطلب لا يتكون من رأس واحد)
طول المحتوى عدد الأحرف الموجودة في نص الطلب (إذا كان الطلب لا يتكون من رأس واحد)
يتراوح حاضر إذا لم يطلب العميل المستند بأكمله، بل جزءًا منه فقط
اتصال يستخدم لإدارة اتصال TCP. إذا كان الحقل يحتوي على إغلاق، فهذا يعني أنه يجب على الخادم إغلاق الاتصال بعد معالجة الطلب. تقترح قيمة Keep-Alive إبقاء اتصال TCP مفتوحًا بحيث يمكن استخدامه للطلبات اللاحقة
وكيل المستخدم معلومات العميل

في كثير من الحالات، عند العمل على الويب، لا يوجد نص طلب. عند تشغيل برامج CGI النصية، يمكن وضع البيانات التي تم تمريرها إليها في الطلب في نص الطلب.

بروتوكولهي مجموعة من الاتفاقيات التي تحدد تبادل البيانات بين البرامج المختلفة. تحدد البروتوكولات كيفية إرسال الرسائل ومعالجة الأخطاء في الشبكة، وتسمح أيضًا بتطوير معايير غير مرتبطة بمنصة أجهزة معينة.

بروتوكولات الشبكةيصف قواعد تشغيل أجهزة الكمبيوتر المتصلة بالشبكة. إنها مبنية على مبدأ متعدد المستويات. يحدد البروتوكول على مستوى ما إحدى القواعد الفنية للاتصالات. حاليًا، يتم استخدام نموذج OSI (الاتصال البيني للنظام المفتوح) لبروتوكولات الشبكة. نموذج OSI هو نموذج منطقي مكون من سبع طبقات لتشغيل الشبكة. يتم تنفيذ نموذج OSI من خلال مجموعة من البروتوكولات وقواعد الاتصال المنظمة في عدة طبقات.

على المستوى الجسدييتم تحديد الخصائص الفيزيائية (الميكانيكية والكهربائية والبصرية) لخطوط الاتصال.

على مستوى الارتباطيتم تحديد قواعد استخدام الطبقة المادية بواسطة عقد الشبكة.

- طبقة الشبكةهو المسؤول عن معالجة وتسليم الرسائل.

- طبقة النقليتحكم في ترتيب إرسال مكونات الرسالة.

مهمة مستوى الجلسة- تنسيق الاتصال بين برنامجين تطبيقيين يعملان على محطات عمل مختلفة.

- طبقة العرضيعمل على تحويل البيانات من تنسيق الكمبيوتر الداخلي إلى تنسيق الإرسال.

- طبقة التطبيقاتهي الحدود بين البرنامج التطبيقي والمستويات الأخرى. توفر طبقة التطبيق واجهة اتصال ملائمة لبرامج شبكة المستخدم.

بروتوكول TCP/IP- هذان بروتوكولان منخفضا المستوى يشكلان أساس اتصالات الإنترنت. بروتوكول TCP(بروتوكول التحكم في الإرسال) يقسم المعلومات المرسلة إلى أجزاء وأرقام كل الأجزاء. باستخدام بروتوكول IP(بروتوكول الإنترنت) يتم نقل كافة الأجزاء إلى المتلقي. بعد ذلك، باستخدام بروتوكول TCP، يتم التحقق مما إذا كان قد تم استلام جميع الأجزاء. عند استلام جميع الأجزاء، يضعها TCP بالترتيب المطلوب ويجمعها في كل واحد.

أشهر البروتوكولات المستخدمة على الإنترنت:

HTTP (بروتوكول نقل النص التشعبي) هو بروتوكول نقل النص التشعبي. يتم استخدام بروتوكول HTTP لإرسال صفحات الويب من كمبيوتر إلى آخر.

FTP (بروتوكول نقل الملفات) هو بروتوكول لنقل الملفات من خادم ملفات خاص إلى كمبيوتر المستخدم. يسمح FTP للمشترك بتبادل الملفات الثنائية والنصية مع أي جهاز كمبيوتر على الشبكة. بعد إنشاء اتصال بجهاز كمبيوتر بعيد، يمكن للمستخدم نسخ ملف من الكمبيوتر البعيد إلى جهاز الكمبيوتر الخاص به أو نسخ ملف من جهاز الكمبيوتر الخاص به إلى الكمبيوتر البعيد.

POP (بروتوكول مكتب البريد) هو بروتوكول اتصال بريد قياسي. تقوم خوادم POP بمعالجة البريد الوارد، وتم تصميم بروتوكول POP للتعامل مع طلبات البريد من برامج بريد العميل.



معيار SMTP (بروتوكول نقل البريد البسيط). يحدد مجموعة من القواعد لإرسال البريد. يقوم خادم SMTP بإرجاع إقرار أو رسالة خطأ أو يطلب معلومات إضافية.

UUCP (بروتوكول نسخ Unix إلى Unix) هو بروتوكول نقل بيانات قديم ولكنه لا يزال مستخدمًا، بما في ذلك البريد الإلكتروني. يتضمن هذا البروتوكول استخدام طريقة الحزمة لنقل المعلومات، حيث يتم إنشاء اتصال بين العميل والخادم أولاً ويتم إرسال حزمة البيانات، ثم تتم معالجتها أو عرضها أو إعدادها بشكل مستقل.

تلنت هو بروتوكول الوصول عن بعد. يتيح TELNET للمشترك العمل على أي جهاز كمبيوتر على الإنترنت كما لو كان خاصًا به، أي تشغيل البرامج وتغيير وضع التشغيل وما إلى ذلك. ومن الناحية العملية، تكون الإمكانيات محدودة بمستوى الوصول الذي حدده مسؤول الجهاز البعيد.

دي تي ان - بروتوكول مصمم لتوفير اتصالات فضائية لمسافات طويلة جدًا.

يسمح لك بتلقي موارد متنوعة، مثل مستندات HTML. يعتمد بروتوكول HTTP على تبادل البيانات على الإنترنت. HTTP هو بروتوكول اتصال بين العميل والخادم، مما يعني أن الطلبات المقدمة إلى الخادم يتم بدءها بواسطة المستلم نفسه، وعادة ما يكون متصفح الويب. ستتكون (قد) الوثيقة النهائية الناتجة من مستندات فرعية مختلفة تشكل جزءًا من الوثيقة النهائية: على سبيل المثال، نص تم استلامه بشكل منفصل، ووصف لبنية الوثيقة، والصور، وملفات الفيديو، والنصوص، وغير ذلك الكثير.

يتواصل العملاء والخوادم من خلال تبادل الرسائل الفردية (بدلاً من تدفق البيانات). يتم استدعاء الرسائل المرسلة من قبل العميل، عادةً ما يكون متصفح الويب طلبات، ويتم استدعاء الرسائل المرسلة من قبل الخادم إجابات.

على الرغم من أن بروتوكول HTTP تم تطويره في أوائل التسعينيات، إلا أنه تم تحسينه باستمرار نظرًا لقابليته للتوسعة. HTTP هو بروتوكول طبقة تطبيق يستخدم غالبًا إمكانيات بروتوكول آخر - TCP (أو TLS - TCP الآمن) - لإعادة توجيه رسائله، ولكن يمكن نظريًا استخدام أي بروتوكول نقل موثوق آخر لتسليم مثل هذه الرسائل. نظرًا لقابليته للتوسعة، فهو لا يستخدم فقط للعميل لتلقي مستندات النص التشعبي والصور ومقاطع الفيديو، ولكن أيضًا لنقل المحتوى إلى الخوادم، على سبيل المثال، باستخدام نماذج HTML. يمكن أيضًا استخدام HTTP لاسترداد أجزاء فقط من المستند بغرض تحديث صفحة ويب عند الطلب (على سبيل المثال عبر طلب AJAX).

مكونات الأنظمة المعتمدة على HTTP

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

كل طلب طلب) يتم إرسالها إلى الخادم الذي يقوم بمعالجتها وإرجاع الاستجابة (eng. إجابة). بين هذه الطلبات والاستجابات، يوجد عادةً العديد من الوسطاء الذين يطلق عليهم الوكلاء، والذين يقومون بعمليات مختلفة ويعملون كبوابات أو مخازن مؤقتة، على سبيل المثال.

عادةً ما يوجد بين المتصفح والخادم العديد من الأجهزة الوسيطة المختلفة التي تلعب دورًا ما في معالجة الطلب: أجهزة التوجيه وأجهزة المودم وما إلى ذلك. ونظرًا لأن الشبكة مبنية على أساس نظام مستويات التفاعل (الطبقات)، فإن هؤلاء الوسطاء "مخفيون" على مستوى الشبكة والنقل. في نظام الطبقات هذا، يحتل HTTP الطبقة العليا، والتي تسمى طبقة "التطبيق" (أو "طبقة التطبيق"). تعد معرفة طبقات الشبكة، مثل العرض التقديمي والجلسة والنقل والشبكة والارتباط والمادية، أمرًا مهمًا لفهم تشغيل الشبكة وتشخيص المشكلات المحتملة، ولكنها ليست مطلوبة لوصف وفهم HTTP.

العميل: مشارك في التبادل

وكيل المستخدم هو أي أداة أو جهاز يعمل نيابة عن المستخدم. يتم تنفيذ هذه المهمة بشكل أساسي بواسطة متصفح الويب؛ وفي بعض الحالات، يكون المشاركون عبارة عن برامج يستخدمها المهندسون ومطورو الويب لتصحيح أخطاء تطبيقاتهم.

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

لعرض صفحة ويب، يرسل المتصفح طلبًا أوليًا للحصول على مستند HTML الخاص بتلك الصفحة. بعد ذلك، يقوم المتصفح بفحص هذا المستند ويطلب الملفات الإضافية اللازمة لعرض محتوى صفحة الويب (البرامج النصية القابلة للتنفيذ، ومعلومات تخطيط الصفحة - أوراق أنماط CSS، والموارد الإضافية في شكل صور وملفات فيديو)، والتي تعد جزءًا مباشرًا من المستند المصدر، ولكنه موجود في مكان آخر على الشبكة. بعد ذلك، يقوم المتصفح بربط جميع هذه الموارد لعرضها للمستخدم في شكل مستند واحد - صفحة ويب. يمكن أن تتلقى البرامج النصية التي ينفذها المتصفح نفسه موارد إضافية عبر الشبكة في مراحل لاحقة من معالجة صفحة الويب، ويقوم المتصفح بتحديث عرض تلك الصفحة للمستخدم وفقًا لذلك.

صفحة الويب هي مستند نص تشعبي. وهذا يعني أن بعض أجزاء النص المعروض عبارة عن روابط يمكن تنشيطها (عادةً عن طريق النقر فوق زر الماوس) لاسترداد صفحة ويب جديدة وبالتالي عرضها (باتباع الرابط). يتيح ذلك للمستخدم "التنقل" في صفحات الويب (الإنترنت). يقوم المتصفح بتحويل هذه الارتباطات التشعبية إلى طلبات HTTP ثم يعرض بعد ذلك استجابات HTTP المستلمة في نموذج سهل الاستخدام.

قاعدة بيانات للانترنت

وعلى الجانب الآخر من قناة الاتصال يوجد خادم يخدم (eng. يخدم) المستخدم، وتزويده بالمستندات عند الطلب. من وجهة نظر المستخدم النهائي، يكون الخادم دائمًا جهازًا افتراضيًا واحدًا يقوم بإنشاء مستند كليًا أو جزئيًا، على الرغم من أنه في الواقع يمكن أن يكون مجموعة من الخوادم التي يتم موازنة التحميل بينها، أي طلبات من مستخدمين مختلفين هي برامج معاد توزيعها أو معقدة تستقصي أجهزة الكمبيوتر الأخرى (مثل خوادم التخزين المؤقت وخوادم قواعد البيانات وخوادم تطبيقات التجارة الإلكترونية وغيرها).

ليس بالضرورة أن يكون الخادم موجودًا على جهاز واحد، والعكس صحيح - يمكن وضع (استضافة) عدة خوادم على نفس الجهاز. وفقًا لإصدار HTTP/1.1 ووجود رأس مضيف، يمكنهم أيضًا مشاركة نفس عنوان IP.

الوكيل

يوجد بين متصفح الويب والخادم عدد كبير من عقد الشبكة التي تنقل رسائل HTTP. نظرًا لبنيتها الطبقية، تعمل معظمها أيضًا في شبكة النقل أو الطبقات المادية، وتصبح شفافة بالنسبة لطبقة HTTP ومن المحتمل أن تقلل من الأداء. تسمى هذه العمليات على مستوى التطبيق الوكيل . قد تكون أو لا تكون شفافة (لن تمر طلبات التعديل من خلالها)، ويمكنها أداء العديد من الوظائف:

  • التخزين المؤقت (يمكن أن تكون ذاكرة التخزين المؤقت عامة أو خاصة، مثل ذاكرة التخزين المؤقت للمتصفح)
  • التصفية (مثل فحص برامج مكافحة الفيروسات، وأدوات الرقابة الأبوية، ...)
  • موازنة التحميل (السماح لخوادم متعددة بخدمة طلبات مختلفة)
  • المصادقة (التحكم في الوصول إلى الموارد المختلفة)
  • التسجيل (إذن لتخزين سجل المعاملات)

الجوانب الأساسية لـ HTTP

HTTP بسيط

حتى مع التعقيد الأكبر الذي تم تقديمه في HTTP/2 من خلال تغليف رسائل HTTP في الإطارات، فإن HTTP بشكل عام بسيط ويمكن قراءته بواسطة الإنسان. يمكن للبشر قراءة رسائل HTTP وفهمها، مما يوفر اختبارًا أسهل للمطورين وتقليل التعقيد للمستخدمين الجدد.

HTTP - الموسعة

جعلت رؤوس HTTP المقدمة في HTTP/1.0 من السهل توسيع البروتوكول وتجربته. يمكن أيضًا تقديم وظائف جديدة من خلال اتفاق بسيط بين العميل والخادم على دلالات الرأس الجديد.

HTTP عديم الحالة ولكن لديه جلسة

HTTP عديم الحالة: لا توجد علاقة بين طلبين يتم تنفيذهما بشكل تسلسلي عبر نفس الاتصال. يشير هذا على الفور إلى احتمال حدوث مشكلات للمستخدم الذي يحاول التفاعل مع صفحة معينة بشكل تسلسلي، كما هو الحال عند استخدام عربة التسوق في متجر عبر الإنترنت. ولكن على الرغم من أن HTTP الأساسي عديم الحالة، فإن ملفات تعريف الارتباط تعمل على تمكين الجلسات ذات الحالة. باستخدام قابلية توسيع الرأس، تتم إضافة ملفات تعريف الارتباط إلى مؤشر ترابط العامل، مما يسمح للجلسة بمشاركة بعض السياق أو الحالة في كل طلب HTTP.

HTTP والاتصالات

تتم إدارة الاتصال في طبقة النقل، وبالتالي يتجاوز بشكل أساسي حدود HTTP. على الرغم من أن HTTP لا يتطلب أن يكون بروتوكول النقل الأساسي قائمًا على الاتصال، إلا أنه يتطلب فقط مصداقيةأو عدم وجود رسائل مفقودة (أي تمثيل خطأ على الأقل). من بين بروتوكولي النقل الأكثر شيوعًا على الإنترنت، يعد TCP موثوقًا به، في حين أن UDP ليس كذلك. يعتمد HTTP بعد ذلك على أن معيار TCP يعتمد على الاتصال، على الرغم من أن الاتصال ليس مطلوبًا دائمًا.

فتح HTTP/1.0 اتصال TCP لكل تبادل طلب/استجابة، مع عيبين مهمين: فتح الاتصال يتطلب تبادل رسائل متعددة وبالتالي فهو بطيء، على الرغم من أنه يصبح أكثر كفاءة عند إرسال رسائل متعددة، أو عند إرسال الرسائل بانتظام: دافيءالاتصالات أكثر فعالية من بارد.

للتخفيف من هذه العيوب، قدم HTTP/1.1 خطوط الأنابيب (التي ثبت صعوبة تنفيذها) والاتصالات المستمرة: يمكن التحكم في اتصال TCP الأساسي جزئيًا من خلال رأس الاتصال. اتخذ HTTP/2 الخطوة التالية عن طريق إضافة تعدد إرسال الرسائل عبر اتصال بسيط، مما يساعد في الحفاظ على الاتصال دافئًا وأكثر كفاءة.

يتم إجراء تجارب لتطوير بروتوكول نقل أفضل وأكثر ملاءمة لـ HTTP. على سبيل المثال، تقوم Google بتجربة QUIC، الذي يعتمد على UDP، لتوفير بروتوكول نقل أكثر موثوقية وكفاءة.

ما يمكن التحكم فيه عبر HTTP

لقد أتاحت القابلية للتوسعة الطبيعية لـ HTTP مزيدًا من التحكم والوظائف للويب بمرور الوقت. كانت طرق التخزين المؤقت والمصادقة من الميزات المبكرة في تاريخ HTTP. من ناحية أخرى، تمت إضافة القدرة على تخفيف القيود الأصلية في العقد الأول من القرن الحادي والعشرين.

فيما يلي الوظائف الشائعة التي تتم إدارتها باستخدام HTTP.


  • يمكن للخادم توجيه الوكلاء والعملاء إلى ما يجب تخزينه مؤقتًا وإلى متى. يمكن للعميل توجيه وكلاء ذاكرة التخزين المؤقت المتوسطة لتجاهل المستندات المخزنة.
  • الاسترخاء قيود المصدر
    لمنع برامج التجسس وغيرها من عمليات التطفل التي تنتهك الخصوصية، يحافظ متصفح الويب على فصل صارم بين مواقع الويب. صفحات فقط من نفس المصدريمكن الوصول إلى المعلومات على صفحة الويب. على الرغم من أن هذه القيود تفرض ضرائب على الخادم، إلا أن رؤوس HTTP يمكنها تخفيف الفصل الصارم من جانب الخادم، مما يسمح للمستند بأن يصبح جزءًا من المعلومات من مجالات مختلفة (لأسباب أمنية).
  • المصادقة
    بعض الصفحات متاحة فقط لمستخدمين خاصين. يمكن توفير المصادقة الأساسية عبر HTTP، إما من خلال استخدام WWW-Authenticate والترويسات المشابهة، أو عن طريق إعداد جلسة خاصة باستخدام ملفات تعريف الارتباط.
  • الوكيل والأنفاق
    غالبًا ما توجد الخوادم و/أو العملاء على شبكة إنترانت، وتقوم بإخفاء عناوين IP الحقيقية الخاصة بهم عن الآخرين. تمر طلبات HTTP عبر وكيل لعبور حاجز الشبكة هذا. ليس كل الوكلاء هم وكلاء HTTP. بروتوكول SOCKS، على سبيل المثال، يعمل بمستوى أقل. يمكن التعامل مع الآخرين، مثل بروتوكول نقل الملفات، من خلال هؤلاء الوكلاء.
  • الجلسات
    يتيح لك استخدام ملف تعريف الارتباط HTTP ربط الطلب بحالة على الخادم. يؤدي هذا إلى إنشاء جلسة، على الرغم من أن HTTP هو بروتوكول عديم الحالة في جوهره. وهذا مفيد ليس فقط لعربات التسوق في المتاجر عبر الإنترنت، ولكن أيضًا لأي مواقع تسمح للمستخدم بتخصيص الخروج.

دفق HTTP

عندما يريد العميل التواصل مع خادم سواء كان خادم نهائي أو وكيل وسيط فإنه يتبع الخطوات التالية:

  1. فتح اتصال TCP: سيتم استخدام اتصال TCP لإرسال طلب أو طلبات وتلقي الرد. يمكن للعميل فتح اتصال جديد، أو إعادة استخدام اتصال موجود، أو فتح اتصالات TCP متعددة بالخادم.
  2. إرسال رسالة HTTP: تكون رسائل HTTP (قبل HTTP/2) قابلة للقراءة بواسطة الإنسان. منذ HTTP/2، يتم تغليف الرسائل البسيطة في إطارات، مما يجعل من المستحيل قراءتها مباشرة، ولكنها تظل كما هي بشكل أساسي. GET / HTTP/1.1 المضيف: موقع قبول اللغة: fr
  3. يقرأ الاستجابة من الخادم: HTTP/1.1 200 OK التاريخ: السبت، 09 أكتوبر 2010 14:28:02 بتوقيت جرينتش الخادم: Apache آخر تعديل: الثلاثاء، 01 ديسمبر 2009 20:18:22 بتوقيت جرينتش ETag: "51142bc1-7449-479b075b2891b" قبول النطاقات: بايت طول المحتوى: 29769 نوع المحتوى: نص/html
  4. إغلاق أو إعادة استخدام الاتصال لمزيد من الطلبات.

إذا تم تمكين خط أنابيب HTTP، فيمكن إرسال طلبات متعددة دون انتظار تلقي الاستجابة الأولى بالكامل. من الصعب دمج خط أنابيب HTTP في الشبكات الحالية، حيث تتعايش الأجزاء القديمة من البرامج مع الإصدارات الحديثة. تم استبدال خط أنابيب HTTP في HTTP/2 بطلبات إرسال متعددة أكثر موثوقية في الإطار.

رسائل HTTP

HTTP/1.1 ورسائل HTTP السابقة قابلة للقراءة بواسطة الإنسان. في HTTP/2، يتم تضمين هذه الرسائل في بنية ثنائية جديدة، وهي إطار، يسمح بإجراء تحسينات مثل ضغط الرأس وتعدد الإرسال. حتى إذا تم إرسال جزء من رسالة HTTP الأصلية في هذا الإصدار من HTTP، فلن يتم تغيير دلالات كل رسالة ويقوم العميل بإعادة إنشاء طلب HTTP الأصلي (افتراضيًا). كما أنه مفيد لفهم رسائل HTTP/2 بتنسيق HTTP/1.1.

هناك نوعان من رسائل HTTP والطلبات والاستجابات، كل منها بتنسيق مختلف.

الطلبات

أمثلة لطلبات HTTP:

  • طريقة HTTP، عادةً ما تكون فعلًا مثل GET،
  • الرؤوس (اختيارية) التي توفر معلومات إضافية للخادم.
  • أو نص لبعض الطرق مثل POST، والذي يحتوي على المورد الذي تم إرساله.

الإجابات

الإجابات النموذجية:

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

خاتمة

HTTP هو بروتوكول سهل الاستخدام وقابل للتوسيع. تسمح بنية خادم العميل، إلى جانب القدرة على إضافة الرؤوس بسهولة، لـ HTTP بالمضي قدمًا مع إمكانيات الويب الموسعة.

على الرغم من أن HTTP/2 يضيف بعض التعقيد عن طريق تضمين رسائل HTTP في إطارات لتحسين الأداء، إلا أن بنية الرسالة الأساسية تظل مع HTTP/1.0. يظل مؤشر ترابط الجلسة بسيطًا، مما يسمح لك بالاستكشاف وتصحيح الأخطاء بسهولة.

بعد أن يتصل العميل بالخدمة على منفذ معين، يمكنه الوصول إلى الخدمة باستخدام البروتوكول المحدد. البروتوكول هو إجراء تم إعداده مسبقًا لتبادل المعلومات بين الطرف الراغب في استخدام الخدمة والطرف الذي يقدم الخدمة. يمكن أن يكون "الطرف" الذي يحتاج إلى الخدمة شخصًا، ولكن غالبًا ما يكون برنامج كمبيوتر، على سبيل المثال، متصفح الويب. غالبًا ما تكون البروتوكولات عبارة عن أوصاف نصية لإجراءات تبادل المعلومات بين العميل والخادم.

يونيكس

ربما يكون أبسط بروتوكول هو الخدمة النهارية. إذا قمت بالاتصال بالمنفذ 13 لجهاز يدعم خادمًا نهاريًا، فسوف يستجيب الخادم بمعلومات التاريخ والوقت الحالية ثم يقطع الاتصال. البروتوكول كالتالي: "إذا أنشأ العميل اتصالاً بخادم نهاري، يتم إرسال بيانات التاريخ والوقت إليه، وبعد ذلك يتم قطع الاتصال". تدعم معظم أجهزة UNIX هذا الخادم. يمكنك التواصل معه عبر تطبيق Telnet. في UNIX، ستبدو الجلسة كما يلي:

  • %تلنت web67.ntx.net 13
  • الاتصال بـ web67.ntx.net.
  • حرف الإلغاء "^]".
  • الأحد 25 أكتوبر 08:34:06 1998

شبابيك

على جهاز يعمل بنظام Windows، يمكنك الوصول إلى هذا الخادم عن طريق إدخال "telnet web67.ntx.net 13" في نافذة MSDOS.

في هذا المثال، web67.ntx.net هو جهاز خادم UNIX، و13 هو رقم المنفذ للخدمة النهارية. يتصل تطبيق Telnet بالمنفذ 13 (يتصل telnet عادةً بالمنفذ 23، ولكن يمكنك تحديد أي منفذ آخر للاتصال به)، ثم يرسل الخادم بيانات التاريخ والوقت، ثم يغلق الاتصال. تتمتع معظم إصدارات Telnet بالقدرة على تحديد رقم المنفذ، ويمكن استخدام هذه الميزة بغض النظر عن إصدار Telnet المثبت على الجهاز.

معظم البروتوكولات أكثر تعقيدًا من البروتوكول النهاري ويتم تعريفها في طلبات التعليقات (RFC) المتاحة للعامة (للحصول على أرشيف جيد لجميع طلبات التعليقات، راجع sunsite.auc.dk/RFC/). يتوافق كل خادم ويب على الإنترنت مع متطلبات بروتوكول HTTP، والتي تم تجميعها في مستند HTTP الأصلي في عام 1991. إن أهم شكل من أشكال البروتوكول الذي يفهمه خادم HTTP يتضمن أمرًا واحدًا فقط: GET. إذا قمت بإنشاء اتصال مع خادم يعمل عبر بروتوكول HTTP وأرسلت طلب "GET file name"، فسوف يستجيب الخادم عن طريق إرسال محتويات الملف المحدد إلى مصدر الطلب، ثم قطع الاتصال. تبدو الجلسة النموذجية كما يلي:

  • موقع التلنت 80
  • جارٍ محاولة الاتصال بالرقم 78.110.59.235...
  • الاتصال مع pcwork.ru.
  • حرف الإلغاء "^]".
  • تم تعطيل الاتصال بواسطة الكمبيوتر المضيف الخارجي.

في الإصدار الأولي من بروتوكول HTTP، كان يلزم إرسال اسم الملف الفعلي فقط، على سبيل المثال، [/] أو تم تغيير البروتوكول لاحقًا لتتمكن من التعامل مع عناوين URL الكاملة. سمح هذا للشركات التي تتعامل مع المجالات الافتراضية، في الظروف التي توجد فيها العديد من المجالات على جهاز واحد، باستخدام عنوان IP واحد لجميع هذه المجالات.

لخص

بعد قراءة هذا المقال، تعلمت الكثير عنه. على وجه التحديد، أنت تعلم الآن أنه عند كتابة عنوان URL في المتصفح، يحدث ما يلي:

  1. قسم عنوان URL إلى ثلاثة أجزاء:
  • البروتوكول ("http")
  • اسم الخادم ("الموقع") - في الآونة الأخيرة، كان هناك اتجاه إيجابي لتقصير الأحرف الثلاثة الأولى www
  • اسم الملف ("web server.htm")
  • يتصل المتصفح بخادم الأسماء لترجمة اسم الخادم إلى عنوان IP، والذي يستخدمه هذا المتصفح للاتصال بجهاز الخادم المقابل.
  • بعد تلقي عنوان IP، يقوم المتصفح المحدد بإنشاء اتصال بخادم الويب الذي لديه عنوان IP هذا على المنفذ 80.
  • وفقًا لبروتوكول HTTP، يرسل المتصفح طلب GET إلى هذا الخادم لتلقي الملف (لاحظ أنه جنبًا إلى جنب مع طلب GET، يمكن إرسال ملفات تعريف الارتباط من المتصفح إلى الخادم - يمكن العثور على التفاصيل في المقالة حول كيفية استخدام ملفات تعريف الارتباط عمل).
  • يرسل الخادم نص HTML لصفحة الويب المطلوبة إلى المتصفح. (يمكن أيضًا تمرير ملفات تعريف الارتباط من الخادم إلى المتصفح في رأس الصفحة.)
  • يقرأ المتصفح علامات HTML ويعرض الصفحة المقابلة على شاشة المراقبة.
  • إضافة: الأمن

    من هذا الوصف يمكننا أن نستنتج أن خادم الويب يمكن أن يكون برنامجًا بسيطًا إلى حد ما. فهو يأخذ اسم الملف الذي تم إرساله باستخدام أمر GET، ويجد الملف الذي يبحث عنه ويرسله إلى المتصفح. حتى مع كل إدارة المنافذ ورمز اتصال المنفذ، يمكنك بسهولة إنشاء برنامج C يعمل كخادم ويب بسيط في أقل من 500 سطر من التعليمات البرمجية. بالطبع، يعد خادم الويب الخاص بالشركة كامل الميزات أكثر تعقيدًا، لكن المبادئ الأساسية لتشغيله لا تزال بسيطة للغاية.

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

    هذه هي تقريبًا جميع الوظائف التي يمكن للخادم المصمم لإرسال صفحات ويب ثابتة وقياسية أن يؤديها. الصفحات الثابتة هي صفحات الويب التي لا تتغير حتى يتم تحريرها بواسطة المطور.

    الوظيفة الإضافية: الصفحات الديناميكية

    ماذا عن صفحات الويب الديناميكية؟ على سبيل المثال:

    • يُسمح لك في أي كتاب مراجعات بترك رسائل في شكل HTML وفي المرة التالية التي تشاهدها فيها، يتم حفظ المعلومات الجديدة التي تم إدخالها في هذه الصفحة.
    • في نموذج شاشة whois لحلول الشبكات، استجابةً لإدخال اسم المجال، يتم تلقي صفحة ويب، ويعتمد مظهرها على الاسم الذي تم إدخاله.
    • في أي محرك بحث، يتم إدخال الكلمات الأساسية في نموذج HTML، وبعد ذلك يقوم الجهاز بإنشاء صفحة تعرض نتيجة البحث عن هذه الكلمات.

    في جميع الحالات المذكورة أعلاه، لا يقوم خادم الويب بالبحث عن الملف المطلوب فقط. يقوم بمعالجة المعلومات المستلمة وإنشاء صفحة ويب تتوافق بطريقة معينة مع الطلب المستلم. في جميع الحالات تقريبًا، يستخدم خادم الويب ما يسمى بإجراء CGI لحل هذه المشكلة.

    يعرض كل جهاز خادم خدمات من الإنترنت باستخدام منافذ مرقمة، واحد لكل خدمة متاحة على الخادم. على سبيل المثال، إذا كان جهاز الخادم يحتوي على خادم WEB وخادم FTP، فعادةً ما يتم الوصول إلى خادم WEB من خلال المنفذ 80، ويتم الوصول إلى خادم FTP من خلال المنفذ 21. يتصل العملاء بالخدمة عن طريق تحديد العنوان المناسب والاتصال بالشبكة. المنفذ المناسب.

    يتم تعيين رقم منفذ محدد لكل خدمة شعبية. فيما يلي أرقام المنافذ الأكثر استخدامًا:

    • صدى 7
    • النهار 13
    • كوت 17 (اقتباس اليوم)
    • بروتوكول نقل الملفات 21
    • التلنت 23
    • SMTP 25 (البريد الإلكتروني)
    • الوقت 37
    • خادم الأسماء 53 (خادم الأسماء)
    • اللقب 43 (من هو)
    • غوفر 70
    • الاصبع 79
    • WWW 80

    قيود

    إذا كان جهاز الخادم يسمح بالاتصال بمنفذ من الإنترنت وكان هذا المنفذ غير محمي، فيمكنك الاتصال به من أي مكان على الإنترنت واستخدام الخدمة المقابلة. تجدر الإشارة إلى أنه لا توجد قيود تتطلب، على سبيل المثال، اتصال خادم الويب على المنفذ 80. من خلال تشغيل جهازك الخاص وتثبيت برنامج خادم الويب عليه، يمكنك، إذا رغبت في ذلك، تحديد أن خادم الويب يجب أن يعمل على سبيل المثال، على المنفذ 918، أو على أي منفذ آخر غير مشغول. وبعد ذلك، إذا كان اسم الجهاز xxx.yyy.com، فيمكنك الاتصال بهذا الخادم عبر الإنترنت باستخدام عنوان URL xxx.yyy.com:918. يشير الجزء ":918" بوضوح إلى رقم المنفذ ويجب إضافته بواسطة أي شخص يرغب في الاتصال بهذا الخادم. إذا لم يتم تحديد أي منفذ، فسيقوم المتصفح افتراضيًا بمحاولة الاتصال بالمنفذ المشترك 80.

    لقد أصدرنا كتابًا جديدًا بعنوان تسويق محتوى الوسائط الاجتماعية: كيفية الوصول إلى عقول متابعيك وجعلهم يقعون في حب علامتك التجارية.

    خدمة الويب (الخدمة) هي برنامج ينظم التفاعل بين المواقع. يتم نقل المعلومات من بوابة واحدة إلى أخرى.

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

    مثال آخر لخدمات الويب هو موقع تتبع الطقس الذي يحتوي على معلومات حول أحوال الطقس في مدينة معينة أو بلد معين ككل. غالبًا ما يتم استخدام هذه المعلومات من قبل أطراف ثالثة.

    المعلومات على شبكة الإنترنت متنوعة. تتم إدارة المواقع من خلال أنظمة مختلفة. يتم استخدام بروتوكولات نقل وتشفير مختلفة. تعمل خدمات الويب على تبسيط تبادل المعلومات بين المواقع المختلفة.

    بنية خدمات الويب والبروتوكولات

    يمكنك تحديد 3 سلطات تتفاعل مع بعضها البعض: الكتالوج والمقاول والعميل. بعد إنشاء الخدمة، يقوم المقاول بتسجيلها في الكتالوج، ويجد العميل الخدمة هناك.

    يتم تشكيل آلية تبادل البيانات في وصف خدمات الويب. هذه مواصفات تغطي تنسيقات إعادة التوجيه وأنواع المحتوى وبروتوكولات النقل المستخدمة في عملية تبادل المعلومات بين العميل وناقل الخدمة.

    اليوم، يتم استخدام العديد من التقنيات في أغلب الأحيان لتنفيذ خدمات الويب المختلفة:

    1. TCP/IP هو بروتوكول يمكن فهمه بواسطة أي جهاز شبكي تقريبًا، بدءًا من الحواسيب المركزية وحتى الأجهزة المحمولة وأجهزة المساعد الرقمي الشخصي (PDA).
    2. HTML هي لغة ترميزية عالمية تُستخدم لعرض المحتوى على أجهزة المستهلك.
    3. XML هي أداة عالمية لمعالجة جميع أنواع البيانات. يمكن أن تعمل بروتوكولات تبادل المعلومات الأخرى على أساسها: SOAP وWSDL.
    4. UDDI هو مصدر عالمي للاعتراف والتكامل والوصف. إنه يعمل، كقاعدة عامة، في الشبكات الخاصة ولم يجد توزيعا كافيا بعد.

    يعد تعدد استخدامات التقنيات المقدمة هو الأساس لفهم خدمات الويب. وهي تعمل باستخدام تقنيات قياسية مستقلة عن موفري التطبيقات وموارد الشبكة الأخرى. يمكن استخدامه في أي أنظمة تشغيل وخوادم تطبيقات ولغات برمجة وما إلى ذلك.

    مزايا

    • تهيئة الظروف اللازمة لتفاعل مكونات البرنامج، بغض النظر عن النظام الأساسي.
    • تعتمد خدمات الويب على بروتوكولات قياسية مفتوحة. بفضل إدخال لغة XML، تم تبسيط عملية إنشاء خدمات الويب وتكوينها.
    • يضمن استخدام HTTP تفاعل الأنظمة من خلال الوصول إلى الشبكة البينية.

    عيوب

    • أداء منخفض وحجم كبير من حركة المرور، مقارنة بأنظمة RMI وCORBA وDCOM، بسبب استخدام رسائل XML في سياق النص.
    • مستوى الأمان. يجب على جميع خدمات الويب الحديثة تنفيذ الترميز وتتطلب إذن المستخدم. ما إذا كان HTTPS كافيًا هنا أو أن هناك حاجة إلى بروتوكولات أكثر موثوقية، مثل تشفير XML، وSAML، وما إلى ذلك، يتم تحديدها أثناء التطوير.

    مهام خدمات الويب

    يمكن استخدام خدمات الويب في العديد من المجالات.

    المعاملات B2B

    يتم تكامل العمليات على الفور، دون مشاركة الأشخاص. على سبيل المثال، تحديث كتالوج المتجر عبر الإنترنت بمنتجات جديدة. يتم إحضارها إلى المستودع، ويلاحظ صاحب المتجر وصولها إلى قاعدة البيانات. يتم نقل المعلومات تلقائيًا إلى المتجر عبر الإنترنت. والمشتري، بدلاً من وضع علامة "نفاد المخزون" على بطاقة المنتج، يرى كميته.

    تكامل خدمات المؤسسات

    إذا كانت الشركة تستخدم برامج الشركات، فستساعد خدمة الويب في إعداد عملهم المشترك.

    إنشاء نظام خادم العميل

    يتم استخدام الخدمات لتكوين تشغيل العميل والخادم. وهذا يوفر فوائد:

    • لا يمكنك بيع البرنامج نفسه، ولكن يمكنك الوصول إلى خدمة الويب مقابل رسوم؛
    • من الأسهل حل المشكلات باستخدام برامج الطرف الثالث؛
    • فمن الأسهل تنظيم الوصول إلى محتوى ومواد الخادم.

    خدمة الويب هي تطبيق يعمل على تبسيط الإعداد الفني لتفاعل الموارد.