Web Technology

HTTP Header Fields
حقول الرأس HTTP

حقول الرأس HTTP 

التاريخ

23 أبريل 2024

الدروس

51

المستوى

متقدم

اللغة

انجليزي

المشاهدات

539

المواضيع

4
الشروحات chevron_left HTTP Header Fields chevron_left Web Technology

HTTP Header Fields
حقول الرأس HTTP

</> HTTP Header Fields
حقول الرأس HTTP

تُعتبر حقول الرؤوس header fields في بروتوكول HTTP جزءًا مهمًا يُضيف معلومات إضافية للاتصال بين العميل والخادم، مما يساعد في تنظيم ومعالجة البيانات على الإنترنت، وتتكون رؤوس الطلبات أو الاستجابات بطريقة معينة، حيث يتكون كل رأس من اسم، ويُكتب كل رأس في سطر منفصل متبوعًا بنقطتين ومسافة، على النحو التالي: المفتاح: القيمة "key: value".

هذه الحقول تتضمن تفاصيل مثل نوع البيانات المُرسلة وكيفية التحقق من هوية المستخدم [العميل]، مما يُسهّل على الخادم التعامل بشكل صحيح مع الطلبات، وتلعب الحقول دورًا هامًا في تحسين أداء مواقع الويب حيث تساهم في تخزين المعلومات بشكل مؤقت لزيادة سرعة الاستجابة، إضافةً إلى ذلك، تُعزز أمان الاتصالات من خلال تحديد تقنيات التشفير اللازمة لحماية المعلومات المتبادلة.

</> Importance and Uses of HTTP Header Fields
أهمية واستخدامات حقول رأس HTTP

تلعب حقول الرؤوس headers fields في بروتوكول HTTP دورًا حيويًا في تحسين الكفاءة، والأمان، وسهولة التفاعل بين العميل والخادم، بعض الأهميات والاستخدامات البارزة لحقول الرؤوس headers fields:

  • التحكم في نوع المحتوى: يحدد الحقل مثل "Content-Type" نوع البيانات التي يتم نقلها، مما يساعد العميل في فهم كيفية معالجة أو عرض المحتوى، على سبيل المثال، يمكن تحديد ما إذا كان المحتوى عبارة عن نص عادي، أو صورة، أو ملف JSON.

  • إدارة الجلسات والتحقق من الهوية: تُستخدم حقول مثل "Authorization" و"Set-Cookie" للتحقق من هوية المستخدمين وتحديد صلاحيات الوصول، يساهم ذلك في حماية الموارد الحساسة ومنع الوصول غير المصرح به.

  • التخزين المؤقت: تسهل الحقول مثل "Cache-Control" و"Expires" عمليات التخزين المؤقت للبيانات، مما يحسِّن من سرعة استجابة المواقع عن طريق تقليل الطلبات المتكررة للخادم لنفس البيانات.

  • إدارة الاتصالات: يساعد حقل مثل "Connection" في إدارة كيفية إبقاء الاتصالات مفتوحة، مما يمكن أن يقلل من وقت تحميل الصفحات عن طريق إعادة استخدام الاتصالات القائمة بالفعل.

  • الأمان والخصوصية: تُستخدم حقول مثل "Strict-Transport-Security" و"Content-Security-Policy" لتعزيز أمان الاتصال عن طريق فرض نقل البيانات عبر قنوات مشفرة وحماية الموقع من هجمات الويب الشائعة.

  • تخصيص الاستجابة: يمكن للحقول مثل "Accept-Language" و"Accept-Encoding" أن تساعد الخادم في تخصيص المحتوى بناءً على تفضيلات المستخدم، مثل اللغة المفضلة أو نوع الضغط المستخدم.

  • مراقبة وتحليل الأداء: تمتلك بعض الحقول وظائف تمكن مسؤولي الشبكة والمطورين من تتبع أداء الموقع، مثل "Server-Timing" الذي يوفر نظرة على زمن الاستجابة والأداء العام للطلبات.

</> Types of HTTP Header Fields
أنواع حقول رأس HTTP

أنواع حقول رأس HTTP Header Fields

  • رؤوس الطلب Request Headers: تحتوي رؤوس الطلب على مزيد من المعلومات حول المورد الذي يجب جلبه، أو حول العميل الذي يقوم بطلب المورد.

  • رؤوس الاستجابة Response Headers: تحتوي رؤوس الاستجابة على معلومات إضافية حول الاستجابة، مثل موقعها أو معلومات حول الخادم الذي يوفرها.

  • رؤوس التمثيل Representation Headers: تحتوي رؤوس التمثيل على معلومات حول جسم المورد، مثل نوع الوسائط المستخدمة لتحديد الشكل الذي يتم إرساله به، أو تقنية الترميز والضغط المستخدمة عليه.

  • رؤوس الحمولة Payload headers: تحتوي رؤوس الحمولة على معلومات مستقلة عن التمثيل حول بيانات الحمولة، بما في ذلك طول المحتوى والترميز المستخدم من أجل النقل. 

</> HTTP Request Headers
رؤوس الطلب HTTP

تُعد طلبات HTTP Request Headers جزءًا حيويًّا في تقنيات الويب حيث تُنقل المعلومات بين العميل والخادم لتحسين تجربة التصفح، عند زيارة موقع ويب، يرسل المتصفح طلب HTTP إلى الخادم الذي يستضيف الموقع، وتُرفق مع الطلب بيانات إضافية تُسمى الرؤوس Headers مثل نوع المحتوى المطلوب واللغات المفضلة.


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

أنواع رؤوس طلبات Requests Headers HTTP
  • Authorization: يحتوي على بيانات اعتماد المستخدم للتحقق من الهوية من وكيل المستخدم مع الخادم.
  • If-Match: يجعل الطلب مشروطًا ويطبق الطريقة فقط إذا كان المورد المخزن يتوافق مع أحد التعرّفات المدعومة.
  • If-None-Match: يقوم بجعل الطلب مشروطًا ويطبق الطريقة فقط إذا لم يتوافق المورد المخزن مع أي من التعرّفات المدعومة.
  • If-Modified-Since: يقوم بجعل الطلب مشروطًا ويتوقع فقط أن يتم نقل المورد إذا تم تعديله بعد التاريخ المحدد.
  • If-Unmodified-Since: يقوم بجعل الطلب مشروطًا ويتوقع فقط أن يتم نقل المورد إذا لم يتم تعديله بعد التاريخ المحدد.
  • User-Agent: يحتوي على سلسلة تُمَكِّن قرناء البروتوكول الشبكي من تحديد نوع التطبيق، نظام التشغيل، مورد البرمجيات أو إصدار البرمجيات لوكيل المستخدم المطلوب.
  • Referer: يُظهر عنوان صفحة الويب السابقة من أين تم اتباع رابط للصفحة المطلوبة الحالية.

