لما يكون لديك
موقع او بشكل عام طبيعة التعامل عبر المواقع الإلكترونية (web sites) يكون بين
الكلينت (client)
و السيرفر (server)
حيث ان الكلينت (client)
يقوم بإرسال طلب (request)
و السيرفر (server)
يستجيب (response) لهذا
الطلب (response)
الطلب (request) من الكلينت
(client)
يكون عادةً بشكل نقرة على رابط او نقرة على زر (click button) أو ... إلخ
في السيرفر
يكون هناك موارد (resources)
مُعدّة مسبقاً تكون إما بشكل صفحات (html) او ملفات (pdf) او (video) ... إلخ و
من خلالها يستجيب السيرفر للطلب فإذا تمت الإستجابة للطلب عبر عرض واحدة من
الصفحات او الملفات الموجودة مسبقاً فهذه تسمى صفحات ثابتة (static pages) و يسمى
الموقع عادة هنا انه موقع ثابت (Static web site)
و في العادة
الكلينت (client) لا يرسل
طلب محدد أي ليس من المعقول أن يتم تجهيز كل الملفات التي يريدها المستفيدين بشكل
مسبق على السيرفر (قد لا يكون هناك ملف
محدد مُعد مسبقاً في السيرفر) فما هو الحل ؟ لذا تم وضع ملفات نستطيع
ان نطلق عليها انها ديناميكية و بالتالي يطلق على الموقع صفة انه موقع ديناميكي و
ليس ثابت (Dynamic
web site) ،
ملحوظة هناك
مزايا و إختلافات كثيرة بين الدينامكيك (Dynamic) الإستاتيك (static) ويب سايت و
لكن ما استعرضناه هنا من باب توضيح وظيفة السيرفلت فقط.
هذا من باب
التوضيح النظري ، و في المقابل و في البيئة البرمجية الخاصة بهذه الأعمال فقد تم
تخصيص معالجات معينة ،،،
لأجل هذا يوجد
هناك برنامج مساعدhelper
application - يسمى (web container) فعندما
يرسل الكلينت (clients) طلب(request) يقوم هذا
البرنامج بفحص الطلب هل يوجد له ملف مُعد مسبقاً أم لا ؟ هل لدينا ملف (xxxx.html) ملف ثابت (static
file ) فإن لم يكن هناك ملف فيقوم الويب كونتاينر
بهذا الأمر ، حيث يقوم به التوم كات (Tomcat)
إنشاء ملفات بإستخدام بعض البيانات، هذه البيانات مأخوذة من الداتا بيس (Database) فملفات ال(html) ليست ملفات معالجة (processing)
بل هي ملفات تصميم (design) فإن اردت
بيانات معينة من الداتا بيس مثلاُ بيانات احصائية او غيرها فيجب ان تستخدم بعض
اللغات البرمجية مثل البي اتش بي (php) , الجافا(java) و روبي(ruby) , (asp).
و نظراً لأن
الجافا لديها العديد من المزايا فسوف نقوم بالتطبيق على الجافا حيث ان من مزايا
لغة الجافا أنها آمنة secure – مستقرة stable – تم ايضاح مزاياها في دروس
المدونة من سابق فإن أردت استخدام الجافا لأجل إنتاج ملفات ديناميكية فإن هناك
تقنية تسمى بالسيرفلت (servlet) ،
تتكون كلمة السيرفلت (servlet) من جزئين (serv) و (let) حيث ان (serv)
من كلمة (server) وهذه ترمز للسيرفر او الخادم و
الليت (let) تعني مكون (component)
مثل ابليت (applet)
، سيرفلت(servlet)
،
هذه السيرفلت
تعتمد على (server
Compoenet) أي انها مكونات توجد في السيرفر و تنفذ
ايضاً في السيرفر و من ثم ترسل مخرجاتها كصفحة (html) إلى
البراوزر او الكلينت ، فهي تنشئ صفحة لك بحسب المعايير التي ارسلتها فلو اردت
انشاء صفحة ليست موجودة مسبقاً في السيرفر فإن هذه السيرفلت تقوم بإنشاء تلك
الصفحة لك و هذه الصفحة تذهب من السيرفر سايد (server side) إلى
الكلينت سايد(client
side) وطبعاً انت من يقوم بإعدادها و جعلها جاهزة
للعمل .
لذا يقال أن
الصفحة ديناميكية (Dynamic) لانها
تُبنى وفقاً للبيانات التي يتم أخذها و تحضيرها من الداتا بيس و من ثم عرضها و
بناءً على المعايير التي يتم طلبها في الريكويست الخاص بالكلينت .
وهذا هو ما
يجعلنا نطلق على الموقع انه موقع ستاتك او ثابت (static)
او أنه ديناميك (dynamic).
لماذا نحتاج
للسيرفلت (servlet)
عندما نتكلم
عن الويب سايت (web site) او الويب
بايج (web page) يمكننا إستخدام مصطلحين هما :-
(Static) و معناه ثابت .
ديناميك (Dynamic) و معناه متغير .
ماذا يعني كل
مصطلح ؟
ثابت (static) = يعني ان الصفحات مكتوبة و جاهزة و موجودة
كريسورس (resource)
على السيرفر و عند استدعائها بواسطة الكلينت عن طريق الريكويست لا يتم اجراء اي
تغيير عليها و يتم عرضها على براوزر الكلينت كما هي .
متغير (dynamic) :- يعني ان
الصفحة يتم تكوينها بناء على معايير او باراميترات يتم إرسالها مع الريكويست
المرسل من الكلينت أو يتم بنائها بناءً على بيانات يتم اخذها من قاعدة البيانات .
الإستاتيك إذا
افترضت ان لديك سيرفر فسيكون في السيرفر بعض الصفحات فعندما يطلب الكلينت الصفحة
يقوم السيرفر بإرسال تك الصفحة فإذا كانت الصفحة موجودة فيتم ارسالها للكلينت أما
إذا كانت غير موجودة فنستطيع عمل بعض المعالجات في السيرفر سايد فمثلاً ،إذا أراد
الكلينت أن تجمع رقمين فإن ال (html) ليس لديه القدرة على عمل مثل هذه المعالجات
كالإتصال بالداتابيس أو ... إلخ في هذه الحالة تحتاج إلى بعض لغات البرمجة مثل
الجافا ، لذا لإنشاء صفحات متغيرة او ديناميك فهذا يعني إنشاء صفحات فوراً او في
نفس اللحظة .
كيف تعمل
السيرفلت (how
servlet works)
يكون عادة
لدينا جهاز للمستخدم و جهاز للسيرفر و سوف نتكلم عن نظام يعمل على الويب بمعنى
يعمل على جهاز العميل و السيرفر فعندما يرسل العميل طلب (request) للسيرفر
فإنه يطلب ريسورس معين (إما استعراض صحفة معينة او فتح ملف (html)
أو فيديو ... إلخ) ، هذه الصفحة المطلوبة قد تكون صحفة ثابتة (static html page) او صفحة ديناميك (dynamic
page) .
صفحة ثابتة
يعني موجودة مسبقاً على السيرفر
صفحة ديناميك
تعني أنه يتم بنائها في وقت التنفيذ (runtime).
يطريقة أخرى
عنجما يطلب العميل صفحة من السيرفر موجودة مسبقاً فإن الطلب يتم (يُرسل إلى
السيرفر) و يقوم السيرفر بإرسال الإستجابة (response)
و هنا انتهى الطلب و الإستجابة أما إذا كانت الصحفة غير موجودة فإن ذلك الطلب سيوف
يذهب إلى شيء في السيرفر اسمه (helper application)
هذا الهيلبر ابليكيشن اسمه (web container) فيه هذا
الويب كونتاينر سيكون لدينا سيرفلت (servlet).
إذاً السيرفلت
هو جافا فايل (java file) يمكن أن
يأخذ الريكويست (request) من الكلينت
عبر الإنترنت و معالجة ذلك الطلب و من ثم يعالج الطلب و يعيد إرساله إلى الكلينت
مرة أخرى بصيغة (html) او كصفحة (html page) .
إذاً السيرفلت
تأخذ الطلب و تقرأ المتغيرات و تعالج و تجري كافة العمليات الموجودة ثم ترسل صفحة
(html) إلى العميل او الويب كونتاينر قد يكون توم
كات او جلاس فيش ويب سفير جي بوس .
فمثلاً إذا
أردت ان أجمع رقمين سيكون لدي سيرفلت اسمها (addservlet)
كيف يتم ذلك
في الويب كونتاينر (web container) هناك ملف
اسمه (deployment description) (web.xml) يحدد لكل طلب ماهي السيرفلت التي لازم ان
تُستدعى (which servlet should be call) فإذا كان
لديك في التوم كات من 50 – 60
سيرفلت ، فكل ريكويست سوف يتم (mapped) إلى سيرفلت
واحدة (معينة) و ممكن أن يكون أكثر من ريكويست يخطط لطلب نفس السيرفلت كل شيء لازم
يتم تهيئته في ملف اسمه (deployment description) (web.xml) في هذا الملف لدينا تاجين تاج اسمه <servlet> و تاج اسمه <servlet-mapping>
عندما تريد أن
تنشئ سيرفلت هي كلاس عادي امتدادها البرمجي في صفحة كود السيرفلت هو (httpservlet) يتم كتابته بهذا الشكل extends HttpServlet ، الريسبونس او الإستجابة (response) سيكون بشكل (html) او (json) او (xml)
إذاً هذه الصفحة هي التي سوف تذهب من السيرفر إلى الكلينت بفورمات (response object).
فضلاً إترك تعليقك و استفساراتك حول هذا الموضوع في جزء
التعليقات اسفل كي أحسن انا من مهاراتي في الكتابة و التدوين و إظهار التدوين بشكل
جيد و مفيد ، انشر المقال وانفع به غيرك . شكراً لمرورك و قراءتك للمقال .
مدونة (https://sunwaytech.blogspot.com)
ۚ فَأَمَّا الزَّبَدُ فَيَذْهَبُ جُفَاءً ۖ
وَأَمَّا مَا يَنفَعُ النَّاسَ فَيَمْكُثُ فِي الْأَرْضِ ۚ
شارك المقال و انفع به غيرك
مصدر الصورة
ليست هناك تعليقات