رسم بياني للمقارنة
أساس للمقارنة | 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
- تتم كتابة البرامج النصية CGI في نظام التشغيل الأصلي وتخزينها على دليل معين. من ناحية أخرى ، تتم كتابة برامج servlet عادةً في Java والتي يتم تحويلها إلى Java bytecode ويتم تنفيذها في JVM.
- CGI هو نظام أساسي محدد يجعل من الصعب التبديل بين أنظمة التشغيل. في مقابل ذلك ، يمكن تنفيذ Servlets في أي نظام تشغيل قام بتركيب JVM ، ومن ثم فهي مستقلة عن النظام الأساسي.
- في CGI كل طلب عميل قادم يمكن أن يولد عملية منفصلة أثناء servlet ، لا يتم إنشاء العمليات بدون داع ومشاركة مساحة الذاكرة في JVM.
- مخطوطات CGI هي برامج قابلة للتنفيذ مكتوبة في نظام التشغيل الأصلي للخادم. في المقابل ، يتم تجميع servlets إلى Java bytecode الذي يتم تشغيله على JVM.
- تعتبر Servlet أكثر أمانًا من CGI نظرًا لأنها تستخدم جافا.
- سرعة وأداء وكفاءة servlet أفضل من CGI.
- مخطوطات CGI يمكن معالجتها مباشرة. على العكس من ذلك ، يقوم servlet أولاً بترجمة وتجميع البرنامج ثم معالجته.
- عندما يتعلق الأمر servable portability محمولة في حين أن CGI ليست كذلك.
استنتاج
إن CGI و Servlet يعملان بنفس الطريقة ولكن استخدام servlet مفيد على CGI حيث إن servlet سريع ، آمن ، منصة مستقلة ، سهلة التطوير ، يمكن الوصول إليها من خلال العديد من واجهات برمجة التطبيقات وتدعمها العديد من خوادم الويب.