</> HTTP Authorization
التفويض HTTP

التفويض Authorization هو عملية تمنح المستخدم صلاحية الوصول إلى موارد معينة بعد التحقق من هويته، مما يضمن اقتصار الوصول على البيانات والوظائف المسموح بها فقط، يعزز التفويض الأمان من خلال حماية المعلومات الحساسة. ويعتمد على الأدوار المحددة للمستخدم، ويعد جزءًا أساسيًا من إدارة أمان المعلومات.

  • يتكون رأس التفويض Authorization من <auth-scheme> الذي يُحدد نوع التفويض مثل [Basic أو Bearer] بينما يُعبِّر "<authorization-parameters>" عن بيانات الاعتماد مثل [الرمز أو معلومات تسجيل الدخول المشفرة].
Authorization header pattern

نمط رأس التفويض Authorization

Authorization: <auth-scheme> <authorization-parameters>
Example of Authorization header

في Basic Authorization، يُشفِّر العميل بيانات الدخول بتنسيق Base64 في رأس التفويض للتحقق ومنح الوصول.

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
ملاحظات
  • الجزء المشفر "dXNlcm5hbWU6cGFzc3dvcmQ=" هو نتيجة ترميز "username : password" باستخدام Base64.

  • Base64 هو خوارزمية لترميز البيانات الثنائية إلى صيغة نصية باستخدام 64 رمزًا ASCII، مما يسهل نقلها عبر الوسائط التي تدعم النصوص فقط، مثل رؤوس HTTP. تزيد هذه العملية من حجم البيانات بنسبة حوالي 33% وتستخدم الرموز "A-Z"، "a-z"، "0-9"، "+"، و"/". وتُستخدم علامة "=" لإكمال أي نقص في طول السلسلة بحيث يصبح عدد الرموز دائمًا مضاعفاً لأربعة.

</> HTTP If-Match
إذا تطابق HTTP

HTTP If-Match يستخدم للتحقق من أن النسخة الموجودة من ملف هي الأحدث قبل إجراء أي تغييرات عليه. تُرسل الرموز مختلفة للنسخ الحالية إلى الخوادم وعند التشابة يتم تنفيذ التغيير، مما يمنع االتعديلات التي تحدث في نفس الوقت ولكنها غير مرغوب فيها. 

يفيد HTTP If-Match مطوري تطبيقات الويب في تجنب منع التصادم بين التعديلات. عند تحديث البيانات، فمن خلال فهم HTTP If-Match وتحليل رموز الحالة يمكن تحسين أداء التطبيقات وضمان موثوقية التحديثات. 
If-Match header pattern

استخدام رأس HTTP If-Match للتحقق من تطابق الـ ETag لضمان عدم تعديل المورد.

If-Match: <etag_value>
If-Match: <etag_value>, <etag_value>, …
Ensuring Files Are Updated Using an ETag in HTTP

يُظهر استخدام رأس HTTP If-Match للتحقق من تطابق الـ ETag لضمان تحديث المورد بشكل مشروط.

If-Match: "d41d8cd98f00b204e9800998ecf8427e"
If-Match: "a1b2c3", "d4e5f6", "123abc"
If-Match: *

</> HTTP If-None-Match
إذا لم يتطابق HTTP

يُعتبر HTTP If-None-Match ميزة في بروتوكول HTTP تهدف إلى زيادة كفاءة تحميل الموارد من خلال تقليل كمية البيانات المنقولة بين الخادم والمتصفح. يعتمد هذا المطلب على مفهوم "إعلام التغيير" أو "Etag"، الذي يُعرف بأنه رمز فريد يُخصص لكل نسخة من المورد المخزن على الخادم.

عندما يطلب المتصفح موردًا، يتولى الخادم التحقق من تطابق Etag المُرسل من المتصفح مع النسخة الموجودة لديه. إذا ظل المورد دون تغيير وتطابق Etag، يُرسل الخادم استجابة بحالة "304 Not Modified"، مما يعني عدم الحاجة إلى تنزيل البيانات مرة أخرى. أما إذا كان هناك تغيير ولم يتطابق Etag، يُرسل الخادم النسخة الجديدة من المورد مع Etag

المحدث. هذه الآلية تُسهم في تحسين سرعة تحميل الصفحات، مما يعزز من تجربة المستخدم عبر توفير الوقت والموارد وتقليل الجهد اللازم لتحميل المحتوى.


توجد حالتا استخدام شائعتان تُعتبران أساسيتين لهذه الميزة.

الحالة الأولى
تتعلق بطرق GET و HEAD، حيث تُستخدم لتحديث كيان مخزن مؤقتًا مرتبط بعلامة ETag. تُساهم هذه العملية في تحسين كفاءة استرجاع البيانات من الذاكرة المؤقتة بدلاً من طلبها مجددًا من الخادم.
الحالة الثانية تتعلق بطرق أخرى، وخاصةً طريقة PUT. يُمكن استخدام الشرط If-None-Match مع القيمة [*] لتنفيذ عملية رفع ملف عندما لا يُعرف مسبقًا إن كان الملف موجودًا بالفعل أم لا.

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

  • رأس If-None-Match يُستخدم في بروتوكول HTTP لمطابقة ETag مع النسخ المخزنة من الموارد لتحسين كفاءة نقل البيانات. عند استخدام "<If-None-Match: <etag_value"، يُتحقق من تطابق القيمة مع النسخة الموجودة، وفي حال التطابق تُرسل استجابة "304 Not Modified" لتجنب إعادة النقل. يتضمن ""If-None-Match: W/"45de32", "23fg45", "6789op" قائمة من ETag، بما فيها القيم الضعيفة مثل [W/"45de32"]، للمقارنة مع أي نسخة مطابقة محتملة. أما " * :If-None-Match"، فيشير إلى أي إصدار موجود من المورد، ويُمكن استخدامه لضمان عدم الكتابة فوق الملفات الموجودة عند رفعها.
If-None-Match Header Patterns

أنماط رأس If-None-Match

If-None-Match: "<etag_value>"
If-None-Match: "<etag_value>", "<etag_value>", …
If-None-Match: *
Examples of using the If-None-Match header in HTTP requests

مثال لرأس If-None-Match يستخدم ETag فردي أو قائمة متعددة أو "*" لتجنب النقل غير الضروري أو استبدال الموارد.

If-None-Match: "a1b09c36279d4390df6a4d3840175e24bc61f91a"
If-None-Match: W/"45de32", "23fg45", "6789op"
If-None-Match: *
ملاحظة

