Web Technology

HTTP Response
استجابة HTTP

سنتعرف في هذا الدرس على استجابة HTTP response، وسنتكلم عن بنية رسالة استجابة HTTP response message structure، وسطر الحالة HTTP response status line، ورؤوس استجابة HTTP response headers ، وجسم استجابة HTTP response body، لفهم كيفية تبادل البيانات وتفسيرها بين العميل والخادم.

التاريخ

24 أبريل 2024

الدروس

43

المستوى

متقدم

اللغة

انجليزي

المشاهدات

218

المواضيع

4
الشروحات chevron_left HTTP Response chevron_left Web Technology

HTTP Response
استجابة HTTP

</> HTTP Response
استجابة HTTP

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

تتكون بِنْيَة رسالة استجابة HTTP response من ثلاثة أجزاء رئيسية وهي سطر الحالة HTTP status line، وحقول البادئة أو الرؤوس HTTP headers، وجسم الرسالة HTTP message body. وسنتكلم عنها بالتفصيل لاحقاً.

HTTP Response

نموذج من شكل رسالة الاستجابة HTTP response body التي يرد بها الخادم على وكيل العميل وهو المُتصفح، كما يلي:

HTTP/1.1 200 OK
Date: Wed, 23 Aug 2023 18:25:00 GMT
Server: Apache/2.4.41 (Ubuntu)
Content-Type: text/html; charset=UTF-8
Content-Length: 138

<!DOCTYPE html>
<html>
<head>
    <title>HTTP Response</title>
</head>
<body>
    <h1>HTTP Response!</h1>
    <p>HTTP Response Message.</p>
</body>
</html>

</> HTTP Response Message Structure
بنية رسالة استجابة HTTP

توضح بنية رسالة استجابة HTTP response كيفية هيكلة الرسائل التي يرسلها الخادم إلى العميل، وتتألف من سطر الحالة status line، والرؤوس headers، والجسم body.

بنية رسالة استجابة HTTP Response:

1. سطر الحالة Status Line: يتضمن سطر الحالة في استجابة HTTP response إصدار بروتوكول HTTP، وكود الحالة الذي يوضح نتيجة الطلب [مثل 200 للدلالة على نجاح الطلب أو 404 للدلالة على عدم العثور علي الصفحة المطلوبة]، وعبارة السبب التي تشرح الحالة بإيجاز.


2. الرؤوس Headers: توفر معلومات إضافية عن الاستجابة أو الخادم، يُكتب كل رأس في سطر منفصل متبوعًا بنقطتين ومسافه key: value.

3. الجسم Body: يحتوي على البيانات المُرسَلة من الخادم إلى العميل، مثل ملفات HTM أو JSON، أو ملفات أخرى. في حالة كود الحالة 204 لا يوجد محتوى، يكون الجسم فارغًا.

HTTP Get Request Message

إذا قام العميل بطلب الصفحة الرئيسية لموقع كلوز تاج، يكون الطلب من العميل بالشكل التالي:

GET /index.html HTTP/1.1
Host: www.closetag.com
User-Agent: Mozilla/5.0
Accept-Language: en-US

</> HTTP Response Status Line
سطر حالة استجابة HTTP

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

تتكون بنية سطر الحالة من ثلاثة عناصر:

  1. إصدار البروتوكول المستخدم: مثل [HTTP/1.1].

  2. رقم الحالة: مثل [200 أو 404].

  3. وصف نصي قصير يوضح معنى رقم الحالة: على سبيل المثال، يشير الرقم 200 إلى ok أن الطلب تم بنجاح، بينما يشير الرقم 404 إلى أن الصفحة المطلوبة غير موجودة في الخادم.

    يساعد هذا النظام في تسهيل عملية التواصل بين العميل والخادم، وتحديد الخطوات التالية بناءً على نتائج الاستجابة، وهي مفيدة للمطورين لمسح المشاكل وتحسين التفاعل بين البرمجيات المختلفة.
HTTP Response Status Line

إليك مثالًا على سطر حالة استجابة HTTP response.

HTTP/1.1 200 OK

</> HTTP Response Headers
رؤوس استجابة HTTP

رؤوس استجابة HTTP response تعتبر جزءًا مهمًا من بروتوكول HTTP الذي يُستخدم لنقل البيانات بين الخوادم ومتصفحات الويب حيث تحمل هذه الرؤوس headers معلومات مفصلة حول الاستجابةresponse التي يرسلها الخادم بعد تلقيه طلبًا من المتصفح مما يساعد في تحديد كيفية التعامل مع المحتوى والبيانات القادمة.


