
يعمل الويب على اساس نموذج اساسي معياري وهو (خادم - عميل)
Server side & Client side
بالشكل التالي
- Client يرسل طلب معين إلى سيرفر معين (كتابة رابط في المتصفح)
- Server يقوم باستقبال الطلب وتنفيذه وتوليد النتيجة (صفحة html غالباً)
- Client يقوم باستقبال النتيجة ويعرضها للمستخدم بالشكل المطلوب
مرة أخرى
- Client هو المتصفح (وعنوان IP الخاص بجهازك)
- Server هو برنامج (مكتوب باحدى لغات Server Side) يوجد على الانترنت بحيث يمكن لاي Client الوصول اليه.
- Client هو موحد بين جميع الانظمة واللغات، عكس Server side
الاختلاف فقط بلغات Server Side فتجد مثلاً:
- PHP
- ASP.NET
- Ruby on Rails
- Python
- Java
تختلف هذه اللغات فيما بينها، لكنها بالمجمل تتشابه بالية العمل، وتولد نتائج يستطيع اي client قراءتها وعرضها.
اذا لا يمكن المقارنة بين Client side و Server side اطلاقا. لكن فعلياً يمكنك المقارنة بين لغات Server side.
وكنصيحة شخصية ابتعد عن المقارنات التي هدفها اثبات ان تقنية افضل من الاخرى، واستخدم التقنية التي تتقارب مع حجم ومتطلبات مشروعك. ولا تنحاز إلى تقنية او لغة.
ملاحظة
- هناك خلط بين مفاهيم لغة البرمجة واطار العمل، مثلاً Ruby هي لغة برمجة متعددة الانماط، لكن Ruby on Rails هو اطار عمل لكتابة تطبيقات الويب بلغة Ruby. ايضا ASP.NET هي اطار عمل لكتابة تطبيقات الويب بلغة سي شارب المتعددة الانماط. هناك لغات هي فقط للويب مثل PHP، عكس اللغات المتعددة الانماط التي تمكنك من كتابة انواع مختلفة من التطبيقات وليس فقط للويب. لكن يمكننا تجاوز هذه النقطة.
- يمكن كتابة تطبيقات الويب ايضا باستخدام JavaScript باستخدام NodeJS ولكن هذا لن يخرجنا من النموذج (خادم - عميل).