ETag يُعرّف كرمز فريد يُخصص لكل نسخة من المورد المخزن على الخادم. يُستخدم [ETag] كوسيلة للتحقق من التغيرات في الموارد وتحديد ما إذا كان المورد الذي يطلبه المتصفح قد تغير منذ آخر مرة تم تحميله، مما يُساعد في تقليل نقل البيانات غير الضروري بين الخادم والمتصفح.

</> HTTP If-Unmodified-Since
إذا لم يُعدّل منذ HTTP

رأس طلب HTTP If-Unmodified-Since هو أداة حيوية تساعد في تحسين أداء التطبيقات عبر الإنترنت عن طريق جعل طلبات العميل مشروطة بالتحقق من عدم تغيير المورد منذ تاريخ معين. يُستخدم هذا الرأس من قِبل العميل [مثل المتصفح] لضمان تنفيذ الطلب فقط إذا لم يتغير المورد، مما يقلل من نقل البيانات غير الضرورية بين العميل والخادم، ويعزز من كفاءة العملية واستجابتها.

عندما يقوم العميل بإرسال تاريخ آخر تعديل للنسخة المحفوظة محليًا إلى الخادم، يقوم الخادم بمقارنة هذا التاريخ مع تاريخ آخر تعديل للمورد. في حالة عدم حدوث تعديل، يُرسل الخادم البيانات المخزنة مؤقتًا، مما يوفر الوقت والقدرة الحاسوبية، وهي قدرة الخادم على معالجة البيانات وتنفيذ العمليات الحسابية بشكل فعال.

يُعتبر هذا الرأس مفيدًا عند استخدام طرق غير آمنة مثل POST، حيث يساعد في تطبيق التحكم المتفائل في التزامن كما هو الحال في بعض مواقع الوِكيات، حيث تُرفض المراجعات في حال تغيير الوثيقة لضمان تجنب النزاعات. أيضًا، يُستخدم في طلبات النطاق لضمان أن الأجزاء المطلوبة تأتي من مستند غير معدل.

  • في هذا التنسيق أدناه، يمكنك استبدال "<day-name>", "<day>", "<month>", "<year>", "<hour>", "<minute>", و"<second>" بالقيم المناسبة التي تمثل التاريخ والوقت المحددين. على سبيل المثال، "<day-name>" هو "Sun"، و "<day>" هو "06"، و "<month>" هو "Nov"، و "<year>" هو "1994"، و "<hour>" هو "08"، و "<minute>" هو "49"، و "<second>" هو "37". يعبر [GMT] عن الوقت بتوقيت جرينتش.
HTTP If-Unmodified-Since header pattern

بهذا النمط يكون رأس If-Unmodified-Since

If-Unmodified-Since: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
Example of If-Unmodified-Since header

المثال يوضح شرطًا يعتمد على التاريخ والوقت لمزامنة الطلب مع محتوى المورد المخزن على الخادم.

If-Unmodified-Since: Sun, 06 Nov 1994 08:49:37 GMT

</> HTTP User-Agent
وكيل المستخدم HTTP

وكيل المستخدم HTTP User-Agent، هو أحد المكونات الأساسية في عمليات تبادل البيانات عبر الإنترنت. عندما تقوم بالاتصال بأي موقع ويب، يقوم متصفحك بإرسال معلومات حول نفسه إلى الخادم الذي يستضيف هذا الموقع. هذه المعلومات تُعرف بـ[User-Agent]، وهي عبارة عن سلسلة نصية تحتوي على تفاصيل مثل نوع المتصفح، ونظام التشغيل، والأجهزة المستخدمة.

يُعتبر [User-Agent] مفيدًا بشكل كبير لأصحاب المواقع ومطوري الويب حيث يمكنهم استخدامه لفهم أنواع الأجهزة والمتصفحات التي يستخدمها زوارهم، وبالتالي تهيئة المحتوى ليتناسب بشكل أفضل مع هؤلاء المستخدمين. فمثلًا، إذا اتضح أن عددًا كبيرًا من الزوار يستخدمون أجهزة محمولة، فقد يقوم المطورون بتصميم نُسخة محسّنة للموقع لتتناسب مع الشاشات الصغيرة.

بالإضافة إلى ذلك، يساعد [User-Agent] في تحسين الأمان وقياس أداء الموقع. فقد يتم تحديد أنواع معينة من المتصفحات أو الأجهزة لاتخاذ إجراءات أمان إضافية، أو حتى تصحيح أخطاء محددة قد تؤثر على الأداء بشكل عام.

  • يتكون User-Agent من [اسم التطبيق أو المتصفح] متبوعًا بـ [النسخة]، بالأضافة الي [معلومات إضافية عن النظام أو الجهاز] عن تفاصيل مثل نوع النظام أو نسخة نظام التشغيل المستخدمة.
HTTP User-Agent header pattern

رأس"User-Agent" في HTTP يحدد اسم وإصدار المتصفح أو التطبيق ومعلومات النظام لتخصيص تجربة المستخدم.

User-Agent: [application or browser name]/[version] ([additional information about the system or device])
Example of User-Agent header

مثال علي رأس User-Agent في HTTP.

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3
ملاحظة

في المثال السابق يٌشير"Mozilla/5.0" يدل على التوافق مع معيار موزيلا لدعم مختلف المتصفحات، و"(Windows NT 10.0; Win64; x64)" يوضح أن نظام التشغيل هو ويندوز 10 بإصدار 64 بت، بينما "AppleWebKit/537.36 (KHTML, like Gecko)" يُظهر استخدام محرك التصفح WebKit، و"Chrome/58.0.3029.110" يوضح أن المتصفح هو جوجل كروم، في حين أن "Safari/537.3" يُبرز التوافق مع سفاري باستخدام محرك WebKit.

</> HTTP Referer
الإحالة HTTP



																			
									
																		
								

</> HTTP response headers
رؤوس الاستجابة HTTP

تعتبر رؤوس الاستجابة HTTP من العناصر المهمة جدًا في عملية تبادل البيانات عبر الإنترنت، تعتبر رؤوس الاستجابة هي الجزء الموجود في أعلى رسالة الاستجابة التي يرسلها الخادم إلى المتصفح بعد طلب معين، تعمل هذه الرؤوس على تزويد البيانات اللازمة لكيفية معالجة البيانات المستقبلة أو كيفية عرض الصفحة للمستخدم.

تتكون رؤوس الاستجابة من عدة أنواع، مثل رأس تاريخ الإنشاء [Date] الذي يوضح تاريخ إنشاء الرسالة، ورأس اتصال [Connection] الذي يعطي تفاصيل حول اتصال الخادم، وغيرها الكثير من الرؤوس التي تحدد خصائص وسلوكيات الاستجابة.

