اقرأ في هذا المقال
- ما هي واجهة البوابة المشتركة Common Gateway Interface؟
- آلية عمل واجهة البوابة المشتركة
- تفاصيل CGI
- مزايا CGI
- عيوب CGI
- تطبيقات واجهة البوابة المشتركة
تُعد واجهة البوابة المشتركة “CGI” بأنّها مجموعة من المعايير المستخدمة لتشغيل البرامج النصية والبرامج على خادم ويب، ونظراً لأنّ “CGI” هي واجهة قياسية، فإنّ العلاقة بين خادم الويب ومتصفح الويب الخاص بالعميل يتبع القواعد المحددة، أي تعمل واجهة البوابة المشتركة كبرنامج وسيط بين خوادم “WWW” وقواعد البيانات الخارجية ومصادر المعلومات.
ما هي واجهة البوابة المشتركة Common Gateway Interface؟
واجهة البوابة العامة “CGI”: هي مجموعة من القواعد لتبادل المعلومات بين خادم ويب وبرنامج نصي مخصص، حيث تعد واحدة من أكثر الطرق شيوعاً لخوادم الويب للتفاعل مع المستخدمين عن طريق إرسال البيانات، كما يمكن أن تكون لغات البرمجة المستخدمة هي “C” أو “C ++” أو “Java” أو “Perl” أو “Python” أو “VB”.
يتم وصف “CGI” بواسطة اتحاد “WWW”، والذي وصف أيضاً الطريقة التي يتفاعل بها البرنامج مع خادم بروتوكول نقل النص التشعبي “HTTP“، كما تتم كتابة النصوص بلغة “PHP” و”ASP” ومعالجتها على قاعدة بيانات الإنترنت قبل تحميل الصفحة ونقل النتيجة إلى متصفح العميل، كما تتكون العديد من صفحات “HTML” من نماذج تستخدم برامج “CGI” لمعالجة البيانات المتوفرة في النماذج.
تعتبر البرامج النصية أو البرامج طريقة بديلة تُستخدم لتقديم الملاحظات لمستخدمي الويب، بينما تعمل هذه البرامج من جهاز المستخدم بدلاً من خادم الويب وتستفيد من برامج، مثل “Java Scripts” أو تطبيقات “Java” الصغيرة أو عناصر تحكم “ActiveX”، كما تُعرف هذه التقنيات المختلفة ككل بالحلول من جانب العميل، ويعرف استخدام “CGI” باسم الحلول من جانب الخادم، حيث أنّ المعالجة من خادم الويب.
كما تُعتبر واجهة البوابة المشتركة المعروفة باسم “CGI” أحد مميزات الواجهة لخوادم الويب لتطبيق البرامج التي تعمل على خادم يقوم بإنشاء صفحات الويب ديناميكياً، ممّا يؤدي إلى إنشاء استجابة مخصصة بناءً على الطلب المستلم من العميل أو المستخدم، وتوفر “CGI” برمجية وسيطة بين الخوادم وقواعد البيانات الخارجية ومصادر المعلومات.
يقوم خادم الويب بتمرير المعلومات من برنامج تطبيق صغير يقوم بمعالجة البيانات وإرسال المعلومات مرة أخرى بطريقة متسقة، وهذا يعني أنّ الشخص الذي كتب برنامج التطبيق يمكنه التأكد من استخدام التطبيق بغض النظر عن نظام التشغيل الذي يستخدمه الخادم أي الكمبيوتر الشخصي أو “Macintosh” أو “UNIX“، كما يُعرف هذا التطبيق الذي يعالج تمرير البيانات ذهاباً وإياباً باسم واجهة البوابة المشتركة “CGI”.
- “VB” هي اختصار لـ “Visual Basic”.
- “CGI” هي اختصار لـ “Common Gateway Interface”.
آلية عمل واجهة البوابة المشتركة:
يساعد مخطط البوابة الشائعة التالي على فهم كيفية عمل CGI” عندما يقوم المستخدم بالضغط على ارتباط تشعبي للبحث وتصفح أي صفحة ويب، كما يستعمل مستعرض الويب الذي يعمل على جهاز العميل بروتوكول نقل النص التشعبي “HTTP” لتبادل البيانات مع خادم الويب، وبرنامج “CGI” موجود على نفس النظام، حيث يوجد خادم الويب ويعملون من نفس النظام.
استناداً إلى نوع الطلب المستلم من المستعرض، يحاول خادم الويب إمّا توفير المستند من نظام ملفات المستندات الخاص به أو تشغيل برنامج “CGI”، وفيما يلي سلسلة من الأحداث لإنشاء مستند “HTML” باستخدام البرامج النصية “CGI”:
- يطلب المستخدم خادم الويب “HTTP” ويطلب عنوان “URL”، كما يمكن للمستخدم كتابة عنوان “URL” في نافذة موقع المتصفح، والتي يمكن أن تكون رابطاً تشعبياً أو يتم تحديدها كعلامة “HTML <form>”.
- يقوم خادم الويب بتحليل عنوان “URL” والبحث عن اسم الملف، وإلّا فإنّه ينشط برنامج البوابة المذكور في عنوان “URL” ويرسل المعلمات إلى البرنامج عبر عنوان “URL”.
- تعالج بوابة واجهة البوابة العامة المعلومات المطلوبة وترسل ملف أو نص “HTML” إلى خادم الويب، وبالإضافة إلى ذلك يقوم الخادم بإلحاق رأس “MIME” ويرسل نص “HTML” إلى المستعرض.
- يأخذ النتيجة من خادم الويب، ويعرض متصفح الويب إمّا المستند المستلم أو رسالة خطأ.
تفاصيل CGI:
- يتم استخدام “CGI” لإنشاء نصوص برمجية بسيطة وتطبيق تفاعلي.
- يتم تحديدها جيداً مع مجموعة من القواعد.
- تمت كتابة “CGI” باستخدام لغات برمجة بسيطة، مثل “Perl” و”C”.
- “CGI” هي تقنية تتفاعل بسهولة مع “HTML”.
- “CGI” متوافق للغاية مع المتصفحات الحالية.
مزايا CGI:
- يجب أن تتوافق لغة واجهة البوابة العامة مع المواصفات، وبالتالي يمكن كتابتها بأي لغة برمجة.
- تمكن “CGI” من استخدام الكود الذي تم إنشاؤه بالفعل، ويمكن للمستخدمين تجنب كتابة الكود الخاص بهم مرة أخرى.
- إنّه بسيط وآمن، حيث تعمل التطبيقات على الخادم.
- تكون الوظائف المتقدمة أسهل كثيراً إذا تم إجراؤها في “CGI” منها في “Java”.
- إنّه سريع الاستجابة.
عيوب CGI:
- تستهلك واجهة البوابة العامة الكثير من وقت المعالجة.
- تتحمل “CGI” الحمل عندما يبقى “HTTP” كبروتوكول عديم الحالة.
- يتألف من قاعدة رمز موجودة على نطاق واسع، خاصةً في لغة “Perl”.
- في كل مرة يتم فيها تنفيذ برنامج نصي “CGI”، تبدأ العملية مرة أخرى.
- يقلل من أداء الخادم.
تطبيقات واجهة البوابة المشتركة:
تقوم “CGI” بتحويل الويب من جمع البيانات الثابتة إلى بنية تفاعلية جديدة، حيث يمكن للمستخدمين التفاعل مع عدد الأسئلة لتشغيل التطبيقات، بعض التطبيقات المصممة باستخدام “CGI” هي:
أولاً: النماذج:
النماذج: هي واحدة من أهم مستخدمي “CGI”، حيث تسمح النماذج للمستخدم بمشاركة المعلومات وهي مجموعة فرعية من “HTML”، كما يجعل برنامج “CGI” هذه النماذج تفاعلية للغاية لكل من المستخدم والموفر من خلال معالجة واختيار النماذج المناسبة التي تتوافق مع معايير الاختيار.
ثانياً: البوابة:
تُعتبر بوابات الويب برامج أو نصوص برمجية متشابهة، حيث يتم استخدامه للوصول إلى المعلومات الضرورية التي لا يمكن للعميل قراءتها مباشرة من قاعدة البيانات، ويتم استخدام برنامج “CGI” ليكون بمثابة بوابة واستخدام لغة برمجة مناسبة لقراءة المعلومات وتنسيقها ومشاركتها مع العميل.
ثالثاً: المستندات الافتراضية:
يعد إنشاء المستندات الافتراضية أهم جزء في “CGI”، بينما يتم إنشاء المستندات الافتراضية بناءً على طلب المستخدم، ويمكن أن تختلف من “HTML” الظاهري والصور والنص العادي إلى المكالمات الصوتية أحياناً.
رابعاً: بحث شبكة الإنترنت العالمية “Lycos”:
يساعد هذا الخادم المستخدمين على التصفح بحثاً عن مستندات معينة، واستجابةً لطلب المستخدم تقوم “Lycos” بإرجاع مستند النص التشعبي المطابق لمعايير بحث الويب الخاصة بالمستخدم.
خامساً: تفسير الكلمات اليابانية إلى قاموس اللغة الإنجليزية:
إنّه تطبيق افتراضي قائم على المستندات، حيث يستفسر برنامج “CGI” المتطور عن كلمة إنجليزية من المستخدم ويعيد كلمة يابانية معادلة مع الصور المناسبة.
سادساً: سجل الزوار مع خريطة العالم:
يستخدم تطبيقاً قائماً على النموذج، والذي يمكّن المستخدمين من ترك الرسائل التي يقرأها الجميع.
سابعاً: المخاوف الأمنية لواجهة البوابة المشتركة:
قد يحتوي نص “CGI” الذي تم تنفيذه في متصفح المستخدم على أخطاء، وكل خطأ هو القدرة على خلق مشاكل أمنية، كما يتم تقديم مشكلات الأمان المحتملة لنصوص “CGI” بطريقتين:
- إنّ تسريب المعلومات عن قصد أو عن غير قصد فيما يتعلق بالنظام المضيف يساعد المتسللين على الاختراق بسهولة.
- يمكن أن تكون البرامج النصية لـ “CGI” التي تعالج مدخلات المستخدم عن بُعد عرضة للهجمات، حيث يخدعهم المستخدم البعيد لتنفيذ الأوامر.