Web Technology

HTTP Parameters
معلمات HTTP

سنتعرف في هذا الدرس على معلمات بروتوكول نقل النصوص HTTP أو HTTP Parameters مثل إصدار البروتوكول و معرفات الموارد الموحدة و تنسيقات التاريخ والوقت و مجموعات الأحرف و ترميزات المحتوى و أنواع الوسائط و والعلامات اللغوية وسنتعرف على كل منهم بالتفصيل.

التاريخ

23 أبريل 2024

الدروس

43

المستوى

متقدم

اللغة

انجليزي

المشاهدات

307

المواضيع

4
الشروحات 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 التي تُستخدم لوصف طبيعة المحتوى وتحسين التعامل معه بشكل ديناميكي [المحتوى يتغير تلقائيًا دون الحاجة لتدخل المستخدم أو تحديث الصفحة يدويًا].


وتشمل العلامات اللغوية Language Tags التي تساعد في تحديد لغة المحتوى المرسلة أو المطلوبة، مما يعطي تجربة تصفح مخصصة وملائمة للغة المستخدم. تعتمد هذه العناصر معًا على قدرة الخادم على معالجة البيانات وتنفيذ العمليات الحسابية بكفاءة، مما يضمن تجربة مستخدم سلسة وفعّالة ويتيح للمطورين تقديم خدمات أكثر تفاعلية واستجابة لمتطلبات المستخدمين المتعددة والمختلفة بشكل مستمر.

HTTP Protocol

بروتوكول http.

http://

</> 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
ملاحظة
 في هذا الأصدار  [HTTP/1.1 ]

  •   <major>: يمثل الإصدار الرئيسي، وهو "1".

  •   <minor>: يمثل الإصدار الفرعي، وهو "1".

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

</> Uniform Resource Identifiers
معرفات الموارد الموحدة

معرّفات الموارد الموحدة URL هي سلسلة نصية ذات تنسيق بسيط وغير حساسة لحالة الأحرف يمكن كتابتها بأحرف كبيرة أو صغيرة بدون أن يؤثر ذلك على تفسيرها  على سبيل المثال: [`HTTP://www.CLOSETAG.com` هو نفس `http://www.closetag.com`].

وتحتوي على [اسم] يمكن أن يكون اسم النطاق  مثل[ `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]
مثالاً لتوضيح الفكرة:
تخيل أن لديك كتابًا بالإنجليزية وآخر بالصينية. إذا استخدمت مجموعة أحرف "ASCII"، فهي تفهم الكتاب الإنجليزي فقط. لكن إذا استخدمت مجموعة أحرف "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].
    معلومات تهمك
    • لا تنس تقييم الدروس لكي نُحدّث المُحتوى باستمرار حتى ينال إعجابك.
    • لا تنس مشاركة الموقع مع أصدقائك حتى تعمّ الفائدة وتكون سببًا في نفعهم.
    مشاركة
    0
    0
    0
    0
    عدد المشاركات
    هل هذه المعلومات نالت إعجابك ؟
    0
    0
    عدد التقييمات