
Parameters HTTP
في هذا الدرس سوف نتعرف علي بعض العناصر الاساسية التي تستخدم خلال البروتوكول التالي "HTTP"
التاريخ
الدروس
المستوى
اللغة
المشاهدات
المواضيع
Parameters HTTP
</> Parameters HTTP
في هذا الدرس، سنناقش معلمات HTTP المختلفة وصياغتها. على سبيل المثال (date&time format , character set , الخ )
تُستخدم هذه المعلمات في بناء رسالة الطلب والرد أثناء كتابة برنامج HTTP للعميل أو الخادم. المعلمات المختلفة لـ HTTP هي كما يلي:
</> HTTP Version
للإشارة إلى إصدار البروتوكول ، يستخدم HTTP مخطط ترقيم" <major>. <minor>." تسمح سياسة إصدار البروتوكول للمرسل بالإشارة إلى تنسيق الرسالة وقدرتها على فهم المزيد من اتصالات HTTP. يشير السطر الأول في حقل إصدار HTTP إلى إصدار رسالة HTTP.
Syntax
HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT
Example
HTTP / 1.1
</> Entity Tags
تستخدم ال Entity Tags في مقارنة عنصرين او اكثر تم ارسالهم من نفس المصدر requested resource
Syntax
entity-tag = [ weak ] opaque-tag weak = "W/" opaque-tag = quoted-string
ال Entity tag يجب ان لا يتم تكرارها خلال اصدارات ال entity المرتبطة ب مصدر معين
</> Date/Time Formats
يمكن تصنيف شكل ال Date/time الي نوعين مختلفين وهما
- Full Date
- Delta Date
Full Date
-يجب تمثيل جميع طوابع التاريخ / الوقت لـ HTTP في توقيت غرينتش (GMT). يحتوي تطبيق HTTP على ثلاثة تنسيقات مختلفة لتمثيل طوابع التاريخ / الوقت وهما
Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123 Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036 Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
Delta Date
-تسمح بعض حقول header HTTP بقيمة time ، والتي يتم تحديدها على أنها عدد صحيح من الثواني ، والتي ستكون في نظام عشري بعد وقت استلام الرسالة.
delta-seconds = 1*DIGIT
</> Uniform Resource Identifiers (URI)
URI : هو عبارة عن سلسلة منسقة غير حساسة لحالة الأحرف ، والتي تحتوي على الاسم والموقع وما إلى ذلك لتحديد موقع الويب أو خادم الويب.
- يستخدم مخطط "http" لتحديد موارد الشبكة من خلال بروتوكول HTTP.
- إذا كان المنفذ Port فارغًا ، يُفترض أن يكون المنفذ 80.
- إذا كان abs_path فارغًا ، فإنه يعادل anabs_pathof "/". الأحرف في مجموعتي "غير unsafe" و "reserved" مكافئة لترميزها ""٪ "HEX HEX".
- يجب أن تكون مقارنات أسماء المضيفين غير حساسة لحالة الأحرف.
Syntax
http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
Example
http://abc.com:80/~smith/home.html http://ABC.com/%7Esmith/home.html http://ABC.com:/%7esmith/home.html
</> Character Set
character set : يستخدم لتحديد مجموعة الأحرف التي يفضلها المستخدم. باستخدام الفاصلة ، يمكن فصل مجموعات الأحرف المتعددة. يتم تحديد مجموعات أحرف HTTP باستخدام الرموز المميزة غير الحساسة لحالة الأحرف.
charset = token
Example
ISO-8859-1 Or US-ASCII
</> Content Codings
تُستخدم قيم ترميز المحتوى content coding لإظهار تحويل الترميز الذي تم تطبيقه على entity. في المقام الأول ، يتم استخدام content coding للسماح للمستند بضغطه أو تحويله دون فقد المعلومات.
في content coding ، يتم تخزين entity في شكل مشفر ، ويتم إرساله مباشرة ، ويتم تشفيره فقط إلى المستلم.
content-coding = token
جميع قيم content coding غير حساسة لحالة الأحرف. في حقلي header الرأس Accept-Encoding و Content-Encoding ، يستخدم HTTP / 1.1 قيمة content coding
Example
Accept-encoding: gzip or Accept-encoding: compress
</> Transfer Codings
تُستخدم قيم transfer coding للإشارة إلى تحويل الترميز الذي تم تطبيقه على كيان لضمان "النقل الآمن" عبر الشبكة. يختلف ترميز النقل عن ترميز المحتوى. ترميز النقل هو خاصية للرسالة ،
Syntax
transfer-coding = "chunked" | transfer-extension transfer-extension = token *( ";" parameter )
Example
Parameter = attribute "=" value Attribute = token Value = token | quoted-string
</> Product Tokens
تسمح رموز Product token لتطبيقات الاتصال بتعريف نفسها بإصدار البرنامج واسمه. يجب أن يكون Product token مميزًا وقصيرًا.
Syntax
product = token ["/" product-version] product-version = token
Example
User-Agent: CERN-LineMode/2.15 libwww/2.17b3 Server: Apache/0.8.4