انتقل إلى محتوى الدرس
الدرس 29
دورة تكنولوجيا الويب

خادم الويبWeb Server

سنتعرف في هذا الدرس على خادم الويب، وتاريخه، وأنواعه، وماذا يحدث عندما يطلب المستخدم من خادم الويب زيارة موقع ويب معين، كما سنتعرف على بعض المفاهيم الأساسية لخوادم الويب، مثل: البروتوكولين HTTP، و HTTPS، والفرق بينهما، وكيفية التحقق من أمان الاتصال في المتصفح، وكيفية توليد وتثبيت شهادة SSL/TLS.
أقسام الدرس
6
الأمثلة
4
اللغة
العربية
تاريخ النشر
المشاهدات
2,739
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

Web Server خادم الويب

خادم الويب قد يعني برنامج HTTP الذي يقدم محتوى الويب، أو الجهاز الذي يشغله، ويعمل عبر الإنترنت أو شبكة داخلية. وظيفته الأساسية هي استقبال طلبات المستخدمين من خلال متصفح الويب web browser، وإرسال الملفات المطلوبة بما فيها صفحات HTML، وملفات CSS، والصور، والبيانات الأخرى الضرورية لعرض صفحة ويب.

خوادم الويب يمكن أن تعالج الطلبات باستعمال بروتوكول HTTP أو بروتوكول HTTPS الأكثر أمانًا والذي يضيف طبقة من التشفير لحماية البيانات المتنقلة بين الخادم والمستخدم الذي قام بطلب صفحة الويب.

 عندما يطلب المستخدم طلب لزيارة موقع ويب من خادم الويب web server:
  • يرسل المتصفح طلبًا: عندما يدخل المستخدم عنوان موقع ويب في المتصفح، يقوم المتصفح بإنشاء طلب HTTP وإرساله إلى عنوان IP المحدد للموقع.
  • يستقبل الخادم الطلب: يتلقى الخادم الطلب ويحلله ليحدد الموارد المطلوبة مثل ملفات HTML، الصور، أو ملفات الفيديو.
  • استجابة الخادم بالموارد: يجمع الخادم الردود المناسبة، ثم يرسل استجابة HTTP إلى المتصفح؛ وقد تنقل عبر عدة حزم، وليست بالضرورة حزمة واحدة.
  • عرض الصفحة: يستقبل المتصفح البيانات ويعرضها كموقع ويب يمكن للمستخدم التفاعل معه.


خوادم الويب تتيح أيضًا لمواقع الويب أن تكون ديناميكية وتفاعلية عن طريق التكامل مع لغات البرمجة مثل PHP ،Python ،Java، وقواعد البيانات مثل MySQL، وأنظمة إدارة المحتوى مثل WordPress.

History of Web Servers تاريخ خوادم الويب

يرجع تاريخ خوادم الويب إلى بداية الويب في أوائل التسعينات والبداية كانت مع مشروع شبكة الويب العالمية [World Wide Web] الذي بدأه العالم تيم بيرنرز لي في عام 1989.

1990: كان أول خادم ويب ومتصفح يعملان في CERN بحلول نهاية العام؛ وفي 1991 أتيحت برمجيات الويب وجرى الإعلان عنها خارج CERN. عُرف برنامج الخادم باسم CERN httpd.


1995: ظهر خادم Apache HTTP Server، والذي حصل على شعبية كبيرة بسبب كونه مفتوح المصدر، وسهل التخصيص، ويعمل بشكل جيد ومستقر.

2004:
تم تقديم خادم الويب Nginx، الذي أصبح مشهورًا بفضل أدائه العالي واستهلاكه المنخفض للموارد.

دور خادم الويب في بنية الإنترنت: يعتبر خادم الويب جزءًا مهمًا من بنية الإنترنت ويعمل كحلقة وصل بين المستخدم النهائي وموارد الويب الموجودة على الخادم.

Basic Concepts of Web Servers مفاهيم أساسية لخوادم الويب

بروتوكول نقل النص الفائق [HyperText Transfer Protocol] HTTP: هو بروتوكول الاتصال الأساسي المستخدم في الويب لنقل البيانات بين المتصفح أو العميل والخادم، ومنفذه الافتراضي 80، ويمكن إعداده على منفذ آخر، وهو لا يقوم بتشفير البيانات، مما يعني أنها قد تكون معرضة للاختراق أو الكشف.


