कॉमन गेटवे इंटरफेस  एक बाहरी एप्लीकेशन सॉफ्टवेयर का सूचना देने वाले सर्वर के साथ संपर्क साधने के लिए एक मानक प्रोटोकॉल है, जो कि आमतौर पर एक वेब सर्वर होता है।

इस सूचना देने वाले सर्वर का कार्य, आउटपुटपरिणाम (क्लाईंट वेब ब्राउज़र के अनुरोध के मामले में वेब सर्वर) के द्वारा अनुरोध का जवाब देना है। हर बार एक अनुरोध प्राप्त होने पर, सर्वर अनुरोध का विश्लेषण करता है और उचित उत्तर देता है। ऐसा करने के लिए सर्वर द्वारा निम्नलिखित दो बुनियादी तरीके प्रयुक्त किये जाते हैं:

 यदि अनुरोध डिस्क पर संग्रहीत किसी फाईल को पहचानता है तो उस फ़ाइल की सामग्री को वापस कर देता है। 
 यदि अनुरोध एक करने योग्य कमांड और संभवतः तर्क को पहचानता है, तो यह उस कमांड को चलाता है और उसका परिणाम दिखाता है।

 दूसरे तरीके को करने का मानक ढंग परिभाषित करता है। यह परिभाषित करता है कि कैसे सर्वर के बारे में जानकारी और अनुरोध, तर्क तथा स्थिति के अनुसार वेरिएबल के रूप में भेजे जाते हैं और कैसे कमांड हैडर के रूप में परिणाम (जैसे टाइप के रूप में) की अतिरिक्त जानकारी भेज सकते हैं।

 इतिहास 
1993 में वर्ल्ड वाइड वेब () सीमित, किन्तु तेजी से बढ़ रहा था।  सॉफ्टवेयर डेवलपर्स और वेब साइट डेवलपर्स -टॉक मेलिंग सूची के द्वारा एक दूसरे के संपर्क में रहते थे, इसलिए इस तरह संपर्क साधने के लिए कमांड लाइन चलाने के एक मानक पर सहमति हुई।  विवरणी में विशेष रूप से वर्णित योगदानकर्ता निम्नलिखित हैं:

 रॉब मैककूल (  वेब सर्वर के लेखक) 
 जॉन फ्रैंक्स ( वेब सर्वर के लेखक) 
 ऐरी ल्यूटोनेन (  वेब सर्वर के डेवलपर) 
 टोनी सैंडर्स (प्लेक्सस वेब सर्वर के लेखक) 
 जॉर्ज फिलिप्स (ब्रिटिश कोलंबिया विश्वविद्यालय में वेब सर्वर की देखभाल करने वाले) 
रॉब मैककूल ने प्रारंभिक विशेषताओं का मसौदा तैयार किया और  इसे अब भी होस्ट करता है। यह बहुत से सर्वरों में तेजी से लागू किया गया था।

 उदाहरण 
 कार्यक्रम का एक उदाहरण एक वाईकी को लागू करना है। यूज़र एजेंट एक प्रविष्टि के नाम का अनुरोध करता है; सर्वर प्रविष्टि के पृष्ठ (यदि मौजूद है) से उसका स्रोत प्राप्त करेगा, इसे  में बदलेगा और परिणाम भेजेगा.

 क्रियान्वयन 
वेब सर्वर के नज़रिए से, कुछ लोकेटर (ढूढने वाली साईट्स), जैसे :..., एक प्रोग्राम में  द्वारा चलने के लिए परिभाषित किये गये हैं। जब  के लिए अनुरोध प्राप्त होता है तो इस से सम्बंधित कार्यक्रम चलाया जाता है।

डाटा स्थिति के अनुसार वेरिएबल का प्रयोग कर के प्रोग्राम में डाला जाता है। यह विशिष्ट चालन के विपरीत है, जहां कमांड लाइन तर्क प्रयोग किये जाते हैं।   या , के मामले में, उपयोगकर्ता द्वारा डाला गया डाटा मानक इनपुट के माध्यम से प्रोग्राम को उपलब्ध कराया जाता है।

वेब सर्वर में डायरेक्टरी ट्री के आधार पर एक - डायरेक्टरी होती है जो  द्वारा मांगी जाने वाली चलाने योग्य (एग्जीक्यूटेबल) फ़ाइलों का संग्रहण रखती है।

प्रोग्राम वेब सर्वर पर मानक उत्तर के रूप में परिणाम भेजता है, जिसके शुरू में एक हैडर और एक रिक्त पंक्ति होती है।

 हैडर का प्रारूप 
