Internet

HTTP Introduction
مقدمة في HTTP

في هذا الدرس سوف نتعرف علي البروتوكول HTTP وما الدور الزي يقوم به وما علاقته بالويب.

التاريخ

31 نوفمبر 2021

الدروس

24

المستوى

العامة

اللغة

انجليزي

المشاهدات

1556

المواضيع

5
الشروحات chevron_left HTTP Introduction chevron_left Internet
Computer Network keyboard_arrow_down

What is HTTP

</> نظرة عامه عن بروتوكول An overview of HTTP

ال HTTP هو المسئول عن نقل ال resources الملفات من النوع hypermedia documents مثل ملفات ال HTML إنه أساس أي تبادل بيانات على الويب بين العميل Client وبين السيرفر , مما يعني ان الطلبات تنشأ من جهاز المستخدم علي المتصفح , المستند او الصفحة تتكون من resources ملفات منفصلة بمعني ان صفحة الويب بداخلها ملفات مرئية Videos والصور Images  والنصوص Text وال Scripts بداخل صفحة الويب HTML كل resource يتم نقله بشكل منفصل في HTTP Request.

HTTP هو بروتوكول Hyper text transfer protocol هو المسئول عن transmitting نقل ملفات من النوع hypermedia documents مثل ملفات ال HTML وتم تصميمه للتواصل بين Web Browsers متصفحات الويب Web Servers  وخوادم الويب وايضاً يستخدم لاغراض اخري.

و HTTP يتبع classical client-server model نموذح كلاسيكي للمتصفحات الموجوده بداخل اجهزة المستخدمين لكي يقوم بفتح اتصال عند ال client المستخدم لكي يقوم بأرسال request طلب من ال Server وهذا الاتصال يظل مفتوحاً حتي يتلقي ال response من ال Server , لا يقوم بروتوكول ال HTTP بحفظ اي بيانات سواء كان Request او Response للطلبات السابقة.

HTTP تم تصميمه للتواصل بين Web Browsers متصفحات الويب Web Servers  وخوادم الويب وايضاً يستخدم لاغراض اخري.

و HTTP يتبع classical client-server model نموذح كلاسيكي للمتصفحات الموجوده بداخل اجهزة المستخدمين لكي يقوم بفتح اتصال عند ال client المستخدم لكي يقوم بأرسال request طلب من ال Server وهذا الاتصال يظل مفتوحاً حتي يتلقي ال response من ال Server , لا يقوم بروتوكول ال HTTP بحفظ اي بيانات سواء كان Request او Response للطلبات السابقة.

عندما يتصل ال Client جهاز المستخدم وال Server يتم بواسطة رسايل فردية هذه الرسايل ترسل من ال Client عادة المتصفح هو الزي يرسل ال HTTP Request الطلب والرسالة تذهب الي ال Server والسيرفر يقوم بالرد علي ال Client وهذه تسمي HTTP Response رد السيرفر.

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

</> كيف يعمل ال HTTP

بروتوكول ال HTTP هو يخدم ال Client user-agent وهو وكيل عن المستخدم من المتصفح الي ال Server ويسمي ايضاً proxy

في معظم الاحيان الوكيل عن المستخدم هو المتصفح وهو يسمي ال proxy ويمكن ان يكون اي شئ مثل robot يذهب الي السيرفر ويقوم باداء وظيفة ما.

كل طلب Request فردي يذهب الي ال Server لكي يقوم بمعالجة اي يقوم بعمل عمليات معينه علي هذا الطلب ثم يرسل الرد Response الي المتصفح تتم هذه العمليات بداخل كيانات جميعهم تسمي proxies والتي تتكون من عمليات مختلفه.

في الحقيقة هناك اكتر من جهاز وسيط بين ال Client وال Server تقوم هذه الاجهزه بنقل ال HTTP Request الي ال Web Server مثل ال Router, Modem, Servers,DNS,ISP

بفضل الطبقات المصممة لل Web هي عباره عن طبقات تتم في الخلفية من خلال transport layers طبقات النقل الخفيه عن طريق الشبكات يعد ال HTTP في اعلي طبقات ال transport layers انها مهم جداً فهم هذه الرحله لحل المشاكل التي تحدث اثناء الاتصال مع سيرفرات الويب.

</> Client: the user-agent

Client: the user-agent وهو وكيل العميل المستخدم

ال  user-agent هي اي اداة تتكلم نيابه عن ال User يتم تقمص هذا الدور بشكل اساسي متصفح الويب نايبه عن ال User ولكن يمكن أيضًا تقمصة بواسطة البرامج التي يستخدمها المهندسون ومطورو الويب debug تشغيل او اختبار تطبيقاتهم.