بروتوكول نقل النص الفائق الآمن [HTTPS [HyperText Transfer Protocol Secure: هو نفس بروتوكول HTTP لكن مع طبقة أمان إضافية تستخدم TLS، ومنفذه الافتراضي 443، ويقوم بتشفير البيانات؛ مما يحميها من الاعتراض أو التعديل.


أنواع طلبات HTTP:

  • GET: يُستخدم لطلب البيانات من الخادم، ويحدد URL المورد المطلوب وقد يتضمن معاملات استعلام، أما محتوى المورد فيأتي في الاستجابة، وهو مناسب لعمليات الجلب fetch دون تغيير النظام ويعني ذلك أن تلك البيانات يتم عرضها على جهاز المستخدم دون طلب تغيير حالة المورد؛ وقد تحدث آثار جانبية مثل تسجيل الطلب.
  • POST: يطلب معالجة محتوى الطلب بحسب وظيفة المورد، وقد ينشئ موردًا أو يؤدي معالجة أخرى، ويستخدم عادة في عمليات الإدخال مثل إرسال النماذج أو رفع الملفات، ويحمل جسم الطلب البيانات غالبًا، مع إمكان وجود معاملات استعلام في URL أيضًا.
  • PUT: يُستخدم لنقل الملفات أو البيانات إلى الخادم لتحديث مورد موجود بالفعل على الخادم أو لإنشائه ويمكن أن يقوم بإنشائه في بعض الأحيان إذا لم يكن موجودًا.
  • DELETE: يُستخدم لحذف بيانات محددة من الخادم.
  • HEAD: يشبه GET لكنه يعيد المعلومات الأساسية فقط دون محتوى الرد من الخادم، ويستخدم عادةً للحصول على معلومات حول البيانات دون تنزيلها.
  • OPTIONS: يُستخدم للاستعلام عن قدرات الاتصال الخاصة بالخادم مثل طرق HTTP المدعومة.


مفهوم التشفير وأهميته باستخدام HTTPS: التشفير يحمي البيانات من الاعتراض أو التلاعب أثناء انتقالها بين المتصفح والخادم.


كيفية عمل HTTPS: عندما يطلب المستخدم اتصالًا عبر HTTPS يبدأ تبادل يسمى TLS Handshake بين المتصفح والخادم لضبط اتصال آمن، وخلال هذا التبادل تُتفق معاملات الاتصال وتُشتق مفاتيح الجلسة مع التحقق من هوية الخادم بالطريقة المتفق عليها.


كيفية توليد وتثبيت شهادة SSL/TLS: الشهادة وثيقة رقمية تربط هوية مثل اسم النطاق بمفتاح عام وتوقيع الجهة المصدرة؛ ليست هي المفتاح الخاص أو مفتاح تشفير كل البيانات. يستخدم TLS مفاتيح جلسة لحماية البيانات. ويمكن أن تكون الشهادة ذاتية التوقيع للأغراض التجريبية أو من جهة مصدقة Certificate Authority] CA].


خطوات تثبيت شهادة SSL/TLS: 

  • توليد زوج من المفاتيح: المفتاح العام وهو الذي يتم استخدامه في طلب توقيع الشهادة، والمفتاح الخاص الذي يتم الاحتفاظ به على الخادم ولا يتم مشاركته مع أي جهة.
  • توليد طلب توقيع الشهادة Certificate Signing Request] CSR] والذي يحتوي على معلومات الموقع والخادم.
  • تقديم طلب التوقيع CSR إلى جهة مصدقة CA لتقوم بإجراء فحوصات للتأكد من صحة المعلومات.
  • بعد المصادقة، تقوم الجهة المصدقة بإرسال الشهادة الجاهزة ثم يتم تثبيتها على الخادم ليبدأ في تشفير البيانات بشكل آمن.


كيفية التحقق من أمان الاتصال في المتصفح:

راجع معلومات الاتصال والشهادة من عنصر معلومات الموقع قرب العنوان؛ يختلف الرمز حسب المتصفح. نجاح HTTPS يخص حماية الاتصال والتحقق من الاسم، ولا يضمن أن محتوى الموقع أو الجهة المشغلة موثوقان.

http

استخدام موقع ببروتوكل http غير الآمن.

نص
http://www.closetag.com

https

استخدام موقع ببروتوكل https الآمن.

نص
https://www.closetag.com

