موصى به, 2021

اختيار المحرر

الفرق بين CGI و Servlet

CGI و Servlet هي البرامج الموجودة داخل الويب أو خادم التطبيقات وتساعد على الاتصال بين خادم الويب والمتصفح (جانب العميل) لإنشاء محتوى الويب بشكل ديناميكي. يمكن التفريق بين CGI و servlet لأنها تعمل في أساليب مختلفة ولها وظائف وميزات مميزة. يمكن تصميم برامج واجهة البوابة المشتركة (CGI) في نظام التشغيل الأصلي واحتفظ بها في دليل معين. من ناحية أخرى ، servlet عبارة عن مكون ويب مكتوب بشكل عام في Java ويتم تشغيله في الجهاز الظاهري java.

رسم بياني للمقارنة

أساس للمقارنةCGIبريمج
الأساسيةتتم كتابة البرامج في نظام التشغيل الأصلي.البرامج المستخدمة باستخدام جافا.
التبعية للنظام الأساسيمنصة تعتمدلا تعتمد على النظام الأساسي
إنشاء العمليةكل طلب العميل يخلق عملية خاصة به.يتم إنشاء العمليات وفقًا لنوع طلب العميل.
تحويل البرنامج النصيموجودة في شكل ملفات قابلة للتنفيذ (أصلي لنظام تشغيل الخادم).جمعت إلى جافا Bytecode.
يعمل علىعملية منفصلةJVM
الأمانأكثر عرضة للهجمات.يمكن أن تقاوم الهجمات.
سرعةأبطأبسرعة
معالجة البرنامج النصيمباشرةقبل تشغيل البرامج النصية يتم ترجمتها وتجميعها.
قابلية التنقللا يمكن استدارالمحمول

تعريف CGI

واجهة البوابة المشتركة (CGI) هي واجهة تعالج البرامج الخارجية (CGI scripts) على خادم الويب لتمكين تنفيذ صفحات الويب التفاعلية. تم تطوير CGI بواسطة NCSA (المركز الوطني لتطبيقات الحوسبة الفائقة) في عام 1993. وهي موجودة في جانب الخادم وتمكن متصفحات الويب من التفاعل مع البرامج على خادم الويب. على سبيل المثال ، إذا كانت صفحة الويب تستعلم عن قاعدة بيانات أو يرسل المستخدم معلومات النموذج إلى الخادم في ذلك الوقت يتم استدعاء النصوص البرمجية لـ CGI. يمرر الخادم هذه المعلومات إلى تطبيق بطريقتين GET أو POST ، ثم يستجيب التطبيق للخادم مرة أخرى إلى المستعرض. بهذه الطريقة ، تحصل المتصفحات على بعض النتائج للمستخدم.

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

في السابق ، تم استخدام مخطوطات UNIX shell و PERL لكتابة برامج CGI ، وهذا هو السبب في تسميتها "مخطوطات" CGI. ولكن ، يمكن الآن استخدام أي من اللغات مثل C أو C ++ أو Perl أو Visual Basic أو Python. على الرغم من أن CGI يمكن أن تقود القضايا الأمنية المحتملة ، كما يمكن لخادم الويب أيضا التعامل مع الملفات القابلة للتنفيذ مثل برامج CGI في بعض الدلائل المحددة. معالجة CGI كل طلب العميل بواسطة عملية منفصلة مما يزيد تحميل الملقم مما يجعله أبطأ.

تعريف سيرفت

A Servlet عبارة عن مكون ويب يستند إلى Java يعمل كبرنامج وسيط يسهل التفاعل بين مستعرض الويب أو عميل HTTP وملقم HTTP. على غرار CGI ، يمكن استخدام servlets أيضًا لجمع المعلومات بواسطة نماذج صفحات الويب ، وعرض السجلات من قاعدة البيانات وإنشاء صفحات ويب ديناميكية بمساعدة حاوية. Servlet هي فئة Java لا تعتمد على النظام الأساسي ويتم تجميعها بشكل إضافي إلى bytecode الذي يعتبر نظامًا أساسيًا مستقلًا. يمكن تخزين نظام البايت بايك محايدًا بشكل ديناميكي وتنفيذه بواسطة خادم جافا على الويب. يستخدم Servlet آلية مأخذ و RMI لتأسيس الاتصال بين التطبيقات الصغيرة أو قواعد البيانات أو برامج قواعد البيانات الأخرى.

تعد حاوية Servlet جزءًا من خادم الويب الذي يدعم بروتوكولات HTTP و HTTPS . توظف طريقة الطلب / الاستجابة باستخدام بروتوكول HTTP و HTTPS لتمكين التفاعل مع عملاء الويب. على خلاف CGI ، يعمل servlet داخل مساحة عنوان خادم الويب ، حيث لا يعالج كل عميل بالضرورة بشكل منفصل. في servlet ، يتم فرض مجموعة من القيود على الخادم لحماية الموارد على الخادم.

الاختلافات الرئيسية بين CGI و Servlet

  1. تتم كتابة البرامج النصية CGI في نظام التشغيل الأصلي وتخزينها على دليل معين. من ناحية أخرى ، تتم كتابة برامج servlet عادةً في Java والتي يتم تحويلها إلى Java bytecode ويتم تنفيذها في JVM.
  2. CGI هو نظام أساسي محدد يجعل من الصعب التبديل بين أنظمة التشغيل. في مقابل ذلك ، يمكن تنفيذ Servlets في أي نظام تشغيل قام بتركيب JVM ، ومن ثم فهي مستقلة عن النظام الأساسي.
  3. في CGI كل طلب عميل قادم يمكن أن يولد عملية منفصلة أثناء servlet ، لا يتم إنشاء العمليات بدون داع ومشاركة مساحة الذاكرة في JVM.
  4. مخطوطات CGI هي برامج قابلة للتنفيذ مكتوبة في نظام التشغيل الأصلي للخادم. في المقابل ، يتم تجميع servlets إلى Java bytecode الذي يتم تشغيله على JVM.
  5. تعتبر Servlet أكثر أمانًا من CGI نظرًا لأنها تستخدم جافا.
  6. سرعة وأداء وكفاءة servlet أفضل من CGI.
  7. مخطوطات CGI يمكن معالجتها مباشرة. على العكس من ذلك ، يقوم servlet أولاً بترجمة وتجميع البرنامج ثم معالجته.
  8. عندما يتعلق الأمر servable portability محمولة في حين أن CGI ليست كذلك.

استنتاج

إن CGI و Servlet يعملان بنفس الطريقة ولكن استخدام servlet مفيد على CGI حيث إن servlet سريع ، آمن ، منصة مستقلة ، سهلة التطوير ، يمكن الوصول إليها من خلال العديد من واجهات برمجة التطبيقات وتدعمها العديد من خوادم الويب.

Top