متصفحات الويب هي دائمًا الكيان الذي يبدأ الطلب HTTP Request . إنه ليس  الخادم Server  أبدًا (على الرغم من إضافة بعض الآليات لمحاكاة الرسائل التي يبدأها الخادم).

لكي يتم عرض صفحة الويب علي المتصفح المتصفح يرسل HTTP Request لكي يمسك بصفحة ال HTML يقوم بالمتصفح بعد ذلك بتحليل صفحة ال HTML لان يوجد بداخلها ملفات اخري موجودة علي السيرفر صم يقوم المتصفح بارسال عدة طلبات جديد HTTP Requests لكي يمسك بباقي الصفحات المربوطه بملف ال HTML :

  • طلب لصفحة ال CSS
  • طلب لصفحات ال Script JS Files
  • طلبات للصور 
  • طلبات للفيديوهات

هذه الطلبات فرعية من ال Request الاساسي ثم يقوم المتصفح بعد ذلك بعمل Render لهذه الملفات ثم يقوم باكمال العمليه بعد استلامة ال HTTP Response من الخادم Server 

صفحة الويب هي عبارة عن hypertext document يعني ذلك ان هناك اجزاء من هذه الصفحه عبارة عن Links روابط لصفحات اخري يتم ارسال HTTP Request اخر من خلالها عندما يقوم المستخدم بالنقر فوق هذه الروابط مره اخري لكي تعرض صفحات ويب جديد اخري لاحقاً.

</> خادم الويب Web server

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

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

</> Proxies

يوجد بين متصفحات المستخدمين browsers و الخادم server الكثير من رسائل الأرسال والاستقبال من والي الخادم ونظرا الي ان الهيكل الخاص بالويب هو متعدد الطبقات فأن معظم هذه العمليات يتم تنفيذها من خلال شبكات الارسال transport network 

يمكن أن تصبح شفافًا في طبقة HTTP ويحتمل أن يكون لها تأثير كبير على الأداء في تنفيذ هذه العمليات 

- تسمي كل هذه العمليات ب Proxies او "وكلاء" ويمكن ان تكون هذه ال proxies في احدي الحالتين التاليين 

  • transparent :  ويتم فيها إعادة توجيه الطلبات التي يتلقونها دون تغييرها بأي شكل من الأشكال ،
  • non-transparent : في هذه الحالة سيقومون بتغيير الطلب بطريقة ما قبل تمريره إلى الخادم

- ال Proxies  تقوم بأداء العديد من العمليات وهي :

  1. Caching : يمكن ان يكون private او public , مثل ال cache الخاص بمتصفحات الويب
  2. filtering : وهو مثل برامج الخاصة بفحص الفيروسات antivirus 
  3. load balancing : وهي تقوم خلالها بالسماح للعديد من الخوادم بالعمل علي العديد من ال طلبات Request 
  4. authentication : وهي تستخدم للتحكم في عملية الوصول للمصادر 
  5. logging : وهي خاصة بالسماح بتخزين المعلومات التاريخية

</> HTTP Request / Response

يتم الاتصال بين المستخدم (client ) والخادم (server) عن طريق عملتين أساسيتين وهما Request و Response ; 

  1. يقوم المستخدم بأرسال طلب للخادم عن طريق بروتوكول HTTP
  2. يقوم الخادم باستلام الطلب من المستخدم 
  3. يقوم الخادم بتشغيل البرامج الخاصة به لاستلام طلب المستخدم 
  4. يقوم الخادم بأرسال المعلومات الي المستخدم وهذه العملية تسمي response 
  5. يقوم المستخدم باستلام المعلومات من الخادم عن طريق المتصفح الخاص به  

</> The HTTP Request Circle

عملية request & response مماثلة للمثال السابق 

  1. يقوم المتصفح بطلب صفحة HTML , فيقوم الخادم بأرسال ملف ال HTML الي المتصفح 
  2. يقوم المتصفح بطلب ملف style , فيقوم الخادم بأرسال ملف css 
  3. يقوم المتصفح بطلب كود JavaScript . فيقوم الخادم بأرسال ملف JS 
  4. يقوم المتصفح بطلب صورة من النوع JPG , فيقوم الخادم بأرسال ملف JPG 
  5. يقوم المتصفح بطلب بيانات , يقوم المتصفح بأرسال ملف البيانات في صيغة (XML ، او JSON ) 

</> XHR - XML Http Request

تحتوي المتصفحات علي بنية (XHR ) والتي تعني XMLHttpRequest object 

