HTTP Methods


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

المعلمات المختلفة لـ HTTP هي كما يلي:

إصدار HTTP

للإشارة إلى إصدار البروتوكول ، يستخدم HTTP مخطط ترقيم <major>. <minor> . تسمح سياسة إصدار البروتوكول للمرسل بالإشارة إلى تنسيق الرسالة وقدرتها على فهم المزيد من اتصالات HTTP.

يشير السطر الأول في حقل إصدار HTTP إلى إصدار رسالة HTTP.

بناء الجملة (Syntax)

  1. HTTP-Version   = "HTTP" "/" 1*DIGIT "." 1*DIGIT  

مثال

  1. HTTP /  1.1  

علامات الكيان (Entity Tags)

تُستخدم علامات الكيان لمقارنة كيانين أو أكثر من نفس المورد المطلوب.

بناء الجملة

  1. entity-tag = [ weak ] opaque-tag  
  2. weak = "W/"  
  3. opaque-tag = quoted-string  

يجب أن تكون علامة الكيان فريدة عبر جميع إصدارات الكيانات المرتبطة بمورد معين.

تنسيقات التاريخ / الوقت

يمكن تحديد تنسيق التاريخ / الوقت بطريقتين:

1) التاريخ الكامل:

يجب تمثيل جميع طوابع التاريخ / الوقت لـ HTTP في توقيت غرينتش (GMT). يحتوي تطبيق HTTP على ثلاثة تنسيقات مختلفة لتمثيل طوابع التاريخ / الوقت:

  1. Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123  
  2. Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036  
  3. Sun Nov  6 08:49:37 1994 ; ANSI C's asctime() format  

في HTTP ، يكون GMT مساويًا تمامًا لـ UTC (التوقيت العالمي المنسق) ، والذي تمت الإشارة إليه في التنسيقين الأولين من خلال تضمين "GMT".

2) دلتا الثانية

تسمح بعض حقول رأس HTTP بقيمة الوقت ، والتي يتم تحديدها على أنها عدد صحيح من الثواني ، والتي ستكون في نظام عشري بعد وقت استلام الرسالة.

delta-seconds = 1*DIGIT  

معرفات الموارد الموحدة (URI) (Uniform Resource Identifiers)

URI عبارة عن سلسلة منسقة غير حساسة لحالة الأحرف ، والتي تحتوي على الاسم والموقع وما إلى ذلك لتحديد موقع الويب أو خادم الويب.

بناء الجملة:

  1. http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]] 

هنا،

  • يستخدم مخطط "http" لتحديد موارد الشبكة من خلال بروتوكول HTTP.
  • إذا كان المنفذ فارغًا ، يُفترض أن يكون المنفذ 80 . إذا كان abs_path فارغًا ، فإنه يعادل anabs_pathof "/" . الأحرف في مجموعتي "غير آمنة" و "محجوزة" مكافئة لترميزها ""٪ "HEX HEX" .
  • يجب أن تكون مقارنات أسماء المضيفين غير حساسة لحالة الأحرف.

مثال:

  1. http: //abc.com:80/~smith/home.html  
  2. http: //ABC.com/٪7Esmith/home.html  
  3. http: //ABC.com:/٪7esmith/home.html  

مجموعة الأحرف (Character Set)

يتم استخدام مجموعة الأحرف لتحديد مجموعة الأحرف التي يفضلها المستخدم. باستخدام الفاصلة ، يمكن فصل مجموعات الأحرف المتعددة. يتم تحديد مجموعات أحرف HTTP باستخدام الرموز المميزة غير الحساسة لحالة الأحرف.

  1. charset = token  

مثال

  1. ISO-8859-1  
  2.   
  3. Or   
  4.   
  5. US-ASCII  

ترميزات المحتوى (Content Codings)

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

  1. content-coding   = token  

جميع قيم ترميز المحتوى غير حساسة لحالة الأحرف. في حقلي الرأس Accept-Encoding و Content-Encoding ، يستخدم HTTP / 1.1 قيمة ترميز المحتوى.

مثال

  1. Accept-encoding: gzip  
  2.   
  3. or  
  4.   
  5. Accept-encoding: compress

ترميز التحويل (Transfer Codings)

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

بناء الجملة:

  1. transfer-coding = "chunked" | transfer-extension  
  2. transfer-extension = token *( ";" parameter )  

في ترميز النقل ، تكون المعلمات في شكل أزواج سمة / قيمة.

مثال:

  1. Parameter = attribute "=" value  
  2. Attribute = token  
  3. Value = token | quoted-string

جميع قيم ترميز النقل غير حساسة لحالة الأحرف.

رموز المنتج (Product Tokens)

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

بناء الجملة

  1. product = token ["/" product-version]  
  2. product-version = token  

مثال

  1. User-Agent: CERN-LineMode/2.15 libwww/2.17b3  
  2. Server: Apache/0.8.4  

إرسال تعليق

أحدث أقدم

نموذج الاتصال