أنواع رؤوس استجابات Response Headers HTTP

  • WWW-Authenticate: يحدد طريقة المصادقة التي يجب استخدامها للوصول إلى المورد.
  • Proxy-Authenticate: يحدد طريقة المصادقة للوصول إلى مورد خلف خادم وكيل.
  • Age: يُظهر الوقت، بالثواني، الذي كان الكائن فيه في ذاكرة التخزين المؤقت للوكيل.
  • Cache-Control: توجيهات لآليات التخزين المؤقت في الطلبات والاستجابات.
  • Expires: تاريخ/وقت بعده تعتبر الاستجابة قديمة.
  • Location: يحدد عنوان URL لإعادة التوجيه.
  • Connection: الذي يعطي تفاصيل حول اتصال الخادم
  • Server: يحتوي على معلومات حول البرنامج المستخدم من قِبل الخادم الأصل.
  • Timing-Allow-Origin: يحدد الأصول المسموح لها برؤية قيم السمات المستردة عبر ميزات توقيت الموارد.
  • Content-Security-Policy (CSP): يتحكم في الموارد التي يصرح للمستخدم بتحميلها لصفحة معينة.
  • Strict-Transport-Security (HSTS): يفرض الاتصالات باستخدام HTTPS بدلاً من HTTP.
  • Set-Cookie: إرسال الكوكيز من الخادم إلى وكيل المستخدم.
  • Date: الذي يوضح تاريخ إنشاء الرسالة.

</> HTTP Content Encoding
ترميز المحتوى HTTP

ترميز المحتوى HTTP Content Encoding هو عملية ضغط المحتوى عبر الإنترنت لتحسين سرعة تحميل الصفحات وتوفير عرض النطاق الترددي، يتيح ذلك للمستخدمين تجربة تصفح أفضل وسريعة دون تأخير، يستخدم الخوادم تقنيات الضغط مثل Gzip وDeflate لضغط الملفات قبل إرسالها،مما يوفر القدرة الحاسوبية ويسهل الوصول السريع إلى المحتوى.
Content-Encoding header pattern

تقنيات متعددة لضغط البيانات، تُطبق بتسلسل لتحسين حجم النقل وتقليل استهلاك النطاق الترددي.

Content-Encoding: gzip
Content-Encoding: compress
Content-Encoding: deflate
Content-Encoding: br
Content-Encoding: zstd

// Multiple, in the order in which they were applied
Content-Encoding: deflate, gzip
Compress content using gzip in HTTP response

يشير أن محتوى HTTP مضغوط بتقنية gzip لتقليل حجم البيانات المرسلة من الخادم إلى العميل.

Content-Encoding: gzip

</> HTTP Content Language
لغة محتوى HTTP

لغة محتوى HTTP Content language تُستخدم لتحديد اللغة المستخدمة في محتوى الصفحة. تُساعد هذه التقنية في توجيه المستخدمين إلى نسخ من الصفحة تحتوي على محتوى بلغات مختلفة تناسب احتياجاتهم. تُحدّد اللغة باستخدام رموز مختصرة ومعروفة، مثل [en] للإنجليزية و[ar] للعربية، لغة المحتوي HTTP Content language تساعد في الوصول إلى المحتوى المناسب لكل مستخدم. .

Content-Language header pattern

عندما يتم تحديد لغة واحدة فقط.

Content-Language: <language-tag>
Content-Language header pattern

عندما تُحدّد أكثر من لغة.

Content-Language: <language-tag>, <language-tag>, <language-tag>
Select language: English

توضح أن الجمهور المستهدف للصفحة هم الأشخاص الناطقون باللغة الإنجليزية.

Content-Language: en
Target languages: German and English

يشير إلى أن الجمهور المستهدف للصفحة هم الأفراد الذين يتحدثون الألمانية والإنجليزية.

Content-Language: de, en

</> HTTP Content Location
موقع محتوى HTTP

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

يوجد عوامل تساهم في تحسين فعالية نقل المحتوى مثل التخزين المؤقت، والسرعة والأمان. هذه العوامل تهدف جميعها إلى تحسين تجربة الاستخدام على سبيل المثال، التخزين المؤقت يعني حفظ النسخ المؤقتة من الملفات لتسريع الوصول إليها لاحقًا، بينما تشير السرعة إلى مدى سرعة تحميل الصفحة على جهاز المستخدم.
Content-Location header pattern

يوضح العنوان Content-Location عنوان URL المباشر للوصول إلى البيانات دون الحاجة إلى تفاوض إضافي على المحتوى.

Content-Location: <url>
Create your first blog using example.com API

طريقة إنشاء ونشر مقال جديد باستخدام واجهة برمجة تطبيقات النصوص من example.com.

POST /new/post
Host: example.com
Content-Type: text/markdown

# My First Blog Post!

I created this using the API from `example.com`. I hope it was successful.
Create a new blog post via API successfully

يوضح المثال إنشاء منشور مدونة عبر API بنجاح برمز "201 Created" وموقع بتنسيق Markdown.

HTTP/1.1 201 Created  
Content-Type: text/markdown  
Content-Location: /my-first-blog-post  

# My First Blog Post

I crafted this using the API provided by `example.com`. I hope it was successful.
Confirm successful payment of $38.00 to ExampleUser

استجابة HTTP ناجحة تؤكد إرسال مبلغ 38.00 دولارًا إلى ExampleUser، مع توفير تفاصيل الإيصال بتنسيق HTML.

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Location: /my-receipts/38

<!doctype html>
(Lots of HTML…)

<p>You sent $38.00 to ExampleUser.</p>

(Lots more HTML…)

</> HTTP Content Type
نوع محتوى HTTP

نوع المحتوى HTTP content type يحدد نوع البيانات المتبادلة بين المستخدم والخادم. يُعرف من خلال رأس HTTP Content Type ويشمل صيغة البيانات مثل HTML أو JPEG. فهم نوع المحتوى يساعد في معالجة البيانات بشكل صحيح، مما يحسن تجربة المستخدم على الويب. يجب تعيين نوع المحتوى بشكل صحيح لضمان التوافق والأداء السهل عبر الأنظمة المختلفة.

Content-Type header pattern

نوع المحتوى: يُحدد نوع البيانات المتبادلة وكيفية معالجتها في HTTP.

Content-Type: <media-type>
Distinguishing between Data Types in HTTP

رأس Content-Type يُحدد نوع البيانات، ورأس boundary في multipart/form-data يحدد الفواصل.

Content-Type: application/json; charset=utf-8  
Content-Type: multipart/form-data; boundary=UniqueBoundaryString

</> HTTP Payload headers
رؤوس الحمولة HTTP

