بروتوكول نقل النص المتشعب (HTTP)
ملاحظة: هذا المقال هو بالتعاون مع أستاذ مقرر شبكات الاتصالات بقسم الهندسة الكهربائية بكلية الهندسة بجامعة الملك سعود في نشر مقالات الطلاب في الموقع
تعتمد شبكة الإنترنت في عملها على مجموعة من بروتوكولات قياسية تستخدمها الحواسيب لتبادل البيانات. ولم يكن ممكنا لشبكة الإنترنت أو لأي شبكة أخرى أن تنشأ من دون هذه البروتوكولات، وعلى الرغم من أن الشبكة تسمح بالعديد من البروتوكولات، إلا أنها تحتوي على بروتوكول أساسي يسمى بروتوكول نقل النص المتشعب HTTP (HyperText Transfer Protocol). هذه هي اللغة المتعارف عليها لنقل النصوص و الصور بين جميع أجهزة الحاسب على الإنترنت. فعندما يبدأ عنوان موقع بكلمة HTTP يعني ذلك أنك تطلب من جهازك أن يقوم بإحضار صفحة إنترنت.
لقد بدأ استخدام برتوكول HTTP في الشبكة منذ عام 1990, والإصدار الأول (HTTP/0.9) كان إصداراً بسيطاً ولكن الإصدارات التي تلتهُ (HTTP/1.0)و (HTTP/1.1) أصبحت أكثر تعقيداً.
لقد تم تصميم البروتوكول HTTP لتأمين عملية نقل ملفات HTML إلى العميل الذي طلبها، وتمثل HTML لغة تقوم بعملية إنشاء للملف المتشعب Hypertext, حيث إن الملف المتشعب Hypertext document يحوي ارتباطات إلى ملفات أخرى تحتوي على معلومات إضافية عن الموضوع. وبالتالي عندما يستقبل مستعرض الشبكة ملف HTML، فإن هذا الملف يترجم ويحلل، فإذا كان يحوي ارتباطات أخرى فإنها تطلب من جديد. وعند الحصول عليها تتم عملية تنسيق لكامل الملف للحصول في النهاية على صفحة الإنترنت المتعارف عليها، ومن الممكن أن تقود هذه الارتباطات إلى ملفات صوتية أو صور أو مقاطع فيديو أوغيرها.
إن البروتوكول HTTP مبني على أساس طلب واستجابة ((Request-Response، حيث يطلب العميل البيانات من الخادم في صورة رسالة تسمى هذه العملية طلب ( (Requestثم يفسر الخادم هذه الرسالة ويرد على العميل برسالة وتسمى هذه العملية استجابة (.(Response حيث يقوم العميل بتأسيس وصلة مع الخادم ويرسل الطلب ضمن هذه الوصلة، وبدوره يقوم الخادم بالاستجابة لهذا الطلب بسطر الحالة Status line والذي يحوي نسخة البروتوكول HTTP المستخدمة ورمز لفشل أو نجاح العملية ومن ثم بعض الترويسات عن الخادم والاستجابة ومن ثم محتوى الرسالة.
يمكننا تقسيم عمل البروتوكول HTTP إلى أربع مراحل وهي:
– إنشاء الوصلة ((Connection مع الخادم.
– إرسال الطلب إلى الخادم.
– استلام الاستجابة من الخادم.
– إغلاق الوصلة.
يعد برتوكول HTTP من الطبقة الخامسة وهي طبقة التطبيقات. يعتمد برتوكول HTTP على برتوكول TCP/IP في إرسال البيانات والمنفذ الرئيسي هو 80 كما يمكن استخدام منافذ أخرى. كما أن البروتوكول HTTP في النسخة (HTTP/1.0) هو بروتوكول عديم الحالة ((Stateless, ويعني ذلك أنه لا يحافظ على حالة الوصلة، فعلى فرض أنه تم طلب صفحة ويب تحتوي على صورتين فإنه عملياً يتم إنشاء ثلاثة وصلات (Connections) الأول من أجل صفحة HTML والثاني من أجل الصورة الأولى والثالث من أجل الصورة الثانية، حيث تأتي الارتباطات التي تدل على تلك الصور من خلال ترجمة نص HTML في مستعرض الشبكة المستخدم عند العميل، أما في النسخة ((HTTP/1.1 تتضمن نوعاً من الربـط يسـمى الوصـلة الدائمةPersistent Connection) ) فتستخدم الوصلة نفسها لأكثر من طلب في وقت واحد, ولقد حققت الوصلة الدائمة العديد من الفوائد ومن أهمها الحد من عدد الوصلات المنشأة على البروتوكول TCP.
يحتوي الطلب في بروتوكول HTTP على عدة طرق يشار لها بطرق البروتوكول (HTTP Methods)، ومنها:
GET: طلب عرض, وهو أكثر وسيلة مستخدمة اليوم على الشبكة.
HEAD: تطلب رداً مطابقاً لذلك الذي يرجعه طلب GET، ويفيد هذا في الحصول على معلومات عن المطلوب دون نقل على كامل المحتوى.
POST: تستخدم لإرسال معلومات من العميل إلى الخادم, حيث ترسل هذه المعلومات ضمن جسم الرسالة (body).
PUT: لتحميل المعطيات إلى الخادم.
DELETE: تطلب من الخادم حذف المصدر المحدد.
TRACE: تسمح للعميل بإمكانية معرفة عدد المرات التي طلبت فيها هذه الرسالة من قبل الخادم.
OPTION: تستخدم لمعرفة الميزات التي يتمتع بها خادم الشبكة.
لكن هذا لا يعني أن بروتوكول HTTP هو البروتوكول الوحيد الذي يمكنك استخدمه في متصفحك؛ لأنه في الواقع هناك أكثر من بروتوكول يمكنك استخدامه منها (File Transfer Protocol)FTP الذي يعني بروتوكول نقل الملفات. فعندما تبدأ عنوان الموقع به فأنك تخبر جهازك بأنك على وشك تنزيل ملفات من صفحة الإنترنت.
فمما عرضناه في المقال يتضح لنا أهمية بروتوكول نقل النص المتشعب, وأنه بروتوكول واسع الاستخدام بسبب أن المستخدم لا يستطيع بدونه عرض صفحات الشبكة.
فهد المفوز – عمر العتيبي
رائع اشكرك اخي على هذه المعلومات
شكرا ً لك اخي الكريم اضف الى ذلك ان طرق الاتصال بالسيرفر تتم بطريقتين
Pipe-lining و no Pipe-lining
وهذه الصورة توضح كلتا الطريقتين
http://upload.wikimedia.org/wikipedia/commons/thumb/f/fb/HTTP_pipelining.svg/450px-HTTP_pipelining.svg.png