HTTP Parameters
معلمات HTTP
سنتعرف في هذا الدرس على معلمات بروتوكول نقل النصوص HTTP أو HTTP Parameters مثل إصدار البروتوكول و معرفات الموارد الموحدة و تنسيقات التاريخ والوقت و مجموعات الأحرف و ترميزات المحتوى و أنواع الوسائط و والعلامات اللغوية وسنتعرف على كل منهم بالتفصيل.
التاريخ
الدروس
المستوى
اللغة
المشاهدات
المواضيع
الشروحات chevron_left HTTP Parameters chevron_left Web Technology
HTTP Parameters
معلمات HTTP
</>
HTTP Hypertext Transfer Protocol Parameters
معلمات بروتوكول نقل النصوص HTTP
معلمات بروتوكول نقل النصوص HTTP تلعب دورًا حاسمًا في تحسين وتخصيص تجربة المستخدم على شبكة الإنترنت وضمن هذه المعلمات نجد إصدار HTTP Version الذي يحدد نسخة البروتوكول المستخدمة في الاتصال بين العميل والخادم.
وتشمل ايضا معرّفات الموارد الموحدة URI التي تُستخدم لتحديد الموارد على الإنترنت والتعامل معها بشكل صحيح، وتنسيقات التاريخ والوقت Date/Time Formats التي تضمن توحيد وتنسيق الزمن بين الأجهزة المختلفة، ومجموعات الأحرف Character Sets التي تحدد كيفية ترميز الحروف والنصوص في الطلبات والاستجابات. تشمل المعلمات أيضًا ترميزات المحتوى Content Encodings التي تتيح ضغط البيانات لنقلها بكفاءة أكبر وتقليل حجمها. كما تشمل أنواع الوسائط Media Types التي تُستخدم لوصف طبيعة المحتوى وتحسين التعامل معه بشكل ديناميكي [المحتوى يتغير تلقائيًا دون الحاجة لتدخل المستخدم أو تحديث الصفحة يدويًا].
</>
HTTP Version
إصدار بروتوكول HTTP
يستخدم بروتوكول نقل النص التشعبي [HTTP] نظام ترقيم يتكون من جزئين <major>.<minor> لتحديد إصدارات البروتوكول، حيث يتألف من رقم رئيسي ورقم فرعي و يُشار إلى إصدار رسالة HTTP بواسطة حقل HTTP-Version الموجود في السطر الأول و فيما يلي الصياغة العامة لتحديد رقم إصدار HTTP .
HTTP-Version
بهذا الشكل يكون نمط إصدار بروتوكول http.
HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT
HTTP-Version 1.0
بهذا الشكل يكون نمط إصدار 1.0 لبروتوكول http.
HTTP/1.0
HTTP-Version 1.1
بهذا الشكل يكون نمط إصدار 1.1 لبروتوكول http.
HTTP/1.1
ملاحظة
- <major>: يمثل الإصدار الرئيسي، وهو "1".
- <minor>: يمثل الإصدار الفرعي، وهو "1".
</>
Uniform Resource Identifiers
معرفات الموارد الموحدة
وتحتوي على [اسم] يمكن أن يكون اسم النطاق مثل[ `closetag.com] أو عنوان IP مثل [`192.168.1.1`].
وتحتوي علي [موقع] يشير إلى الموقع الدقيق للموارد داخل النطاق المحدد يمكن أن يشمل المسار مثل [`index.html/`]، وغير ذلك، لتحديد مورد معين، المورد يمكن أن يكون أي شيء متاح على الإنترنت مثل موقع ويب أو خدمة ويب.
موقع ويب: URI مثل `http://www.closetag.com`. خدمة ويب: URI مثل `http://api.closetag.com/getData`.
تُستخدم هذه المعرّفات بشكل واسع في الإنترنت لتحديد الموارد والوصول إليها بسهولة، والصياغة العامة المستخدمة لكتابة URI في سياق HTTP هي كالتالي:
URL
يكون URL مع بروتوكول http بهذا الشكل.
URI = "http:" "//" host [ ":" port ] [ path [ "?" query ]]
URL with port 80
عنوان موقع ويب يحتوي علي منفذ بروتوكل http قبل اختصارة من قبل المستخدمين والمتصفحات.
http://www.closetag.com:80/tutorials/web-technology/http-hypertext-transfer-protocol-parameters
URL without port 80
عنوان موقع ويب بدون منفذ بروتوكل http يتم ترجمته تلقائي في الخلفية بواسطة المتصفحات.
http://www.closetag.com:/tutorials/web-technology/http-hypertext-transfer-protocol-parameters
URL without port 80 or colon
عنوان موقع ويب بدون منفذ أو علامة colon : بروتوكل http يتم ترجمته تلقائي في الخلفية بواسطة المتصفحات.
http://www.closetag.com/tutorials/web-technology/http-hypertext-transfer-protocol-parameters
الصيغة العامة URI
الصيغة العامة URI في سياق HTTP كما هو موضح هي:
- `http:` - يشير إلى المخطط أو البروتوكول المستخدم، وهو HTTP في هذه الحالة.
- ` `//` - جزء ثابت في الصيغة يستخدم للفصل بين المخطط وبقية المعرّف.
- `host` - يشير إلى اسم المضيف [اسم النطاق أو عنوان IP] الذي يستضيف المورد.
- `[ ":" port ]` - جزء اختياري يشير إلى رقم المنفذ المستخدم للوصول إلى المضيف. إذا لم يُذكر، يُفترض استخدام المنفذ الافتراضي لـ HTTP وهو 80.
- `[ path [ "?" query ]]` - مسار اختياري يحدد المورد الفعلي على المضيف، ويمكن أن يحتوي على استعلام يبدأ بعلامة '?'.
</>
Date/Time Formats
تنسيقات التاريخ والوقت في برتوكول http
تنسيقات التاريخ والوقت مهمة جدًا في نقل البيانات بدقة عبر الإنترنت، خصوصًا في بروتوكول HTTP. استخدام تنسيقات موحدة يساعد في جعل الخوادم والمستخدمين متزامنين، مما يضمن أن الأوقات يتم فهمها بشكل صحيح ويجنب الأخطاء التي قد تحدث بسبب اختلاف التوقيت بين المناطق.
أهمية هذه التنسيقات الموحدة للتاريخ والوقت تكمن في أنها تتعلق بالزمن، ولهذا يستخدم بروتوكول HTTP تنسيقات معينة لمنع أي أخطاء أو لبس. هذه التنسيقات تضمن تواصل دقيق وسلس بين جميع الأطراف على الإنترنت.
سنستعرض تنسيقات التاريخ والوقت المعتمدة في HTTP.
First Format
هنا يُكتب اسم اليوم بثلاثة أحرفوفقاً لمعيار [RFC 1123] وتتبعه فاصلة. بعدها يتم كتابة اليوم كرقم ثنائي، يليه اختصار الشهر بثلاثة أحرف.يلي ذلك السنة بأربعة أرقام، ثم الوقت بتنسيق [ساعة:دقيقة:ثانية] في توقيت غرينتش [GMT].
[Sun, 06 Nov 1994 08:49:37 GMT]
The Second Form
هنا يتم كتابة اسم اليوم بالكامل، متبوعًا بفاصلة. بعدها يتم كتابة اليوم كرقم ثنائي، ثم الشهر برمز مختصر ولكن بفاصلة " - "، ثم السنة بأرقام ثنائية. ينتهي بتوقيت الساعة [ساعة:دقيقة:ثانية] في توقيت غرينتش [GMT].
[Sunday, 06-Nov-94 08:49:37 GMT]
The Third Form
هنا يُكتب اسم اليوم بثلاثة أحرف. يليه الشهر بثلاثة أحرف، ثم اليوم كرَقَم مفرد أو مزدوج. بعد ذلك يُكتب الوقت بتنسيق [ساعة:دقيقة:ثانية]. أخيرًا تأتي السنة بأربعة أرقام.
[Sun Nov 6 08:49:37 1994]
</>
Character Sets
مجموعات الأحرف
تعتبر مجموعات الأحرف Character Sets مهمة جدًا في الويب، حيث تحدد كيفية تمثيل النصوص وتفسيرها بين الخوادم والعملاء.
ان استخدام مجموعات الأحرف الصحيحة يضمن عرض النصوص بشكل صحيح على جميع الأنظمة والمنصات المتنوعة.
ومن أشهر مجموعات الأحرف المستخدمة هي UTF-8، وتعد الاختيار الأكثر شيوعًا لترميز النصوص في الويب.التي تسمح بتمثيل جميع أحرف Unicode وهو معيار تمثيلي للأحرف يُستخدم لترميز وتبادل النصوص بشكل يضم جميع لغات العالم، مما يُتيح توحيد وترميز الأحرف والرموز بطريقة موحدة بين الأنظمة المختلفة. بفعالية مع الحفاظ على التوافق مع مجموعة الأحرف ASCII للأحرف الإنجليزية.
ASCII American Standard Code for Information Interchange
تستخدم لتمثيل الأحرف الإنجليزية وعدد محدود من الرموز.
[ASCII]
ISO-8859-International Organization for Standardization
يعرف أيضًا بـ Latin Alphabets يستخدم لترميز النصوص الغربية الأوروبية.
[ISO-8859]
UTF-8 bit Unicode Transformation Format
يسمح بتمثيل جميع أحرف اللغات المختلفة بكفاءة ويستخدم لتمثيل جميع أحرف Unicode.
[UTF-8]
مثالاً لتوضيح الفكرة:
</>
Content Encodings
ترميزات المحتوى
تشير إلى استخدام خوارزمية معينة لترميز المحتوى قبل نقله عبر الشبكة، وتُستخدم ترميزات المحتوى أساسًا للسماح بضغط الوثائق لتقليل حجم البيانات المرسلة دون التأثير على سلامة البيانات أو تحويلها بطرق مفيدة دون فقدان هويتها.
جميع قيم ترميز المحتوى غير حساسة لحالة الأحرف، حيث يستخدم HTTP/1.1 قيم ترميز المحتوى في حقول البادئة Accept-Encoding وContent-Encoding، والتي سنعرضها في الدروس القادمة.
gzip
يستخدم خوارزميتي LZ77 وترميز Huffman، وهو واسع الانتشار ويعتمد عليه لضغط النصوص والبيانات على الويب بكفاءة عالية.
[gzip]
deflate
يجمع بين خوارزميتي LZ77 و Huffman لتوفير ضغط فعال وشفاف للبيانات، ويستخدم على نطاق واسع.
[deflate]
br Brotli
خوارزمية ضغط حديثة طورتها جوجل، توفر درجات ضغط أعلى من gzip مع الحفاظ على أداء متميز، وهي الخيار الأفضل للعديد من التطبيقات الحديثة.
[br Brotli]
</>
Media Types
أنواع الوسائط
يستخدم HTTP أنواع الوسائط Media Types في حقول البادئة Content-Type وAccept لتوفير تصنيف بيانات مفتوح وقابل للتمديد، والتفاوض حول نوع البيانات. تكون هذه الأنواع حساسة لحالة الأحرف، وجميع قيم أنواع الوسائط مُسجلة لدى هيئة أرقام الإنترنت المُخصصة IANA.
الصيغة العامة لتحديد نوع الوسائط في برتوكول http
تكون الصيغة العامة لتحديد نوع الوسائط في برتوكول http بهذا النمط :
[media-type = type "/" subtype *( ";" parameter )]
مثال للصيغة العامة لتحديد نوع الوسائط في برتوكول http
هذا المثال يشير إلى أن المحتوى هو نص من نوع HTML، ويستخدم ترميز الأحرف UTF-8. التفاصيل: [type: text]-[subtype: html]-[parameter: charset=UTF-8]
[Content-Type: text/html; charset=UTF-8]
علامات في الصيغة
- "/" هي فاصل بين النوع وهو text [اي محتوى نصي], والنوع الفرعي وهو html [اي نص HTML]، ,وهنا image/jpeg يشير لمحتوى صورة بصيغة JPEG].
- ";" تُستخدم لفصل المعلمات الإضافية.
- "*" تُشير إلى أن مجموعة المعلمات [`parameter`] اختيارية ويمكن أن تكون متعددة.
</>
Language Tags
العلامات اللغوية
تستخدم بروتوكولات HTTP علامات اللغة في حقول البادئة Accept-Language وContent-Language لتحديد وتنظيم اللغة المطلوبة للمحتوى بين العميل والخادم، وعلامة اللغة تتكون من جزء رئيسي [مثل "en" للإنجليزية] ويمكن أن تتضمن أجزاء فرعية [مثل "en-US" للإنجليزية الأمريكية]،
هذه المعلومات تساعد في تقديم المحتوى بلغة تناسب تفضيلات المستخدم أو إعدادات النظام. جميع القيم المستخدمة لعلامات اللغة مسجلة لدى هيئة IANA لضمان الاتساق والتوحيد.
مثال للصيغة بعلامات اللغة في برتوكول http
تشير "fr-CA" إلى الفرنسية في كندا، و"fr-Paris" إلى الفرنسية في باريس.
[fr-CA، fr-Paris]
الصيغة الخاصة بعلامة اللغة هي كالتالي:
لا يُسمح بوجود فراغات داخل العلامة، وكل العلامات غير حساسة لحالة الأحرف.
[language-tag = primary-tag *( "-" subtag )]
معلومة :
- أي علامة أساسية مكونة من حرفين هي اختصار لغة وفقًا لمعيار [ISO-639]،
- وأي علامة فرعية أولية مكونة من حرفين هي رمز بلد وفقًا لمعيار [ISO-3166].