هي رؤوس توضح معلومات الحمولة المتعلقة بنقل آمن وإعادة بناء تمثيل المورد الأصلي من رسائل واحدة أو أكثر. يشمل ذلك معلومات مثل طول حمولة الرسالة، والجزء الذي يتم حمله من المورد في هذه الحمولة وأي تشفير تم تطبيقه للنقل، وفحوصات سلامة الرسالة، وما إلى ذلك.

قد تكون رؤوس الحمولة موجودة في رسائل الطلب والرد في HTTP أي في أي رسالة تحمل بيانات الحمولة،تشمل رؤوس الحمولة: طول المحتوى، نطاق المحتوى، العربة، وتركيبة الترميز.

في الطلب، يمكن لرأس الحمولة Content-Length تحديد طول الحمولة التي تم إرسالها في الطلب. بينما يمكن لرأس الحمولة Content-Range تحديد نطاق البيانات المطلوبة من المصدر.

وفي رسالة الاستجابة، قد يتم استخدام Trailer لحمل المعلومات الإضافية بعد تنفيذ الحمولة الرئيسية، بينما يمكن استخدام Transfer-Encoding لتحديد الترميز المستخدم للنقل.


أنواع رؤوس الحمولة Payload Headers HTTP 

Content-Length: حجم المورد بالبايت.
Content-Range: يحدد مكان تواجد جزء من الرسالة الكاملة.

</> HTTP Representation Headers
رؤوس التمثيل HTTP

تعتبر رؤوس التمثيل Representation Header مهمة في الويب، حيث تقوم بتحديد كيفية عرض الموارد والبيانات على المتصفح، ويمكنها أن تحمل معلومات مهمة تساعد على تعريف كيفية معالجة البيانات وعرضها للمستخدمين، تشمل رؤوس التمثيل Representation Headers مجموعة من البيانات التوجيهية تعلم الخادم كيفية تفسير المحتوى وعرضه على المتصفح. تشمل هذه البيانات معلومات عن نوع المحتوى، وطريقة الترميز، واللغة المستخدمة، وغيرها من التفاصيل التقنية التي تساعد على تحسين تجربة المستخدم.

من خلال رؤوس التمثيل Representation Headers، يستطيع الخادم إرسال توجيهات محددة لجعل عملية عرض البيانات أكثر فعالية وفعالية. يمكن لمطوري المواقع الاستفادة من هذه التوجيهات لضبط العرض والأداء بما يتناسب مع احتياجات المستخدمين.

أنواع رؤوس التمثيل Representation Headers HTTP

  • Content-Type: يحدد نوع الوسائط للمورد.
  • Content-Encoding: يُستخدم لتحديد خوارزمية الضغط.
  • Content-Language: يصف اللغة البشرية المخصصة للجمهور.
  • Content-Location: يشير إلى موقع بديل للبيانات المعادة.

</> HTTP Content Length
طول محتوى HTTP

يُستخدم رأس طول المحتوى HTTP content length في بروتوكولات الاتصال عبر الشبكة لتحديد حجم البيانات التي تُرسل عبر الشبكة. وهذا يشمل حجم جسم الرسالة بالبايت، يُعد فهم دور رأس  طول المحتوى أمرًا مهمًا ، لأن من خلاله ستظهر كمية البيانات التي تمر عبر الشبكة، مما يُساعد ذلك في ضمان سهولة مرور البيانات بين الأجهزة المتصلة في الشبكة.
Content Size: Provide data in 219 bytes

Content-Length يُحدد حجم المحتوى بالبايتات.

Content Length: 219

</> HTTP Content Range
نطاق المحتوى HTTP

يشير رأس HTTP content range إلى جزء محدد من البيانات داخل ملف كامل، مما يساعد على نقل البيانات بشكل جزئي عبر الإنترنت بين الخوادم والمستخدمين.

يُستخدم هذا النظام عند تحميل ملفات كبيرة مثل الفيديوهات، للسماح بتحميل أجزاء منها فقط، مما يُساهم في تقليل الوقت المستغرق والموارد المستخدمة. عندما يكون الاتصال بطيئًا أو ينقطع فجأة، يمكن متابعة تحميل الملفات من الجزء الذي توقف المستخدم عنده باستخدام HTTP content range.

يقوم الخادم بتقسيم الملفات إلى أجزاء صغيرة، ويُرسل هذه الأجزاء بناءً على طلب المستخدم، مما يُحسّن من فعالية تحميل البيانات، ويوفر الوقت والموارد.
Content Range header pattern

يحدد رأس Content Range نطاق البايت الدقيق الذي يتم إرساله في الاستجابة، وهو أمر مفيد لتنزيل أو بث أجزاء من ملف كبير.

Content Range: <unit> <range start> <range end>/<total size>
  Content Range: <unit> <range start> <range end>/*
  Content Range: <unit> */<total size>
Specify the portion of data sent from the full file.

يحدد هذا النطاق نقل البيانات من البايت 300 إلى 1200 ضمن ملف حجمه الإجمالي 70,500 بايت.

Content-Range: bytes 300-1200/70500

</> HTTP Content Disposition
توزيع المحتوى HTTP

يستطيع رأس HTTP content disposition على توجيه المتصفح في كيفية التعامل مع المحتوى المرسل من الخادم، مثل فتحه مباشرة أو تنزيله كملف. يمكن للمطورين استخدام إعدادات مثل attachment لتنزيل الملف أو inline لعرضه داخل المتصفح، مما يعزز تجربة المستخدم. فهم هذا الرأس يساعد في تخصيص تجربة إدارة الملفات على الويب، بتحديد كيفية عرض أو تنزيل المحتويات مثل الصور أو المستندات.
Content Disposition header pattern

أساسيات التعامل مع البيانات داخل المحتوى الرئيسي للنص.

Content Disposition : inline 
Content Disposition : attachment
Content Disposition : attachment ; filename = "file_name.html"
Content Disposition header pattern

اساسيات التعامل مع البيانات المعقدة والمتنوعة في النصوص خطوة بخطوة.

Content-Disposition : form-data
Content-Disposition : form-data; name="field_value"
Content-Disposition : form-data; name="field_value"; filename="file_name.html"
HTTP Response: PDF download successfully

استجابة HTTP توفر مستند PDF للتنزيل بحجم 1024 بايت واسمه document.pdf.

HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Disposition: attachment; filename="document.pdf"
Content-Length: 1024
Upload user data and image using HTTP POST request.

يرسل مثال HTTP POST حقول نصية وملف عبر `multipart/form-data`.

POST /submit.html HTTP/1.1
Host: newsite.com
Content-Type: multipart/form-data;boundary="newboundary"

--newboundary
Content-Disposition: form-data; name="username"

newuser123
--newboundary
Content-Disposition: form-data; name="profile_picture"; filename="profile.jpg"