Types of Web Servers أنواع خوادم الويب

  •  Apache Web Server: هو أشهر خادم ويب مفتوح المصدر، ويستخدم على نطاق واسع في تقديم صفحات الويب، وهو يتميز بدعمه لعدد كبير من لغات البرمجة ومرونته في التحكم بإعداداته عبر ملفات htaccess؛ مما يجعله مناسبًا للمواقع الكبيرة.


  •  IIS Web Server Internet Information Services: خادم ويب مقدم من Microsoft يندمج بشكل ممتاز مع بيئة Windows، وهو يتميز بواجهة مستخدم بسيطة وسهلة وبدعمه لتقنيات ASP.NET؛ مما يجعله خيارًا جيدًا لتطبيقات الويب في المؤسسات.


  •  Nginx Web Server: هو خادم ويب مشهور فهو يُعرف بأدائه العالي في إدارة الموارد، ويستخدم لتقديم المحتوى الثابت بسرعة لقدرته على معالجة عدد كبير من الاتصالات المتزامنة؛ مما يجعله مثاليًا للمواقع ذات الزيارات العالية.


  •  Node.js: بيئة لتشغيل JavaScript خارج المتصفح، ويمكن بناء خادم HTTP باستخدامها؛ ليست خادم ويب جاهزًا بمجرد تثبيتها وهي تتميز بوجود الكثير من الأدوات التي يمكن استخدامها بسهولة وسرعتها؛ مما يجعلها مناسبة للتطبيقات التي تحتاج إلى التفاعل الفعلي مثل الدردشة.


  •  LiteSpeed Web Server: يستخدم لعرض محتويات مواقع الويب الثابتة والديناميكية بسرعة وكفاءة فهو يقدم أداءً جيدًا وأمانًا عاليًا، كما أنه متوافق مع إعدادات Apache ولكنه يستهلك موارد أقل.


  •  Apache Tomcat: هذا الخادم موجه لتشغيل تطبيقات Java، ويدعم تشغيل Java Servlet وJSP] JavaServer Pages]؛ مما يجعله مناسبًا لتطبيقات الويب الديناميكية التي تعتمد على لغة Java.


  •  Lighttpd: خادم ويب خفيف الوزن وعالي الكفاءة، ويستخدم في البيئات ذات الموارد المحدودة مثل الذاكرة والمعالج، ومن أمثلة تلك البيئات: الخوادم الافتراضية الصغيرة، أو المشاريع الصغيرة التي لا تحتاج لموارد كبيرة.


  •  OpenLiteSpeed: هذا الخادم هو نسخة مجانية ومفتوحة المصدر من LiteSpeed وتتميز بسرعتها العالية وسهولة التحكم فيها، وهي متوافقة بدرجة كبيرة مع إعدادات Apache، وتستخدم لجعل المواقع تعمل بسرعة.


  •  Jigsaw Server: خادم ويب مفتوح المصدر تم تطويره بواسطة منظمة W3C وهو يستخدم للأغراض التعليمية والتجريبية ويتضمن مميزات متقدمة تساعد المطورين في تطوير واختبار مواقع الويب.


  •  Sun Java System Web Server: خادم ويب قامت بتطويره شركة Sun Microsystems ثم قامت شركة Oracle بالاستحواذ عليه، ويتكامل هذا الخادم بشكل جيد مع Java، ويستخدم عادةً لتشغيل تطبيقات الويب الكبيرة للمؤسسات فهو يتميز بكونه آمن جدًا ويقدم أداءً عاليًا في معالجة طلبات المستخدمين.

