0
وهي عبارة عن معيار يستخدم لبناء تطبيقات الويب, حيث تستخدم CGI لتوليد صفحات الويب ديناميكيا اعتمادا على دخل الزبون وقواعد البيانات وغيرها من مصادر البيانات المتوفرة, فمثلا يمكن بناء صفحة ويب باستخدام CGI تسمح للمستخدم بإدخال اسم مدينته لتعرض له أسماء المطاعم الموجودة فيها أو أسماء المشتركين من نفس المدينة, وأما عن سبب وصفها بالمشتركة فهو كونها غير مخصصة لنظام تشغيل محدد أو لغة برمجة محددة, حيث يمكن تشغيل تطبيقات CGI على أنظمة تشغيل مختلفة مثل Windows, Linux و Unix, كما يمكن كتابة برامجها باستخدام لغات برمجة مختلفة مثل: C, C++, Perl, Python و Visual Basic.
إن صفحات الويب الساكنة مثل صفحات XHTML تبقى ثابتة كما هي, ولا تتغير محتوياتها إلا بتدخل بشري, والمخطط التالي يبين آلية طلب المستخدم لوثيقة XHTML موجودة على خادم ويب ما, حيث أنه في هذه الحالة يقوم الخادم بالبحث عن الوثيقة المطلوبة وإعادتها إلى المستخدم كما هي.
أما برامج CGI فتقوم بتوليد صفحة XHTML ديناميكية حسب مدخلات المستخدم ومصادر البيانات الأخرى, ويبين المخطط التالي الآلية التي يتم من خلالها التفاعل بين المخدم ومستخدم الويب عند طلب صفحة مولدة ديناميكيا.

ففي هذه الحالة وعند طلب الصفحة http://localhost/cgi-bin/mypage.cgi يقوم المخدم بعد استلامه الطلب بتوجبه هذا الطلب إلى واجهة العبور المشتركة, والتي تقوم بدورها بإرساله إلى برنامج C++ الذي يقوم بتوليد صفحة XHTML الديناميكية تبعا لدخل المستخدم ومصادر البيانات الأخرى.
أما بالنسبة لبرنامج C++ المذكور فما هو إلا برنامج C++ عادي, نستخدم فيه تعليمات الإدخال cin والإخراج cout, والفرق هو أنه في حالة برنامج C++ العادي يكون الخرج المعياري هو شاشة الحاسب لتعليمات الإدخال والإخراج السابقة, أما في حال تنفيذ برنامج C++ على أنه برنامج CGI عندها يجري توجيه الخرج إلى متصفح مستخدم الويب Client, ومن الجدير بالذكر ضرورة وضع نسخة برنامج C++ التنفيذية ضمن الدليل cgi-bin, مع تعديل اللاحقة exe إلى اللاحقة cgi.
المصدر: كتاب كيف تبرمج بلغة C++, إعداد الدكتور المهندس صلاح الدوه جي, منشورات دار شعاع