newcontent
--newboundary--

</> HTTP WWW Authenticate
مصادقة HTTP WWW

عملية المصادقة HTTP WWW-Authenticate تلعب هذه العملية دورًا كبيرًا في تأمين البيانات التي تُرسل وتُستقبل بين المتصفح والخادم، يمكن اعتبارها كعملية تحقق من الهوية، حيث يطلب الخادم من المتصفح تقديم تفاصيل تسجيل الدخول قبل السماح بالوصول إلى البيانات.

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

 عملية المصادقة HTTP WWW-Authenticate تُستخدم لحماية الموارد والمعلومات القيمة من الوصول غير المصرح به.
WWW-Authenticate header pattern

سطر رأس HTTP يحدد نوع المصادقة والنطاق المطلوب للوصول إلى مورد.

WWW-Authenticate: <type> realm=<realm> realm=<realm>
Use the WWW-Authenticate line to authenticate a Bearer in the "secure-area" range

سطر رأس HTTP يحدد أن المصادقة المطلوبة هي من نوع Bearer للوصول إلى المورد ضمن المجال "secure-area".

WWW-Authenticate: Bearer realm="secure-area"
Implement Digest Authentication for secure access to the Admin Area.

سطر رأس HTTP يحدد استخدام Digest Authentication للوصول إلى "Admin Area" مع إعدادات أمان "qop" و"charset".

WWW-Authenticate: Digest realm="Admin Area", qop="auth", charset="UTF-8"

</> HTTP Proxy Authenticate
مصادقة وكيل HTTP

مصادقة وكيل HTTP Proxy Authenticate هي عملية تأمين الاتصال عبر الشبكة، حيث يتطلب الخادم تقديم المستخدم لمعلومات تعريفه للوصول إلى الموارد، تساهم هذه العملية في تقليل فرص الوصول غير المصرح به وتحسين الأمان، إذ يمكن لمسؤولي الشبكة إعداد المصادقة للتحقق من هوية المستخدمين ومراقبة نشاطهم، عند استخدام البروكسي، يتعين على المستخدم تقديم بيانات صحيحة مثل اسم المستخدم وكلمة المرور للولوج إلى المواقع. تسهم هذه الإجراءات في حماية البيانات الحساسة من الاختراق وضمان شبكة آمنة ومستقرة.
Proxy-Authenticate header pattern

نمط كود Proxy-Authenticate

Proxy-Authenticate: <type> realm=<realm>
Example of using Bearer token for proxy authentication

رمز مصادقة Bearer لتفويض الوصول عبر خادم وكيل.

Proxy-Authorization: Bearer zYXwVuT9876AbCdEf1234

</> HTTP Age
رأس العمر HTTP

رأس المحتوى HTTP Age يحتوي على الوقت بالثواني التي كان فيها الكائن في ذاكرة التخزين المؤقت الخاصة بالوكيل، يكون عمر التخزين عادةً قريبًا من الصفر. إذا كان HTTP Age يحمل القيمة "0"، فهذا يعني غالبًا أنه تم جلبه مباشرةً من الخادم الأصلي، وليس من الذاكرة المؤقتة. في الحالات الأخرى، يُحسَب العمر عادةً كفرق بين تاريخ ووقت الوكيل الحالي، والتاريخ العام في الاستجابة على الخادم.
age header pattern

يشير "age: <delta-seconds>" إلى الوقت المنقضي، بالثواني، منذ آخر تحديث للمحتوى المخزن مؤقتًا.

age: <delta-seconds>
Measure buffering time to improve responsiveness

المثال يوضح أن المحتوى المخزن مؤقتًا قد مر عليه ساعة واحدة منذ آخر تحديث.

Age: 3600

</> HTTP Cache Control
التحكم في ذاكرة التخزين المؤقت لـ HTTP

التخزين المؤقت HTTP Cache Control يحتوي على توجيهات تعليمات، تُستخدم في كل من الطلبات والاستجابات، للتحكم في التخزين المؤقت في المتصفحات والمخازن المؤقتة المشتركة مثل البروكسيات، والشبكات السحابية [CDNs].

تُسهم هذه التوجيهات في تحسين الأداء من خلال السماح للخوادم بتحديد كيفية التعامل مع المحتوى لتقليل وقت التحميل. يمكن للمطورين تحديد مدة معينة لتخزين المحتوى في ذاكرة التخزين المؤقت أو حتى منع التخزين المؤقت تمامًا إذا كان ذلك ضروريًا.

التخزين المؤقت يعني الاحتفاظ بنسخة من المحتوى في موقع وسيط مثل ذاكرة المتصفح لتسريع الوصول إليها في الطلبات المستقبلية. هذا يقلل من الحمل على الخادم الأصلي، ويحسن من وقت استجابة الموقع للمستخدمين، ويعزز من كفاءة استخدام الشبكة.
CDNs
تُعتبر شبكات توصيل المحتوى CDNs أنظمة توزيع تتكون من خوادم متعددة في مواقع مختلفة حول العالم، وتعمل على تحسين سرعة وسلاسة تحميل المحتوى عبر الإنترنت. تقوم هذه الشبكات بتوزيع البيانات، مثل الصور والفيديوهات، على مجموعة من الخوادم بحيث يُمكن للمستخدم الوصول إلى أقرب خادم جغرافيًا، مما يقلل من زمن الاستجابة ويُحسن من تجربة التصفح بشكل عام.
Set content caching time to 1 hour in HTTP

يشير المثال أن المحتوى يمكن تخزينه لمدة ساعة واحدة قبل التحقق من صلاحيته مجددًا.

Cache-Control: max-age=3600
1 day cache duration with 200 seconds cache lifetime

يشيرالمثال أن المحتوى يمكن تخزينه مؤقتًا لمدة يوم واحد، وقد مضى 200 ثانية من فترة التخزين بالفعل.

Cache-Control: max-age=86400
Age: 200
Set a server cache duration of 5 days

يشير المثال أن المحتوى يمكن تخزينه مؤقتًا في ذاكرة التخزين المؤقت الوسيطة لمدة تصل إلى أسبوع واحد.

Cache-Control: s-maxage=432000
Cache-Control no-cache header pattern

يتطلب التحقق من صلاحية المحتوى مع الخادم في كل مرة قبل استخدام النسخة المخزنة.

Cache-Control: no-cache
Content validity management with continuous verification after one hour

يُسمح للمتصفح بتخزين المحتوى لمدة ساعة، ثم يجب عليه إعادة التحقق من الصلاحية مع الخادم.

Cache-Control: max-age=3600, must-revalidate
Cache-Control no-store header pattern

يمنع المتصفح من تخزين أي نسخة من محتوى الصفحة لضمان الخصوصية والأمان.

