مقدمة إلى HTTP: كل ما تحتاج إلى معرفته

في هذه المقالة ، سوف أطلعك على كيفية عمل شبكة الويب العالمية على مستوى أساسي.

التكنولوجيا الأساسية هي HTTP - Hypertext Transfer Protocol. إنه بروتوكول الاتصال الذي تستخدمه عند تصفح الويب.

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

هذا هو نموذج HTTP القائم على الرسائل. يتضمن كل تفاعل HTTP طلبًا واستجابة.

بطبيعته ، HTTP عديم الحالة.

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

عناوين URL

ربما يكون عنوان URL (محدد موقع المعلومات) هو المفهوم الأكثر شهرة للويب. وهو أيضًا أحد أهم المفاهيم المفيدة. عنوان URL هو عنوان ويب يُستخدم لتحديد الموارد على الويب.

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

البروتوكول  - غالبًا ما يكون HTTP (أو HTTPS لإصدار آمن من HTTP).

البروتوكولات الأخرى البارزة هي:

  • بروتوكول نقل الملفات (FTP) - هو بروتوكول قياسي يستخدم لنقل الملفات بين العميل والخادم عبر الشبكة.
  • بروتوكول نقل البريد البسيط (SMTP) هو معيار لنقل البريد الإلكتروني.

المجال  - الاسم المستخدم لتحديد عنوان IP واحد أو أكثر حيث يوجد المورد.

المسار —يحدد موقع المورد على الخادم. يستخدم نفس منطق موقع المورد المستخدم على الجهاز حيث تقرأ هذه المقالة (على سبيل المثال /search/cars/VWBeetle.pdf أو C: / my cars / VWBeetle.pdf).

المعلمات  - البيانات الإضافية المستخدمة لتحديد أو تصفية المورد على الخادم.

ملاحظة : عند البحث عن مقالات ومزيد من المعلومات حول HTTP ، قد تصادف مصطلح URI (أو معرف المورد الموحد). يتم استخدام URI أحيانًا بدلاً من URL ولكن في الغالب في المواصفات الرسمية ومن قبل الأشخاص الذين يرغبون في التباهي. :)

طلبات HTTP

في HTTP ، يجب أن يكون لكل طلب عنوان URL. بالإضافة إلى ذلك ، يحتاج الطلب إلى طريقة. طرق HTTP الرئيسية الأربعة هي:

  • احصل على
  • وضع
  • بريد
  • حذف

سأشرح هذه الطرق والمزيد في قسم أساليب HTTP من هذه المقالة.

وهذه الأساليب تتوافق بشكل مباشر مع الإجراءات:

  • اقرأ
  • تحديث
  • خلق
  • حذف

تحتوي جميع رسائل HTTP على رأس واحد أو أكثر ، متبوعًا بنص رسالة اختياري. يحتوي الجسم على البيانات التي سيتم إرسالها مع الطلب أو البيانات الواردة مع الاستجابة.

يحتوي الجزء الأول من كل طلب HTTP على ثلاثة عناصر:

مثال:

  • الحصول على / يضيف / نتيجة البحث؟ item = vw + beetle HTTP / 1.1

عندما يحتوي عنوان URL على "؟" علامة ، فهذا يعني أنه يحتوي على استعلام. هذا يعني أنه يرسل معلمات المورد المطلوب.

  1. الجزء الأول هو طريقة تخبر طريقة HTTP المستخدمة. الأكثر شيوعًا هي طريقة GET. يسترد أسلوب GET موردًا من خادم الويب وبما أن GET لا يحتوي على نص رسالة ، فلا حاجة إلى أي شيء بعد العنوان.
  2. الجزء الثاني هو عنوان URL المطلوب.
  3. الجزء الثالث هو نسخة HTTP قيد الاستخدام. الإصدار 1.1. هو الإصدار الأكثر شيوعًا لمعظم المتصفحات ، ومع ذلك ، فإن الإصدار 2.0 هو المسيطر.

هناك أيضًا بعض الأشياء الأخرى المثيرة للاهتمام في طلب HTTP:

رأس المرجع  - يخبر عنوان URL من حيث تم إنشاء الطلب.

عنوان User-Agent  - معلومات إضافية حول المتصفح المستخدم لإنشاء الطلب.

رأس المضيف  - يعرّف بشكل فريد اسم المضيف ؛ من الضروري عند استضافة صفحات ويب متعددة على نفس الخادم.

رأس ملف تعريف الارتباط  - يرسل معلمات إضافية إلى العميل.

استجابات HTTP

كما هو الحال في طلبات HTTP ، تتكون استجابات HTTP أيضًا من ثلاثة عناصر:

مثال:

HTTP / 1.1 200 موافق

  1. الجزء الأول هو نسخة HTTP المستخدمة.
  2. الجزء الثاني هو الكود الرقمي لنتيجة الطلب.
  3. الجزء الثالث هو وصف نصي للجزء الثاني.

هناك أشياء أخرى مثيرة للاهتمام في استجابة HTTP:

