FastCGI
फास्टसीजीआई एक वेब सर्वर के साथ इंटरैक्टिव कार्यक्रमों को जोड़ने के लिए एक द्विआधारी प्रोटोकॉल है। यह पहले के कॉमन गेटवे इंटरफेस (सी. जी. आई.) पर एक भिन्नता है। फास्टसीजीआई का मुख्य उद्देश्य वेब सर्वर और सी. जी. आई. कार्यक्रमों के बीच इंटरफेस से संबंधित ओवरहेड को कम करना है, जिससे एक सर्वर को प्रति इकाई समय में अधिक वेब पेज अनुरोधों को संभालने की अनुमति मिलती है। कॉमन गेटवे इंटरफेस (सी. जी. आई.) वेब सर्वरों के लिए बाहरी अनुप्रयोगों को जोड़ने के लिए एक प्रोटोकॉल है। सी. जी. आई. अनुप्रयोग अलग-अलग प्रक्रियाओं में चलते हैं, जो प्रत्येक अनुरोध की शुरुआत में बनाए जाते हैं और अंत में फाड़ दिए जाते हैं। यह "प्रति अनुरोध एक नई प्रक्रिया" मॉडल सी. जी. आई. कार्यक्रमों को लागू करने के लिए बहुत सरल बनाता है, लेकिन दक्षता और मापनीयता को सीमित करता है। उच्च भार पर, प्रक्रिया निर्माण और विनाश के लिए ऑपरेटिंग सिस्टम ओवरहेड महत्वपूर्ण हो जाता है। इसके अलावा, सी. जी. आई. प्रक्रिया मॉडल संसाधन के पुनः उपयोग के तरीकों को सीमित करता है, जैसे कि डेटाबेस कनेक्शन का पुनः उपयोग, इन-मेमोरी कैशिंग, आदि। सी. जी. आई. की मापनीयता कमियों को दूर करने के लिए, ओपन मार्केट ने फास्ट सी. जी. आई. विकसित किया और पहली बार इसे 1990 के दशक के मध्य में अपने वेब सर्वर उत्पाद में पेश किया। ओपन मार्केट ने मूल रूप से फास्टसीजीआई को वेब अनुप्रयोगों को विकसित करने के लिए नेटस्केप के स्वामित्व वाले, इन-प्रोसेस एप्लिकेशन प्रोग्रामिंग इंटरफेस (एपीआई) (नेटस्केप सर्वर एप्लिकेशन प्रोग्रामिंग इंटरफेस (एनएसएपीआई)) के लिए एक प्रतिस्पर्धी प्रतिक्रिया के रूप में विकसित किया। जबकि पहले ओपन मार्केट द्वारा विकसित किया गया था, फास्टसीजीआई को कई अन्य वेब सर्वर निर्माताओं द्वारा लागू किया गया था। हालाँकि, इसका दृष्टिकोण सर्वर-उप-कार्यक्रम संचार को गति देने और सरल बनाने के अन्य तरीकों के खिलाफ प्रतिस्पर्धा करता है। अपाचे एच. टी. टी. पी. सर्वर मॉड्यूल जैसे कि मॉड _ पर्ल और मॉड _ पी. एच. पी. लगभग एक ही समय में दिखाई दिए और तेजी से लोकप्रियता हासिल की। सी. जी. आई. सहित ये सभी विभिन्न विधियाँ आम उपयोग में बनी हुई हैं। प्रत्येक अनुरोध के लिए एक नई प्रक्रिया बनाने के बजाय, फास्टसीजीआई अनुरोधों की एक श्रृंखला को संभालने के लिए लगातार प्रक्रियाओं का उपयोग करता है। ये प्रक्रियाएँ फास्टसीजीआई सर्वर के स्वामित्व में हैं, न कि वेब सर्वर के। आने वाले अनुरोध की सेवा के लिए, वेब सर्वर पर्यावरण परिवर्तनीय जानकारी और पृष्ठ अनुरोध को या तो यूनिक्स डोमेन साकेट, एक नामित पाइप, या एक संचरण नियंत्रण प्रोटोकॉल (टीसीपी) कनेक्शन पर फास्टसीजीआई प्रक्रिया को भेजता है। प्रतिक्रियाएँ प्रक्रिया से उसी कनेक्शन पर वेब सर्वर को वापस कर दी जाती हैं, और वेब सर्वर तब उस प्रतिक्रिया को अंतिम उपयोगकर्ता को वितरित करता है। प्रतिक्रिया के अंत में कनेक्शन बंद हो सकता है, लेकिन वेब सर्वर और फास्टसीजीआई सेवा प्रक्रियाएं दोनों बनी रहती हैं। प्रत्येक व्यक्तिगत फास्टसीजीआई प्रक्रिया अपने जीवनकाल में कई अनुरोधों को संभाल सकती है, जिससे प्रति-अनुरोध प्रक्रिया निर्माण और समाप्ति के ओवरहेड से बचा जा सकता है। एक साथ कई अनुरोधों को संसाधित करना कई तरीकों से किया जा सकता हैः आंतरिक मल्टीप्लेक्सिंग के साथ एक कनेक्शन का उपयोग करके (यानी, एक कनेक्शन पर कई अनुरोध); कई कनेक्शनों का उपयोग करके; या इन तरीकों के मिश्रण द्वारा। स्थिरता और मापनीयता को बढ़ाते हुए कई फास्टसीजीआई सर्वरों को कॉन्फ़िगर किया जा सकता है। वेब साइट प्रशासक और प्रोग्रामर यह पा सकते हैं कि फास्टसीजीआई में वेब सर्वर से वेब अनुप्रयोगों को अलग करने के कई फायदे हैं जो एम्बेडेड दुभाषियों (मॉड _ पर्ल, मॉड _ पीएचपी, आदि) की तुलना में हैं। यह पृथक्करण सर्वर और अनुप्रयोग प्रक्रियाओं को स्वतंत्र रूप से फिर से शुरू करने की अनुमति देता है-व्यस्त वेब साइटों के लिए एक महत्वपूर्ण विचार। यह प्रति-अनुप्रयोग, होस्टिंग सेवा सुरक्षा नीतियों के कार्यान्वयन को भी सक्षम बनाता है, जो आई. एस. पी. और वेब होस्टिंग कंपनियों के लिए एक महत्वपूर्ण आवश्यकता है। विभिन्न प्रकार के आने वाले अनुरोधों को विशिष्ट फास्टसीजीआई सर्वरों में वितरित किया जा सकता है जो उस प्रकार के अनुरोधों को कुशलता से संभालने के लिए सुसज्जित हैं। वेब सर्वर जो फास्टसीजीआई नोट को लागू करते हैंः जब तक कि कहा न जाए, फास्टसीजीआई कार्यान्वयन की पूर्णता अज्ञात है अपाचे एचटीटीपी सर्वर (आंशिक) द्वारा कार्यान्वित। यह मॉड्यूल तृतीय-पक्ष हुआ करता था, लेकिन 2009 में अपाचे सर्वर उप-परियोजना के रूप में अपाचे सॉफ्टवेयर फाउंडेशन (ए. एस. एफ.) को क्रिस डारोच द्वारा दिया गया था। यह केवल यूनिक्स डोमेन सॉकेट्स का समर्थन करता है, कोई टीसीपी सॉकेट्स नहीं। एक तृतीय-पक्ष मॉड्यूल का भी उपयोग किया जा रहा है। कुछ समय के लिए, यह मॉड्यूल अब अपाचे 2.4. x के तहत ठीक से संकलित नहीं किया गया है, हालांकि उस समस्या को मूल परियोजना के एक कांटे के साथ हल किया गया है। एक कनेक्शन के माध्यम से अनुरोधों को गुणा करना अपाचे 1. x डिज़ाइन द्वारा निषिद्ध है, इसलिए यह अपाचे 2.4 में समर्थित नहीं है, टीसीपी फास्टसीजीआई सर्वर का समर्थन करते हुए जोड़ा गया था। कैडी चेरोकी हियावथा लोडबैलेंसिंग फास्टसीजीआई समर्थन रूट किए गए फास्टसीजीआई सर्वरों का समर्थन करता है जेटी केरीओ वेबस्टार लाइटटीपीडी लाइटस्पीड वेब सर्वर माइक्रोसॉफ्ट आईआईएस एनजीनेक्स नवीसर्वर ओरेकल आईप्लेनेट वेब सर्वर ओपनबीएसडी का ओपन मार्केट वेब सर्वर रेजिन वेब और एप्लिकेशन सर्वर रॉक्सेन वेब सर्वर शिमरकैट वेब सर्वर ज़ीउस वेब सर्वर लैंग्वेज बाइंडिंग अपने एपीआई फास्टसीजीआई के लिए किसी भी भाषा में लागू किया जा सकता है जो नेटवर्क सॉकेट्स का समर्थन करता है। चूंकि "फास्टसीजीआई एक प्रोटोकॉल है, न कि एक कार्यान्वयन", यह किसी एक भाषा से पूरी तरह से बंधा नहीं है। एप्लीकेशन प्रोग्रामिंग इंटरफेस (एपीआई) निम्न के लिए मौजूद हैंः रूबी ऑन रेल्स, कैटालिस्ट, जैंगो, केपलर और प्लैक जैसे हालिया ढांचे या तो एम्बेडेड दुभाषियों (उदाहरण के लिए मॉड _ रूबी, मॉड _ पर्ल, मॉड _ पायथन या मॉड _ लुआ), या फास्टसीजीआई के साथ उपयोग की अनुमति देते हैं। संदर्भ बाहरी लिंक-फॉर्क/डाउन फास्टसीजीआई वेबसाइट का दर्पण-पुराना फास्टसीजीआई होम पेज, जैसा कि यह काम करते समय दिखाई दिया कार्यान्वयन-अपाचे के लिए कार्यान्वयन-माइक्रोसॉफ्ट आईआईएस के लिए कार्यान्वयन-अपाचे 2. x मॉड _ प्रॉक्सी वेब प्रौद्योगिकी के लिए प्रयोगात्मक कार्यान्वयन