1.0 وظائف برنامج CGI:
أولاً، ما هي واجهة البوابة المشتركة (CGI)؟ CGI هو معيار يستخدم لتحديد طرق الاتصال بين خوادم الويب والبرامج الخارجية، بحيث يمكن للبرامج الخارجية إنشاء HTML أو صور أو محتوى آخر، ويتعامل الخادم مع HTML أو الصور أو المحتوى الآخر الذي لا يتم إنشاؤه بواسطة برامج خارجية هو نفسه. لذلك، تمكنك برامج CGI من إنشاء محتوى ثابت ليس فقط، ولكن أيضًا محتوى ديناميكي. السبب وراء استخدام CGI هو أنه معيار محدد جيدًا ومدعوم على نطاق واسع. على الرغم من أن Java وActiveX وما إلى ذلك يمكنها إكمال وظائف برامج CGI، إلا أنه لا تدعمها جميع المتصفحات. على العكس من ذلك، جميع المتصفحات تدعم تقنية CGI، مثل: Lynx، IE، Netscape وغيرها.
ومع ذلك، مثل التقنيات الأخرى، فإن CGI لها حدودها. في هذا القسم، سأصف وظائف ومزايا وعيوب برامج CGI.
1.1 وظيفة CGI
هناك العديد من المهام التي تعتبر CGI هي الخيار الأفضل والوحيد لها، ويمكن تقسيم هذه المهام إلى ثلاث فئات: المهام المبتدئة، والمهام المتوسطة، والمهام المتقدمة. المهام الأولية هي المهام التي تتطلب القليل من البرمجة، مثل:
عداد النص
برنامج لتوليد HTML بسيط
برامج تحتوي على أقل من 50 سطرًا مكتوبة بلغة Perl أو Shell Script أو C أو C++
هناك ثلاث مزايا على الأقل لاستخدام CGI لكتابة مثل هذه المهام: أولاً، تعمل CGI بشكل أسرع، في حين أن Java مكلفة للغاية؛ وثانيًا، معيار CGI هو الأكثر توافقًا مع المتصفحات الحالية، وهو ما تم ذكره من قبل؛ وثالثًا، موارد CGI فهي وفيرة، ويمكنك العثور على الآلاف من رموز CGI على الإنترنت.
تتضمن المهام المتوسطة تعيين الصور ومهام برمجة أخرى أكثر تعقيدًا قليلاً. في المستوى المتوسط، لا يوجد فرق كبير في سهولة كتابة البرامج في CGI وJava.
تشمل هذه المهام ما يلي:
رسم خرائط الصور
برنامج CGI النصي لإنشاء صفحة HTML كاملة
الرسوم المتحركة
بشكل مميز، بالنسبة للمهام المتقدمة، تعد CGI أبسط بكثير من البرمجة في Java. تشمل هذه المهام ما يلي:
عمليات قاعدة البيانات الخلفية
محرك بحث
صفحات ديناميكية متعددة
ومن بينها، تعكس عمليات قاعدة البيانات الخلفية (التطبيقات التي تصل إلى قواعد البيانات) تفوق CGI. تتمتع CGI بتاريخ معين، حيث تم تنفيذ العديد من الوظائف المفيدة بواسطة آخرين في مكتبة CGI، وفي الوقت نفسه، قدمت العديد من الشركات الكبيرة كود المصدر المصنوع باستخدام CGI. Java هي لغة برمجة، وCGI هي المواصفات الوظيفية لبرنامج البوابة. إذا كانت هناك تغييرات كبيرة في Java، فيجب عليك إعادة كتابة البرنامج بأكمله، وإذا كانت هناك تغييرات كبيرة في CGI، فأنت بحاجة فقط إلى ترقية برنامج مكتبة CGI.
ومع ذلك، CGI لديها قيود في بعض المناطق.
1.2 حدود CGI
فيما يتعلق بتعيين الصور والرسوم المتحركة، فإن برامج CGI ليست سهلة التطوير مثل برامج Java. الآن بعد أن أصبحت Java أكثر شيوعًا، أصبحت برامج CGI مناسبة أكثر فأكثر لكتابة البرامج القصيرة والمعقدة وتطبيقات قواعد البيانات.
1.3 وظائف برنامج CGI
أكبر ميزة لبرنامج CGI هي أنه يمكن تجميعه بأي لغة وتشغيله على أي منصة، طالما أنه يتوافق مع مواصفات CGI. والجدول التالي عبارة عن مقارنة:
مهمةCGI+HTML HTML
معالجة النموذج نعم لا
إنشاء محتوى غير ثابت على صفحات الويب نعم لا
معالجة ملفات صور الصور نعم نعم
ابحث عن نعم لا في صفحات ومستندات الويب
إنشاء نموذج نعم نعم
إنشاء مستندات مستقلة عن النظام الأساسي نعم نعم
إنشاء تطبيقات تفاعلية مثل غرف الدردشة نعم لا
إنشاء صفحة ديناميكية نعم لا
قص مستندات الصفحة وفقًا لاحتياجات المستخدم نعم لا
وبعد ذلك نختم هذه المحاضرة بسلسلة برامج "Hello World":
بيرل:
تتطلب "cgi-lib.pl"؛
برينت&PrintHeader;
مطبعة " "؛
طباعة "مرحبا بالعالم"؛
طباعة &PrintEnv;
مخرج؛
يتم تخزين هذا الملف في الدليل C:HTTPDCGI-BIN ويسمى 2_1.pl. اتصل بالمتصفح باستخدام العنوان http://localhost/cgi-bin/2_1.pl. لاحظ أن OmniHTTPD يجب أن يكون قيد التشغيل في هذا الوقت. إذا سارت الأمور على ما يرام، يمكنك رؤية "Hello World" ومتغيرات البيئة في متصفحك.
ج: #تشمل
#تتضمن "html-lib.h"
#تتضمن "cgi-lib.h"
إنت الرئيسي ()
{
html_header();
html_begin("اختبار CGI");
h1("برنامج CGI");
برينتف("");
h2("متغيرات بيئة CGI");
print_cgi_env();
html_end();
العودة 0 }
بعد التجميع، انسخ الملف القابل للتنفيذ إلى C:HTTPDCGI-BIN، وأعد تسميته إلى 2_1.cgi، ثم اتصل به بالعنوان http://localhost/cgi-bin/2_1.cgi.