رأس الخادم  - معلومات حول برنامج خادم الويب الذي يتم استخدامه.

Set-Cookie header  - يصدر ملف تعريف الارتباط إلى المتصفح.

نص الرسالة  - من الشائع أن تحتوي استجابة HTTP على نص الرسالة.

رأس طول المحتوى  - يخبر حجم نص الرسالة بالبايت.

طرق HTTP

أكثر الطرق شيوعًا هي GET و POST. لكن هناك القليل من الآخرين أيضًا.

GET  - تستخدم هذه الطريقة لطلب البيانات من مورد محدد حيث لا يتم تعديل البيانات بأي شكل من الأشكال. لا تؤدي طلبات GET إلى تغيير حالة المورد.

POST  - يمكنك استخدام هذه الطريقة لإرسال البيانات إلى خادم لإنشاء مورد.

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

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

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

OPTIONS  - تستخدم هذه الطريقة لوصف خيارات الاتصال (طرق HTTP) المتوفرة للمورد الهدف.

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

حذف - يمكنك استخدام هذه الطريقة لحذف المورد المحدد.

راحة

نقل الحالة التمثيلية (REST) ​​هو نمط معماري حيث تحتوي الطلبات والاستجابات على تمثيلات للحالة الحالية لمورد النظام.

الطريقة "العادية":

  • //carapp.com/search؟make=wv&model=beetle

نمط الراحة:

  • //carapp.com/search/vw/beetle

يمكنك معرفة المزيد عن REST هنا إذا كنت فضوليًا.

رؤوس HTTP

هناك ثلاثة مكونات رئيسية تشكل هيكل الطلب / الاستجابة. وتشمل هذه:

  • السطر الأول
  • الرؤوس
  • الجسم / المحتوى

لقد تحدثنا بالفعل عن السطر الأول في طلبات واستجابات HTTP ، وتم ذكر وظيفة الجسم أيضًا. الآن سنتحدث عن رؤوس HTTP.

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

كما قلت سابقًا ، يتضمن نص الرسالة البيانات التي سيتم إرسالها مع الطلب أو البيانات المستلمة جنبًا إلى جنب مع الاستجابة.

هناك أنواع مختلفة من الرؤوس يتم تجميعها بناءً على استخدامها في 4 فئات عامة:

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

رموز حالة HTTP

عند تصفح الويب ، ربما واجهت صفحات "خطأ 404: لم يتم العثور على" أو صفحات "أخطاء 500: الخادم لا يستجيب".

هذه رموز حالة HTTP.

يجب أن تحتوي كل رسالة استجابة HTTP على رمز حالة HTTP في السطر الأول لإخبارنا بنتيجة الطلب.

توجد خمس مجموعات من أكواد الحالة مجمعة حسب الرقم الأول:

  • 1xx - إعلامي.
  • 2xx - تم الطلب بنجاح.
  • 3xx - تمت إعادة توجيه العميل إلى مصدر مختلف.
  • 4xx - يحتوي الطلب على خطأ من نوع ما.
  • 5xx - واجه الخادم خطأً في تنفيذ الطلب.

فيما يلي قائمة كاملة برموز استجابة حالة HTTP وشرحها.

HTTPS (بروتوكول نقل النص التشعبي الآمن)

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

في HTTPS ، يتم تشفير بروتوكول الاتصال باستخدام بروتوكول أمان طبقة النقل (TLS) أو طبقة مآخذ التوصيل الآمنة (SSL).

لذلك غالبًا ما يُطلق على البروتوكول أيضًا اسم HTTP عبر TLS أو HTTP عبر SSL.

يستخدم كل من بروتوكولي TLS و SSL نظام تشفير غير متماثل. تستخدم أنظمة التشفير غير المتماثلة مفتاحًا عامًا (مفتاح تشفير) ومفتاحًا خاصًا (مفاتيح فك التشفير) لتشفير رسالة.

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

مصافحة SSL / TLS

عندما تطلب اتصال HTTPS بموقع ويب ، يرسل موقع الويب شهادة SSL الخاصة به إلى متصفحك. تسمى هذه العملية التي يبدأ فيها المتصفح وموقع الويب الاتصال بـ "تأكيد اتصال SSL / TLS".

تتضمن مصافحة SSL / TLS سلسلة من الخطوات حيث يقوم المتصفح وموقع الويب بالتحقق من صحة بعضهما البعض وبدء الاتصال عبر نفق SSL / TLS.

كما لاحظت على الأرجح ، عند استخدام نفق آمن موثوق به أثناء اتصال HTTPS ، يتم عرض رمز القفل الأخضر في شريط عناوين المتصفحات.

فوائد HTTPS

الفوائد الرئيسية لبروتوكول HTTPS هي:

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

شكرا لقرائتك! تحقق من المزيد من المقالات مثل هذا في ملفي الشخصي على freeCodeCamp. وتحقق من الأشياء الممتعة الأخرى التي أنشأتها على صفحة GitHub الخاصة بي.