Cache-Control: no-store
Cache-Control header pattern

النمط يشير ان المحتوى المخزن في الذاكرة المخبئة مخصص لجهاز المستخدم فقط وليس للمشاركة العامة مع مستخدمين آخرين.

Cache-Control: private
Cache-Control-public header pattern

يسمح بتخزين المحتوى مؤقتاً بواسطة أي مخبئ، مما يجعله متاحاً للعديد من المستخدمين لتحسين الأداء.

Cache-Control: public
Caching content for a day with maximum efficiency

يتيح تخزين المحتوى مؤقتًا من قِبل أي مستفيد لمدة يوم واحد (86400 ثانية) لتسريع الوصول وتحسين الأداء.

Cache-Control: public, max-age=86400
Safe storage instructions with mandatory support for directions

يتطلب دعمًا إلزاميًا لهذه التوجيهات ويمنع تخزين المحتوى مؤقتًا لأي مستخدم لضمان الأمان والخصوصية الكاملة.

Cache-Control: must-understand, no-store
Persistent content storage for one month to improve performance

يتيح تخزين المحتوى لمدة ثلاثين يومًا دون تغييرات، مما يعزز الأداء وكفاءة التحميل.

Cache-Control: public, max-age=2592000, immutable
Fast loading with asynchronous updating during grace period

يسمح بتخزين المحتوى لمدة ساعة مع استخدامه بشكل مؤقت لمدة 10 دقائق إضافية أثناء التحقق من تحديثات جديدة.

Cache-Control: max-age=3600, stale-while-revalidate=600
Flexible loading with temporary validity and persistence in case of errors

يسمح بتخزين المحتوى لمدة 12 ساعة مع استخدام النسخة القديمة لمدة ساعة إضافية في حالة حدوث خطأ في التحديث.

Cache-Control: max-age=43200, stale-if-error=3600

</> HTTP Expires
انتهاء صلاحية HTTP

انتهاء صلاحية HTTP Expires هو جزء من استجابات بروتوكول HTTP ويُستخدم لتحديد تاريخ انتهاء الصلاحية للمحتوى المخزن مؤقتًا في المتصفح، مما يساعد في تحسين سرعة تحميل الصفحات وتقليل استهلاك البيانات بإبقاء النسخ القديمة ما لم تنتهِ صلاحيتها. إذا كان يحتوي على الصفر [0]، فهذا يعني أن الاستجابة قد انتهت صلاحيتها بالفعل. ضبط هذه الخاصية بشكل صحيح يضمن تجربة استخدام أسرع ومتناسقة دون التسبب في عرض محتوى قديم.
Expires header pattern

نمط رأس Expires.

Expires: <http-date>
Specify the expiration date of cached content

تحديد تاريخ انتهاء صلاحية المحتوى المخزن مؤقتًا، مما يوجه المتصفح لاستخدام النسخة المخزنة حتى الوقت المحدد.

Expires: Fri, 01 Dec 2023 10:00:00 GMT

</> HTTP Location
موقع HTTP

رأس HTTP Location يُستخدم لتحديد عنوان URL المراد التوجه إليه في حالات إعادة التوجيه أو إنشاء الموارد الجديدة. هذا العنوان يظهر مع أكواد استجابة مثل 3XX التي تشير إلى إعادة التوجيه، أو 201 Created للإعلان عن إنشاء مورد جديد، مما يتيح للعميل معرفة الموقع الجديد للمورد. تعتمد الطريقة المستخدمة في الطلب الجديد على الطريقة الأصلية ونوع إعادة التوجيه؛ مثلًا، "303 See Other" يؤدي لطلب "GET"، في حين أن 301 و302 قد تستخدم نفس الطريقة الأصلية، مع مراعاة توافق المتصفحات القديمة.
Location header pattern

نمط رأس Location

Location: <url>
Redirect page to internal address

المثال يشير إلى إعادة توجيه المستخدم إلى الصفحة الرئيسية في الموقع ضمن دليل home.

Location: /home/page.html

</> HTTP Connection
اتصال HTTP

يعد رأس HTTP Connection أداةً تسمح للعميل بتحديد كيفية إدارة الاتصالات بالشبكة بسهولة، فبدلاً من فتح اتصال جديد لكل طلب، يُمَكّن الرأس من استخدام اتصال TCP واحد لإرسال واستقبال طلبات HTTP متعددة مما يساعد في تحسين الأداء وتقليل زمن الاستجابة. عندما تكون القيمة "keep-alive"، يبقى الاتصال مستمرًا. هذا يساعد في تحميل بيانات متعددة بفعالية دون إعادة إنشاء الاتصالات المتكررة، مما يجعل تجربة التصفح أسرع وأكثر كفاءة للمستخدمين.
Connection header pattern

المثال يوضح ان الاتصال في HTTP بين الإبقاء عليه مفتوحًا مع "keep-alive" أو إغلاقه بعد الطلب بـ"close".

Connection: keep-alive
Connection: close
HTTP persistence settings

المثال يشير ان إعدادات HTTP التي تبقي الاتصال مفتوحًا لـ200 طلب لتحسين الأداء.

Keep-Alive: 200 Connection: keep-alive
HTTP connection closing settings

المثال يشير إلى إعداد HTTP حيث يُغلق الاتصال بعد تنفيذ الطلب الحالي مباشرةً.

Connection: close

</> HTTP Server
خادم HTTP

يُعدّ عنوان الخادم في HTTP جزءًا من معلومات الاستجابة، حيث يحتوي على بيانات حول البرمجيات التي يستخدمها الخادم لمعالجة الطلبات. يُظهر هذا العنوان فقط بعض التفاصيل البسيطة عن الخادم، مثل اسم الخادم والبرمجيات مثل [sffe] و[cloudflare]، ويحرص على إخفاء جميع المعلومات المهمة لتقليل فرص المهاجمين في استهداف برمجيات الخادم.
Server: [Product] as a reliable connection point for digital data and services

"<product> هو خادم ويب يقوم باستلام ومعالجة طلبات HTTP لتسليم الصفحات والمحتويات إلى المتصفح بكفاءة."

Server: <product>
Improve website performance and security with Cloudflare

المزود: كلاودفلير يحسّن سرعة الموقع وأمانه من خلال شبكة توزيع المحتوى ويقدم حلول حماية متقدمة ضد التهديدات الإلكترونية.

server: cloudflare
Server Performance Details Using Akamai Resource Optimizer

المثال يشير ان تم تسجيل "MISS" في تخزين المحتوى المخبأ للشبكة ومدة استجابة الحافة كانت 2 مللي ثانية.

server: Akamai Resource Optimizer
server-timing: cdn-cache; desc=MISS
server-timing: edge; dur=2