وهي عبارة عن عنصر من عناصر لغة JavaScript  والتي تستخدم في أرسال البيانات بين المتصفح والخادم (server ) 

غالبا ما تقوم XML بأرسال واستلام البيانات لتعديل صفحة الويب 

تستخدم XHR بروتوكولات اخري عن HTTP , والبيانات يمكن ان تتكون من انواع مختلفة مثل HTML ,CSS ,XML , JSON 

يعتبر XHR كأمنية  كبيرة بالنسبة للمبرمجين حيث يمكنك من خلاله : 

  • تحديث صفحة الانترنت بدون إعادة تحميلها مرة اخري
  • طلب البيانات من الخادم بعدما يتم تحميل الصفحة 
  • استلام البيانات من الخادم 
  • ارسال البيانات الي الخادم في الخلفية 

XHR تعتبر المضمون الاساسي ل AJAX و JSON

مصطلحات الدرس
What is HTTP
What is HTTP

ماهو HTTP

Resources
Resources

مصادر

Hypermedia Documents
Hypermedia Documents

مستندات وسائط تشعبية

Client
Client

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

Videos
Videos

فيديو

Images
Images

صور

Scripts
Scripts

برامج نصية

HTTP Request
HTTP Request

طلب HTTP

Hyper Text Transfer Protocol
Hyper Text Transfer Protocol

بروتوكول نقل النصوص

Transmitting
Transmitting

إحالة

Web Browsers
Web Browsers

متصفحات الإنترنت

Classical Client-Server Model
Classical Client-Server Model

نموذج خادم عميل كلاسيكي

Server
Server

خادم

link
Response
Response

الإجابة أو الرد

link
Web Servers
Web Servers

خوادم الإنترنت

HTTP Response
HTTP Response

إجابة HTTP

Application Layers
Application Layers

طبقات التطبيق

HTML Forms
HTML Forms

حقول إدخال HTML

link
Client User-Agent
Client User-Agent

وكيل مستخدم للClient

Proxy
Proxy

خادم Proxy

Robot
Robot

آلي

Proxies
Proxies

خوادم Proxies

Transport Layers
Transport Layers

طبقات النقل

Modem
Modem

منظم

Router
Router

موزع

link
User-Agent
User-Agent

وكيل مستخدم

User
User

مستخدم

Debug
Debug

تتبع الكود للإختبار لإكتشاف الإخطاء

link
Render
Render

ربط مابين الكود البرمجي مع واجهه المستخدم

hyperText Document
hyperText Document

مستند نص تشعبي

Links
Links

روابط

Browsers
Browsers

متصفحات

link
Transport Network
Transport Network

شبكة نقل

Transparent
Transparent

شفاف أو واضح

Non-Transparent
Non-Transparent

غير شفاف أو واضح

Caching
Caching

تخزين مؤقت

Public
Public

عام

Cache
Cache

ذاكرة مخبئة

Filtering
Filtering

تصفية

Load Balancing Request
Load Balancing Request

طلب توزيع الأحمال

Authentication
Authentication

مصادقة

Logging
Logging

تسجيل

HTTP Request Circle
HTTP Request Circle

دائرة طلب HTTP

Style
Style

نمط أو شكل

JavaScript
JavaScript

لغة برمجة موجهة للكائنات

link
اختصارات الدرس
HTTP
HTTP

Hypertext Transfer Protocol

بروتوكول نقل النصوص
TCP
TCP

Transmission Control Protocol

بروتوكول تحكم في نقل البيانات
ISP
ISP

Internet Service Provider

مزود خدمة الانترنت
link
CSS
CSS

Cascading Style Sheets

صفحات التنسيق المتتالية
link
Script JS Files
Script JS Files

Script javascript Files

ملفات البرامج النصية للجافا سكريبت
link
DNS
DNS

Domain Name System

نظام تخزين اسم النطاق
link
JS
JS

Java Script

هي لغة برمجة موجهة للكائنات
link
JPG
JPG

Joint Photographic Group

إمتداد ملف صورة
link
XML
XML

Extensible Markup Language

لغة توصيف نص قابلة للتوسعة
JSON
JSON

JavaScript Object Notation

ملف ترميز كائنات بإستخدام الجافا سكريبت
معلومات تهمك
  • لا تنسى تقييم الدروس لكي نُحدّث المُحتوى باستمرار حتى ينال إعجابك.
  • لا تنسى مشاركة الموقع مع أصدقاءك حتى تعمّ الفائدة وتكون سبب في نفعهم.
مشاركة
1
2
2
1
عدد المشاركات
هل هذه المعلومات نالت إعجابك ؟
0
0
عدد التقييمات