हैडर उसी तरह से कूटबद्ध होता है जैसे एक  हैडर और इसमें भेजे गये दस्तावेज़ का  प्रकार भी शामिल होना चाहिए।  हैडर आमतौर पर परिणाम के साथ उपयोगकर्ता को आगे भेजे जाते हैं, जिसे वेब सर्वर द्वारा प्रदान किया जाता है।

 कमियाँ 
यदि किसी मामले में  कॉल में स्क्रिप्टिंग भाषा प्रयुक्त होती है जैसे कि  या पर्ल, तो कोडिंग त्रुटियों के परिणामस्वरूप कोड इंजेक्शन जोखिम की संभावना बढ़ जाती है।

कमांड कॉलिंग का आम तौर पर अर्थ है एक नव निर्मित प्रक्रिया का आह्वान. प्रक्रिया को शुरू करने में, परिणाम उत्पन्न करने के वास्तविक कार्य की अपेक्षा अधिक समय तथा मेमोरी खर्च हो सकती है, खासकर जब प्रोग्राम को अभी इंटरप्रिटेट या कम्पाईल करना बाकी है। यदि प्रोग्राम को अक्सर चलाया जाता है तो काम के बोझ से वेब सर्वर जल्दी नष्ट हो सकते हैं। बहरहाल, इस बोझ को कम्पाईल किये हुए  प्रोग्रामों का प्रयोग कर के कम किया जा सकता है जैसे कि  के साथ पर्ल या अन्य स्क्रिप्टिंग भाषाओँ के स्थान पर , का प्रयोग किया जा सकता है। प्रदर्शन से सम्बंधित ऐसे मुद्दे आम तौर पर केवल उन मशीनों पर एक चिंता का विषय है जिन पर अत्यधिक कार्यभार होता है।

 विकल्प 
इसका इलाज़ करने के लिए कई दृष्टिकोण अपनाए जा सकते हैं:

 लोकप्रिय वेब सर्वरों ने अपना खुद का विस्तार तंत्र विकसित किया है जो कि तीसरे पक्ष के सॉफ़्टवेयर को वेब सर्वर के अंदर स्वयं चलने की अनुमति देता है, उदाहरण के रूप में - अपाचे मॉड्यूल, नेटस्केप  प्लग-इन,   प्लग इन. यद्यपि ये इंटरफेस अभी  जैसे निर्धारित मानकों तक नहीं पहुंचे हैं, फ़िर भी इन्हें पब्लिश किया गया तथा कई वेब सर्वरों पर आंशिक रूप से लागू किया गया है।
 साधारण कॉमन गेटवे इंटरफ़ेस या 
  एकल, लंबी चलने वाली प्रक्रिया को अनुमति प्रदान करते हैं ताकि  प्रोग्रामिंग मॉडल के निकट रहते हुए व सरलता को बनाए रखते हुए, एक से अधिक उपयोगकर्ता के अनुरोध को संभाला जा सके; साथ ही साथ प्रत्येक अनुरोध के लिए एक नई प्रक्रिया बनाने का  खर्च कम किया जा सके। एक एप्लीकेशन को वेब सर्वर प्लग-इन में बदलने के विपरीत,  एप्लीकेशन वेब सर्वर पर स्वतंत्र होते हैं।

किसी भी वेब एप्लीकेशन के लिए सर्वश्रेष्ठ सेटअप एप्लीकेशन के विशिष्ट विवरण, यातायात की मात्रा और लेनदेन की जटिलता पर निर्भर करता है, किसी भी दिए गये काम और समय के बजट का क्रियान्वयन निर्धारित करने के लिए इन विकल्पों का विश्लेषण करने की आवश्यकता है।

 इन्हें भी देखें 

  
  
  
 एप्लीकेशन सर्वर 
 कंप्यूटर मानकों की सूची

 सन्दर्भ 

बाहरी कड़ियाँ

  पर कॉमन गेटवे इंटरफ़ेस  
 3. पर  मानक. 
 3875: कॉमन गेटवे इंटरफेस () संस्करण 1.1 
  अनुरोध पार्स करने और  उत्तर उत्पन्न करने के लिए ,   पुस्तकालय 
 ,  अनुरोध पार्स करने और  उत्तर उत्पन्न करने के लिए एक मानक पर्ल मॉड्यूल 
   वेब एप्लीकेशन इंटरफ़ेस

श्रेणी:सर्वर
श्रेणी:गूगल परियोजना