Web Server Security أمان خوادم الويب

  • إعداد الشهادات SSL/TLS لتأمين الاتصالات: SSL/TLS هما [SSL Secure Sockets Layer] و [TLS Transport Layer Security]، TLS هو المستخدم لتأمين الاتصال الحديث؛ SSL اسم شائع قديم، وإصداراته القديمة لا تستخدم لإعداد جديد. الهدف الرئيسي هو تأمين البيانات المتبادلة، بحيث لا يمكن لأي طرف ثالث التجسس عليها أو تعديلها.

  • كيفية الحصول على شهادة SSL؟ يمكن الحصول على الشهادات من جهات رسمية مثل [Let's Encrypt] مجانًا أو من مزودي الخدمة المدفوعة مثل [Digicert] و[Comodo]. ويتم إنشاء مفتاح خاص ومفتاح عام، يرتبط المفتاح العام بالشهادة ويستخدم المفتاح الخاص في إثبات الهوية؛ يشتق TLS مفاتيح جلسة لحماية بيانات الاتصال.

  • تثبيت شهادة SSL/TLS على Apache: يتم تثبيت الشهادة في المجلد المناسب مثل [/etc/ssl/certs/]، وتعديل ملف الإعدادات للـ[Apache] عادةً [httpd.conf] أو [ssl.conf] ليشمل المواقع الجديدة.

  • التحديثات الأمنية: التحديثات تحتوي عادةً على إصلاحات للثغرات الأمنية المعروفة، وبالتالي تساعد في حمايتك من الهجمات. وتعطيل الخدمات أو البرمجيات غير المستخدمة يمكن أن يقلل من سطح الهجوم.

  • كيفية التحديث على نظام Linux: تحديث نظام Linux عادةً يتطلب استخدام مدير الحزم المناسب للنظام الذي تعمل عليه. على سبيل المثال: [sudo apt-get update && sudo apt-get upgrade] لنظام [Debian/Ubuntu]، و [sudo yum update] لنظام [CentOS/RHEL].

  • على نظام Windows: استخدام [Windows Update] لتثبيت التحديثات الأمنية الجديدة.

  • متابعة التحديثات الأمنية: الاشتراك في نشرات الأمن الخاصة بالبرمجيات المستخدمة، ومتابعة مواقع الأخبار الأمنية والمجتمعات التقنية.

  • إعداد التصاريح Permissions: حماية المجلدات والملفات باستخدام التصاريح تتضمن تعيين وتحديد الحقوق والصلاحيات مثل [القراءة، والكتابة، والتنفيذ] على المجلدات والملفات لضمان أن يبقى الوصول إليها مقتصرًا على المستخدمين المصرح لهم فقط. مما يعزز الأمان ويمنع الوصول غير المصرح به. وفي نظام [Linux] يمكن إدارة هذه التصاريح باستخدام أوامر مثل [chmod] و [chown].

  • مستويات التصاريح: [القراءة Read]: السماح بقراءة الملف أو المجلد. [الكتابة Write]: السماح بالتعديل أو الحذف. [التنفيذ Execute]: السماح بتشغيل الملف أو الوصول إلى المجلد.

  • حماية الملفات الحساسة: نقل ملفات التكوين الحساسة خارج مجلدات الويب العامة، واستخدام جدران الحماية لمنع الوصول غير المصرح به.

في أذونات Linux، حذف ملف يعتمد عادةً على صلاحيات المجلد الحاوي، وليس على بت الكتابة في الملف وحده؛ وقراءة المجلد تعني سرد أسمائه، بينما تنفيذ المجلد يعني اجتيازه. تفاصيل ACL والملكية قد تقيد الوصول أيضًا.

Apache Settings

تعديل ملف الإعدادات للـ Apache.

هذا مقطع VirtualHost لإعداد Apache 2.4، ويحتاج تحميل mod_ssl وتعريف Listen 443 مرة واحدة خارج المقطع، مع ملفات شهادة ومفتاح حقيقيين ومسار DocumentRoot موجود. ضع سلسلة الشهادات الوسيطة في ملف fullchain؛ SSLCertificateChainFile قديم منذ 2.4.8. افحص التهيئة بـ apachectl configtest قبل إعادة التحميل.

نص
<VirtualHost *:443>
   ServerName www.example.com
   DocumentRoot "/var/www/html"
   SSLEngine on
   SSLCertificateFile "/path/to/fullchain.pem"
   SSLCertificateKeyFile "/path/to/private.key"
</VirtualHost>

Linux Update

مثال لتحديث حزم Debian/Ubuntu من الطرفية باستخدام apt. راجع قائمة التغييرات قبل الموافقة وخطط لاحتمال إعادة تشغيل الخدمات؛ ليس أمرًا موحدًا لكل توزيعات Linux.

نص
sudo apt update && sudo apt upgrade

Web Server خادم الويب

خادم الويب Web Server: هو برنامج أو جهاز يستخدم لاستضافة وتقديم محتوى الويب للمستخدمين عبر الإنترنت أو عبر الشبكة الداخلية. يقوم خادم الويب بتقديم خدماته عبر بروتوكول  HTTP أو HTTPS حيث يقوم بمعالجة طلبات HTTP [أو HTTPS] الواردة من العملاء [مثل المتصفحات، والتطبيقات الأخرى]، وإرسال الاستجابات المناسبة التي قد تتضمن صفحات HTML، ملفات CSS، صور، نصوص JavaScript، أو أي موارد أخرى مطلوبة.

وظائف خادم الويب:

  • استقبال طلبات HTTP: يستلم طلبات HTTP الواردة من العملاء بما في ذلك الطلبات للحصول على صفحات الويب أو البيانات.

  • معالجة الطلبات: يُفسر وبعالج الطلبات. قد يشمل ذلك قراءة الملفات الثابتة من نظام الملفات أو تنفيذ برامج نصية على الخادم.

  • تقديم الاستجابات: يُنشئ الردود التي يتم إرسالها للعملاء، مثل صفحة HTML أو بيانات JSON أو رسائل الحالة (مثل 404 Not Found).

  • التعامل مع بروتوكولات الأمان: يُدير الاتصال الآمن باستخدام HTTPS (HTTP Secure) عبر بروتوكول TLS لتشفير البيانات المتبادلة بين العميل والخادم.

  • التسجيل والتشخيص: يُسجل نشاطات الطلبات وتقدم معلومات التشخيص للمسؤولين عن النظام.

كيف يعمل خادم الويب:

  • العميل User-Agent: يُرسل طلب HTTP Request  إلى خادم الويب.

  •  تحليل الطلب: يحتفظ خادم الويب بالطلب ويفحص رؤوس الطلب Headers والأسلوب Method مثل GET أو POST.

  • معالجة الطلب: خادم الويب يعالج الطلب مباشرة أو يقوم بتفويض الطلب الي برامج اخري موجوده علي نفس الخادم.

  • إرسال الاستجابة: يُكوِّن خادم الويب استجابة HTTP Response ويرسلها إلى العميل.

  • عرض البيانات: يعرض وكيل المستخدم مثل المتصفح الاستجابة للمستخدم بشكل مناسب، مثلاً عرض صفحة الويب في المتصفح.


لمزيد من المعلومات حول خادم الويب يمكنك زيارة درس خادم الويب.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات16

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 16 مفهومةأول بطاقة، أول خطوة
01 Web Server خادم الويب
للمراجعة
02 web browser متصفح الويب
للمراجعة
03 World Wide Web مشروع الإنترنت العالمي
للمراجعة
04 HyperText Transfer Protocol بروتوكول نقل النص التشعبي
للمراجعة
05 GET طلب البيانات
للمراجعة
06 POST إرسال البيانات
للمراجعة
07 PUT نقل البيانات
للمراجعة
08 DELETE حذف البيانات
للمراجعة
09 HEAD مقدمة الطلب
للمراجعة
10 Web Server Security أمان خوادم الويب
للمراجعة
11 Transport Layer Security أمان طبقة النقل
للمراجعة
12 Secure Sockets Layer طبقة المقابس الآمنة
للمراجعة
13 Permissions التصاريح
للمراجعة
14 Read القراءة
للمراجعة
15 Write الكتابة
للمراجعة
16 Execute التنفيذ
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات8

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 8 مفهومةأول بطاقة، أول خطوة
01 HTTP HTTP
Hypertext Transfer Protocol
للمراجعة
02 HTTPS HTTPS
Hypertext Transfer Protocol Secure
للمراجعة
03 HTML HTML
Hyper Text Markup Language
للمراجعة
04 CSS CSS
Cascading Style Sheets
للمراجعة
05 WWW WWW
World Wide Web
للمراجعة
06 SSL SSL
Secure Sockets Layer
للمراجعة
07 TLS TLS
Transport Layer Security
للمراجعة
08 IIS IIS
Web Server Internet Information Services
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

7أسئلة 2أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي7 أسئلة تنتظرك
01

خادم الويب هو جهاز كمبيوتر يخصص ويتم إعدادة لتقديم صفحات الويب عبر الإنترنت وظيفته الأساسية هي استقبال طلبات المستخدمين عادة من خلال متصفح الويب web browser وإرسال الملفات المطلوبة بما فيها صفحات HTML وملفات CSS والصور والبيانات الأخرى الضرورية لعرض صفحة ويب؟

02

عندما يدخل المستخدم عنوان موقع ويب في المتصفح، يقوم المتصفح بإنشاء طلب HTTP وإرساله إلى عنوان IP المحدد للموقع؟

03

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

04

يُستخدم لإرسال البيانات إلى الخادم لإنشاء أو تحديث مورد البيانات تُرسل في جسم الطلب؟

05

يُستخدم لطلب البيانات من الخادم. البيانات المطلوبة تُرسل في عنوان URL مناسب لعمليات الجلب fetch التي لا تُغير الحالة؟

06

بيئة تشغيل مفتوحة المصدر لتطبيقات الشبكة غير المتزامنة ويتميز بسرعة التنفيذ وعدد كبير من المكتبات المتاحة عبر npm مما يجعله مثاليا لتطبيقات الوقت الفعلي مثل الدردشة؟

07

HTTPS: هو نفس بروتوكول HTTP لكن مع طبقة أمان إضافية باستخدام SSL/TLS ويعمل على منفذ رقم 443 والبيانات مُشفّرة مما يحميها من الاعتراض والتعديل؟