- कॉमन गेटवे इंटरफेस, या CGI, HTTP सर्वर जैसे सूचना सर्वरों के साथ इंटरफेस करने के लिए बाहरी गेटवे प्रोग्राम्स के लिए एक मानक है।
- वर्तमान संस्करण CGI/1.1 है और CGI/1.2 प्रगति पर है।
वेब ब्राउज़िंग
CGI की अवधारणा को समझने के लिए, आइए देखें कि जब हम किसी विशेष वेब पेज या URL को ब्राउज़ करने के लिए एक हाइपर लिंक पर क्लिक करते हैं तो क्या होता है।
- आपका ब्राउज़र HTTP वेब सर्वर से संपर्क करता है और URL, यानी फ़ाइल नाम की मांग करता है।
- वेब सर्वर URL को पार्स करता है और फ़ाइल नाम की तलाश करता है। यदि वह उस फ़ाइल को ढूंढता है तो उसे ब्राउज़र को वापस भेजता है, अन्यथा एक त्रुटि संदेश भेजता है जो दर्शाता है कि आपने गलत फ़ाइल का अनुरोध किया है।
- वेब ब्राउज़र वेब सर्वर से प्रतिक्रिया लेता है और प्राप्त फ़ाइल या त्रुटि संदेश प्रदर्शित करता है।
हालांकि, HTTP सर्वर को इस तरह सेट करना संभव है कि जब भी एक निश्चित डायरेक्टरी में फ़ाइल का अनुरोध किया जाता है, तो वह फ़ाइल वापस नहीं भेजी जाती; इसके बजाय इसे एक प्रोग्राम के रूप में निष्पादित किया जाता है, और जो भी वह प्रोग्राम आउटपुट करता है वह आपके ब्राउज़र को प्रदर्शित करने के लिए वापस भेज दिया जाता है। इस फ़ंक्शन को कॉमन गेटवे इंटरफेस या CGI कहा जाता है और प्रोग्राम्स को CGI स्क्रिप्ट्स कहा जाता है। ये CGI प्रोग्राम्स एक पाइथन स्क्रिप्ट, PERL स्क्रिप्ट, शेल स्क्रिप्ट, C या C++ प्रोग्राम, आदि हो सकते हैं।
CGI आर्किटेक्चर डायग्राम

वेब सर्वर समर्थन और कॉन्फ़िगरेशन
CGI प्रोग्रामिंग के साथ आगे बढ़ने से पहले, सुनिश्चित करें कि आपका वेब सर्वर CGI का समर्थन करता है और यह CGI प्रोग्राम्स को संभालने के लिए कॉन्फ़िगर किया गया है। HTTP सर्वर द्वारा निष्पादित किए जाने वाले सभी CGI प्रोग्राम्स एक पूर्व-कॉन्फ़िगर डायरेक्टरी में रखे जाते हैं। इस डायरेक्टरी को CGI डायरेक्टरी कहा जाता है और परंपरा से इसे /var/www/cgi-bin नाम दिया गया है। परंपरा से, CGI फ़ाइलों का एक्सटेंशन .cgi होता है, लेकिन आप अपनी फ़ाइलों को पाइथन एक्सटेंशन .py के साथ भी रख सकते हैं।
डिफ़ॉल्ट रूप से, लिनक्स सर्वर /var/www में cgi-bin डायरेक्टरी में केवल स्क्रिप्ट्स चलाने के लिए कॉन्फ़िगर किया गया है। यदि आप अपने CGI स्क्रिप्ट्स को चलाने के लिए किसी अन्य डायरेक्टरी को निर्दिष्ट करना चाहते हैं, तो httpd.conf फ़ाइल में निम्नलिखित लाइन्स को कमेंट करें −
AllowOverride None Options ExecCGI Order allow,deny Allow from all Options All
यहां, हम मान लेते हैं कि आपका वेब सर्वर चालू है और सफलतापूर्वक चल रहा है और आप पर्ल या शेल जैसे किसी अन्य CGI प्रोग्राम को चलाने में सक्षम हैं।