</> HTTP Timing-Allow-Origin
السماح بالتوقيت-الأصل HTTP

تسمح خاصية السماح بالتوقيت الأصل Timing-Allow-Origin لمواقع الويب بتحديد من يمكنه رؤية معلومات عن سرعة تحميل العناصر على الموقع. هذه المعلومات مهمة لأنها تساعد في تحسين أداء الموقع، وجعل التصفح أسرع للمستخدمين. 

هذه الخاصية، تمكن المطورين اختيار مشاركة هذه البيانات مع جهات معينة، مما يضمن الأمان، وتحمي الموقع من الاستخدام غير الصحيح. بالإضافة إلى ذلك، تُمكن هذه الخاصية المبرمجين من معرفة أي جزء من الموقع يحتاج إلى تحسين، مثل الصور أو الملفات الكبيرة، لتقديم تجربة تصفح أفضل للمستخدمين. 
Timing-Allow-Origin header pattern

تسمح لجميع المواقع بالوصول إلى معلومات توقيت التحميل لتحليل أداء الموقع.

Timing-Allow-Origin: *
Timing-Allow-Origin header pattern

يسمح للمواقع المحددة فقط بالوصول إلى معلومات توقيت التحميل لتحسين الأداء.

Timing-Allow-Origin: <origin> [, <origin>]*
Allow CloseTag to access your download timing data

المثال يشير ان تم السماح فقط لموقع "https://www.closetag.com" بالوصول إلى معلومات توقيت التحميل لتحليل أداء الموقع.

Timing-Allow-Origin: https://www.closetag.com

</> HTTP Content-Security-Policy
سياسة أمان محتوى HTTP

تُعد خاصية سياسة أمان المحتوى HTTP Content-Security-Policy أداة مهمة تساعد مطوري الويب في حماية مواقعهم من الهجمات الإلكترونية، مثل البرمجيات الخبيثة وسرقة البيانات، من خلال تحديد المصادر الموثوقة لتحميل الموارد مثل البرمجيات النصية والأنماط والصور،تساعد هذه الخاصية لمطوري الويب التحكم في الموارد التي يمكن تحميلها وعرضها على الموقع، مما يعزز أمان الموقع عن طريق منع تحميل الأكواد من مصادر غير أمنة.تساعد هذه الخاصية في حماية المواقع من الهجمات الإلكترونية التي تستغل الثغرات الأمنية، حيث توجه المتصفح لتحميل الموارد فقط من مصادر آمنة، مما يقلل من احتمالية وقوع هذه الهجمات.
Content-Security-Policy header pattern

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

Content-Security-Policy: <policy-directive>; <policy-directive>
CloseTag Content Security Policy: Identifying Safe Sources and Controlling Communications

تحدد هذه الخاصيه المصادر المسموح تحميلها من الموقع https://www.closetag.com، مع منع الاتصالات الخارجية الأخرى.

Content-Security-Policy: default-src 'self' https://www.closetag.com;
 connect-src 'none'; Content-Security-Policy: connect-src
 https://www.closetag.com/; script-src https://www.closetag.com/
Content Security Policy for CloseTag Resources, Images and Scripts

تحميل الموارد من موقع CloseTag والصور والنصوص البرمجية من مواقعها المخصصة.

Content-Security-Policy: default-src 'self' https://www.closetag.com;
 img-src https://images.example.com; script-src 'self'
 https://scripts.example.com
Content Security Policy for CloseTag Resources, Images and Scripts

تحميل الموارد من موقع CloseTag والصور والنصوص البرمجية من مواقعها المخصصة.

Content-Security-Policy: default-src 'self' https://www.closetag.com;
 img-src https://images.example.com; script-src 'self'
 https://scripts.example.com
Set up a Content Security Policy (CSP) reporting endpoint

هذا المثال يحدد نقطة نهاية للإبلاغ عن انتهاكات سياسة أمان المحتوى (CSP) باستخدام نطاق مخصص.

Reporting-Endpoints: csp-endpoint="https://your-custom-domain.com/csp-reports"

</> HTTP Strict-Transport-Security
أمان النقل الصارم لـ HTTP

بروتوكول "فرض النقل الآمن عبر HTTP" المعروف بـ [HTTP Strict Transport Security أو HSTS] هو أداة أمان مصممة لحماية اتصالات المستخدم عبر الإنترنت عن طريق إجبار المتصفح على استخدام بروتوكول [HTTPS] فقط. يقوم مالك الموقع بتفعيل هذا البروتوكول من خلال إرسال تعليمات خاصة للمتصفح لضمان أن جميع الاتصالات المستقبلية تتم عبر [HTTPS]، مما يمنع احتمالية التحايل وسرقة البيانات. هذا يُعزز الحماية ضد هجمات مثل هجمات الاكترونية ويضمن أن البيانات تنتقل عبر قنوات آمنة. لتحقيق أقصى استفادة من [HSTS]، يجب التأكد من أن الموقع يعمل بكفاءة تحت بروتوكول [HTTPS] وأن جميع الروابط والمصادر تشير إليه فقط، مما يعزز ثقة المستخدمين في أمان الموقع.

Strict-Transport-Security header pattern

يوضح الإعدادات لـ Strict-Transport-Security، مع تعيين مدة الالتزام بـ HTTPS ويشمل النطاقات الفرعية وخيار التحميل المسبق.

Strict-Transport-Security: max-age=<expire-time>
Strict-Transport-Security: max-age=<expire-time>; includeSubDomains
Strict-Transport-Security: max-age=<expire-time>; includeSubDomains; preload
Set up strict security policy for transfers including subdomains for 6 months

يوضح المثال أن الموقع يُلزم المتصفح باستخدام HTTPS لمدة 15768000 ثانية [حوالي 6 أشهر] لجميع النطاقات الفرعية أيضًا لتعزيز الأمان.

Strict-Transport-Security: max-age=15768000; includeSubDomains
Enforce secure transfer with support for subdomains and preloading

يوضح المثال أن الموقع يُلزم المتصفح باستخدام HTTPS لمدة 15768000 ثانية [حوالي 6 أشهر] لجميع النطاقات الفرعية أيضًا لتعزيز الأمان.

Strict-Transport-Security: max-age=8640000; includeSubDomains; preload
معلومات تهمك
  • لا تنس تقييم الدروس لكي نُحدّث المُحتوى باستمرار حتى ينال إعجابك.
  • لا تنس مشاركة الموقع مع أصدقائك حتى تعمّ الفائدة وتكون سببًا في نفعهم.
مشاركة
0
0
0
0
عدد المشاركات
هل هذه المعلومات نالت إعجابك ؟
0
0
عدد التقييمات