في هذا الدرس 8تصفّح المواضيع
HTTP Hypertext Transfer Protocol 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 Version
إصدار بروتوكول HTTP
HTTP Version إصدار بروتوكول HTTP
يستخدم بروتوكول نقل النص التشعبي [HTTP] نظام ترقيم يتكون من جزئين <major>.<minor> لتحديد إصدارات البروتوكول، حيث يتألف من رقم رئيسي ورقم فرعي وفي HTTP/1.1 يُكتب الإصدار في سطر البداية؛ أما HTTP/2 وHTTP/3 فيستخدمان تأطيرًا ثنائيًا ولا يرسلان هذا السطر النصي و فيما يلي الصياغة العامة لتحديد رقم إصدار HTTP .
HTTP-Version
بهذا الشكل يكون نمط إصدار بروتوكول http.
HTTP-Version = %s"HTTP" "/" DIGIT "." DIGIT
HTTP-Version 1.0
بهذا الشكل يكون نمط إصدار 1.0 لبروتوكول http.
HTTP/1.0
HTTP-Version 1.1
بهذا الشكل يكون نمط إصدار 1.1 لبروتوكول http.
HTTP/1.1
Uniform Resource Identifiers
معرفات الموارد الموحدة
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 هي كالتالي:
العناوين هنا أمثلة تعليمية؛ لا تثبت وجود خدمة باسم api.closetag.com/getData. الصيغة التالية مبسطة لعناوين http وليست قواعد URI الكاملة.
URL
يكون URL مع بروتوكول http بهذا الشكل.
URL with port 80
عنوان موقع ويب يحتوي علي منفذ بروتوكل http قبل اختصارة من قبل المستخدمين والمتصفحات.
http://www.closetag.com:80/tutorials/web-technology/http-parameters
URL without port 80
عنوان موقع ويب بدون منفذ بروتوكل http يتم ترجمته تلقائي في الخلفية بواسطة المتصفحات.
عند حذف المنفذ يفضل حذف النقطتين أيضًا كما في المثال التالي. المنفذ الافتراضي لـ http هو 80 ولـ https هو 443؛ لا يعني ذلك أن الموقع الحالي يقدم محتواه عبر اتصال غير مشفر.
http://www.closetag.com:/tutorials/web-technology/http-parameters
URL without port 80 or colon
عنوان موقع ويب بدون منفذ أو علامة colon : بروتوكل http يتم ترجمته تلقائي في الخلفية بواسطة المتصفحات.
http://www.closetag.com/tutorials/web-technology/http-parameters
Date/Time Formats
تنسيقات التاريخ والوقت في برتوكول http
Date/Time Formats تنسيقات التاريخ والوقت في برتوكول http
تنسيقات التاريخ والوقت مهمة جدًا في نقل البيانات بدقة عبر الإنترنت، خصوصًا في بروتوكول HTTP. استخدام تنسيقات موحدة يساعد في تفسير الطابع الزمني بصيغة متفق عليها، ولا يضبط ساعات الأجهزة، مما يضمن أن الأوقات يتم فهمها بشكل صحيح ويجنب الأخطاء التي قد تحدث بسبب اختلاف التوقيت بين المناطق.
أهمية هذه التنسيقات الموحدة للتاريخ والوقت تكمن في أنها تتعلق بالزمن، ولهذا يستخدم بروتوكول HTTP تنسيقات معينة لمنع أي أخطاء أو لبس. هذه التنسيقات تضمن تواصل دقيق وسلس بين جميع الأطراف على الإنترنت.
سنستعرض تنسيقات التاريخ والوقت المعتمدة في HTTP.
عند إنشاء حقل HTTP-date جديد يجب استخدام IMF-fixdate، وهو التنسيق الأول. يقبل المستقبِل التنسيقين القديمين RFC 850 وasctime للتوافق مع الرسائل القديمة؛ لا نختارهما لإنشاء حقول جديدة. الأقواس التوضيحية ليست جزءًا من قيمة التاريخ.
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 مجموعات الأحرف
تعتبر مجموعات الأحرف Character Sets مهمة جدًا في الويب، حيث تحدد كيفية تمثيل النصوص وتفسيرها بين الخوادم والعملاء.
ان استخدام مجموعات الأحرف الصحيحة يضمن عرض النصوص بشكل صحيح على جميع الأنظمة والمنصات المتنوعة.
ومن أشهر مجموعات الأحرف المستخدمة هي UTF-8، وتعد الاختيار الأكثر شيوعًا لترميز النصوص في الويب.التي تسمح بتمثيل جميع أحرف Unicode وهو معيار تمثيلي للأحرف يُستخدم لترميز وتبادل النصوص بشكل يضم جميع لغات العالم، مما يُتيح توحيد وترميز الأحرف والرموز بطريقة موحدة بين الأنظمة المختلفة. بفعالية مع الحفاظ على التوافق مع مجموعة الأحرف ASCII للأحرف الإنجليزية.
ASCII American Standard Code for Information Interchange
تستخدم لتمثيل الأحرف الإنجليزية وعدد محدود من الرموز.
ASCII
ISO-8859-International Organization for Standardization
ISO-8859 عائلة ترميزات وليست ترميزًا واحدًا؛ ISO-8859-1 هو Latin-1 للنصوص الغربية الأوروبية، بينما تضم العائلة أجزاء أخرى.
ISO-8859-1
UTF-8 bit Unicode Transformation Format
يسمح بتمثيل جميع أحرف اللغات المختلفة بكفاءة ويستخدم لتمثيل جميع أحرف Unicode.
UTF-8
Content Encodings
ترميزات المحتوى
Content Encodings ترميزات المحتوى
تشير إلى استخدام خوارزمية معينة لترميز المحتوى قبل نقله عبر الشبكة، وتُستخدم ترميزات المحتوى أساسًا للسماح بضغط الوثائق لتقليل حجم البيانات المرسلة دون التأثير على سلامة البيانات أو تحويلها بطرق مفيدة دون فقدان هويتها.
جميع قيم ترميز المحتوى غير حساسة لحالة الأحرف، حيث يستخدم HTTP/1.1 قيم ترميز المحتوى في حقول البادئة Accept-Encoding وContent-Encoding، والتي سنعرضها في الدروس القادمة.
gzip
يستخدم خوارزميتي LZ77 وترميز Huffman، وهو واسع الانتشار ويعتمد عليه لضغط النصوص والبيانات على الويب بكفاءة عالية.
gzip
deflate
يجمع بين خوارزميتي LZ77 و Huffman لتوفير ضغط فعال وشفاف للبيانات، ويستخدم على نطاق واسع.
في HTTP يعني deflate بيانات بتنسيق zlib تحتوي تدفق DEFLATE؛ إرسال DEFLATE الخام دون غلاف zlib ليس الصيغة المحددة لهذا الاسم.
deflate
br Brotli
خوارزمية ضغط حديثة طورتها جوجل، قد تحقق ضغطًا أفضل لبعض المحتوى مقارنةً بـ gzip، لكن النتيجة وكلفة المعالجة تعتمد على البيانات ومستوى الضغط ودعم العميل؛ ليست الأفضل دائمًا.
br
Media Types
أنواع الوسائط
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
Language Tags
العلامات اللغوية
Language Tags العلامات اللغوية
تستخدم بروتوكولات HTTP علامات اللغة في حقول البادئة Accept-Language وContent-Language لتحديد وتنظيم اللغة المطلوبة للمحتوى بين العميل والخادم، وعلامة اللغة تتكون من جزء رئيسي [مثل "en" للإنجليزية] ويمكن أن تتضمن أجزاء فرعية [مثل "en-US" للإنجليزية الأمريكية]،
هذه المعلومات تساعد في تقديم المحتوى بلغة تناسب تفضيلات المستخدم أو إعدادات النظام. تعتمد علامات BCP 47 على أجزاء مسجلة لدى IANA وفق قواعد تركيب محددة؛ لا يلزم تسجيل كل تركيب كامل، وتوجد أيضًا أجزاء للاستخدام الخاص.
مثال للصيغة بعلامات اللغة في برتوكول http
تشير "fr-CA" إلى الفرنسية في كندا، و"fr-FR" إلى الفرنسية في فرنسا؛ fr-Paris ليست علامة مناسبة لباريس في سجل الأجزاء المستخدم هنا.
fr-CA, fr-FR
الصيغة الخاصة بعلامة اللغة هي كالتالي:
لا يُسمح بوجود فراغات داخل العلامة، وكل العلامات غير حساسة لحالة الأحرف.
language-tag = primary-tag *( "-" subtag )
سجّل الدخول لحفظ تقدمك
تابع إنجاز المواضيع والمصطلحات والمهام، وكمّل من آخر خطوة على أي جهاز.