- सामान्य गेटवे इंटरफ़ेस, या CGI, बाहरी गेटवे प्रोग्राम के लिए HTTP सर्वर जैसे सूचना सर्वर के साथ इंटरफ़ेस करने के लिए एक मानक है।
- वर्तमान संस्करण CGI/1.1 है और CGI/1.2 प्रगति पर है।
वेब ब्राउज़िंग
CGI की अवधारणा को समझने के लिए, आइए देखें कि जब हम किसी विशेष वेब पेज या URL को ब्राउज़ करने के लिए हाइपर लिंक पर क्लिक करते हैं तो क्या होता है।
- आपका ब्राउज़र HTTP वेब सर्वर से संपर्क करता है और URL, यानी फ़ाइल नाम की मांग करता है।
- वेब सर्वर URL को पार्स करता है और फ़ाइल नाम की तलाश करता है। यदि उसे वह फ़ाइल मिल जाती है तो वह उसे वापस ब्राउज़र में भेज देता है, अन्यथा एक त्रुटि संदेश भेजता है जो दर्शाता है कि आपने एक गलत फ़ाइल का अनुरोध किया है।
- वेब ब्राउज़र वेब सर्वर से प्रतिक्रिया लेता है और प्राप्त फ़ाइल या त्रुटि संदेश प्रदर्शित करता है।
हालाँकि, HTTP सर्वर को सेट करना संभव है ताकि जब भी किसी निश्चित निर्देशिका में फ़ाइल का अनुरोध किया जाए तो वह फ़ाइल वापस न भेजी जाए; इसके बजाय इसे एक प्रोग्राम के रूप में निष्पादित किया जाता है, और जो भी प्रोग्राम आउटपुट करता है वह आपके ब्राउज़र को प्रदर्शित करने के लिए वापस भेज दिया जाता है। इस फ़ंक्शन को कॉमन गेटवे इंटरफ़ेस या CGI कहा जाता है और प्रोग्राम को CGI स्क्रिप्ट कहा जाता है। ये CGI प्रोग्राम एक Python Script, PERL Script, Shell Script, C या C++ प्रोग्राम आदि हो सकते हैं।
CGI आर्किटेक्चर आरेख
वेब सर्वर समर्थन और कॉन्फ़िगरेशन
सीजीआई प्रोग्रामिंग के साथ आगे बढ़ने से पहले, सुनिश्चित करें कि आपका वेब सर्वर सीजीआई का समर्थन करता है और यह सीजीआई प्रोग्राम को संभालने के लिए कॉन्फ़िगर किया गया है। एचटीटीपी सर्वर द्वारा निष्पादित किए जाने वाले सभी सीजीआई कार्यक्रमों को एक पूर्व-कॉन्फ़िगर निर्देशिका में रखा जाता है। इस निर्देशिका को CGI निर्देशिका कहा जाता है और परंपरा के अनुसार इसे /var/www/cgi-bin नाम दिया गया है। परंपरा के अनुसार, सीजीआई फाइलों का विस्तार इस प्रकार है। cgi, लेकिन आप अपनी फ़ाइलों को अजगर एक्सटेंशन .py के साथ भी रख सकते हैं।
डिफ़ॉल्ट रूप से, Linux सर्वर को /var/www में cgi-bin निर्देशिका में केवल स्क्रिप्ट चलाने के लिए कॉन्फ़िगर किया गया है। यदि आप अपनी सीजीआई स्क्रिप्ट चलाने के लिए कोई अन्य निर्देशिका निर्दिष्ट करना चाहते हैं, तो httpd.conf फ़ाइल में निम्नलिखित पंक्तियों पर टिप्पणी करें -
<Directory "/var/www/cgi-bin"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> <Directory "/var/www/cgi-bin"> Options All </Directory>
यहां, हम मानते हैं कि आपके पास वेब सर्वर है और सफलतापूर्वक चल रहा है और आप पर्ल या शेल आदि जैसे किसी अन्य सीजीआई प्रोग्राम को चलाने में सक्षम हैं।