تشمل هذه الرؤوس headers عدة أنواع من المعلومات مثل نوع المحتوى، حجمه، تاريخه، وتوجيهات التخزين المؤقت. ويمكن لمطوري الويب والمسؤولين  عن المواقع الإلكترونية استخدام هذه الرؤوس headers لضبط سلوك المتصفحات، وتحسين الأداء العام للموقع، وزيادة مستوى الأمان. وتعد رؤوس الاستجابة مثل نوع المحتوى Content-Type، والتخزين المؤقت Cache-Control، وتعيين ملف تعريف الارتباط Set-Cookie عناصر حيوية في تحسين تجربة المستخدم وتقديم محتوى ديناميكي، ليكون المحتوى الذي يتم تقديمه على الصفحة معدلاً في الوقت الفعلي ليعكس تفاعلات المستخدم ومخصص لتفضيلاته الشخصية، مما يوفر تجربة أكثر جذباً وملائمة للمستخدم.


HTTP Response Headers Syntax

تأتي رؤوس استجابة HTTP response headers على هيئة مفتاح وقيمة key: value، حيث يحدد المفتاح نوع المعلومات المرسلة بينما تعطي القيمة تفاصيل تلك المعلومات.

Key:Value
HTTP Response Headers

إليك مثالًا على مجموعة من رؤوس استجابة HTTP response headers .

Date: Wed، 23 Aug 2023 18:25:00 GMT
Server: Apache/2.4.41 (Ubuntu)
Content-Type: text/html; charset=UTF-8
Content-Length: 138
Connection: keep-alive
Cache-Control: no-cache
HTTP Response Headers
رؤوس استجابة HTTP response headers توفر معلومات إضافية عن الاستجابة أو الخادم. يُكتب كل رأس في سطر منفصل ويتكون من مفتاح وقيمة، مفصولين بنقطتين ومسافة key: value.

</> HTTP Response Body
جسم استجابة HTTP

جسم استجابة HTTP response body هو جزء من الاستجابة response التي ترسلها الخوادم إلى العميل بعد معالجة طلب HTTP request، وهو يتضمن محتوى البيانات التي طلبها العميل مثل صفحات HTML، وملفات الصور، والفيديو، والنصوص، وملفات JSON.


بنية جسم استجابة HTTP Response Body Structure: تتكون من محتوى البيانات الفعلي. تقوم الخوادم بإرسال هذه البيانات على هيئة سلسلة من الحروف والرموز المتفق عليها كما هو موضح في مواصفات بروتوكول HTTP. فعلى سبيل المثال، عند زيارة صفحة ويب، يرسل المتصفح طلبًا إلى الخادم الذي يستجيب بإرسال معلومات الصفحة المطلوبة في جسم استجابة HTTP response body، مما يسمح للمتصفح بعرضها للمستخدم. 

HTTP Response Body

إليك مثالًا على جسم استجابة HTTP response body لصفحة ويب.

<!DOCTYPE html>
<html>
<head>
<title> CloseTag | HTTP Response </title>
</head>
<body>
<h1>CloseTag | HTTP Response</h1>
...
</body>
</html>
HTTP Response Message

إليك رسالة استجابة HTTP response message كاملة تحتوي على كافة الأجزاء:

HTTP/1.1 200 OK
Date: Wed، 23 Aug 2023 18:25:00 GMT
Server: Apache/2.4.41 (Ubuntu)
Content-Type: text/html; charset=UTF-8
Content-Length: 138
Connection: keep-alive
Cache-Control: no-cache
Set-Cookie: sessionId=abc123; Path=/; HttpOnly

<!DOCTYPE html>
<html>
<head>
<title> CloseTag | HTTP Response</title>
</head>
<body>
<h1>HTTP Response</h1>
...
</body>
</html>
معلومات تهمك
  • لا تنس تقييم الدروس لكي نُحدّث المُحتوى باستمرار حتى ينال إعجابك.
  • لا تنس مشاركة الموقع مع أصدقائك حتى تعمّ الفائدة وتكون سببًا في نفعهم.
مشاركة
0
0
0
0
عدد المشاركات
هل هذه المعلومات نالت إعجابك ؟
0
0
عدد التقييمات