एक पूरी तरह से कदम वापस दृष्टि से, Blankman, यहाँ वेब सेवा गेटवे इंटरफेस के लिए मेरे "परिचय पृष्ठ" है। वे चारों ओर बैठते हैं, धैर्यपूर्वक इंतजार करते हैं, और फिर बिना किसी चेतावनी के, अचानक:
- क्लाइंट प्रक्रिया एक अनुरोध भेजती है। ग्राहक प्रक्रिया एक वेब सर्वर, एक बॉट, एक मोबाइल ऐप, जो कुछ भी हो सकता है। यह बस "ग्राहक" है
- वेब सर्वर इस अनुरोध
- जानबूझकर बुदबुदाना विभिन्न बातें होती प्राप्त करता है (नीचे देखें)
- वेब सर्वर वापस ग्राहक के लिए कुछ भेजता
- वेब सर्वर फिर से चारों ओर बैठता है
वेब सर्वर (कम से कम, बेहतर वाले) इस पर बहुत अच्छे हैं। वे मांग के आधार पर प्रसंस्करण को ऊपर और नीचे स्केल करते हैं, वे विश्वसनीय रूप से क्रुद्ध नेटवर्क पर ग्राहकों के सबसे भरोसेमंद बातचीत के साथ वार्तालाप करते हैं और हमें इसके बारे में चिंता करने की ज़रूरत नहीं है। वे सिर्फ सेवा करते रहते हैं।
यह मेरा मुद्दा है: वेब सर्वर बस यही हैं: सर्वर। वे सामग्री के बारे में कुछ भी नहीं जानते हैं, उपयोगकर्ताओं के बारे में कुछ नहीं, वास्तव में कुछ भी इंतजार करने और भरोसेमंद जवाब देने के अलावा कुछ भी नहीं।
वेब सर्वर की आपकी पसंद को आपकी डिलीवरी वरीयता को प्रतिबिंबित करना चाहिए, न कि आपके सॉफ़्टवेयर। आपका वेब सर्वर सेवा, प्रसंस्करण या लॉजिकल सामान की सेवा करने का प्रभारी होना चाहिए।
भाग दो: (Python) सॉफ्टवेयर
सॉफ्टवेयर के आसपास बैठते हैं नहीं करता है। सॉफ्टवेयर केवल निष्पादन समय पर मौजूद है। जब सॉफ्टवेयर में अप्रत्याशित परिवर्तन की बात आती है तो सॉफ़्टवेयर बहुत ही अनुकूल नहीं होता है (फाइलें जहां यह अपेक्षा नहीं करती हैं, पैरामीटर का नाम बदलकर इत्यादि)। हालांकि ऑप्टिमाइज़ेशन आपके डिज़ाइन का एक केंद्रीय सिद्धांत होना चाहिए (बेशक), सॉफ़्टवेयर स्वयं अनुकूलित नहीं होता है। डेवलपर्स अनुकूलित करें। सॉफ्टवेयर निष्पादित करता है। सॉफ़्टवेयर उपरोक्त 'जानबूझकर गड़बड़' अनुभाग में सभी चीजें करता है। कुछ भी हो सकता है।
सॉफ़्टवेयर की आपकी पसंद या डिज़ाइन को आपके एप्लिकेशन, कार्यक्षमता की अपनी पसंद, और वेब सर्वर की अपनी पसंद को प्रतिबिंबित नहीं करना चाहिए।
यह वह जगह है जहां वेब सर्वर पर "संकलित" भाषाओं की पारंपरिक विधि दर्दनाक हो जाती है। भौतिक सर्वर वातावरण से निपटने के लिए आप अपने आवेदन में कोड डालते हैं या कम से कम, वेब सर्वर पर एकरूपता के भ्रम को देने के लिए रनटाइम में शामिल करने के लिए उचित 'रैपर' लाइब्रेरी चुनने के लिए मजबूर होना पड़ता है।
तो डब्ल्यूएसजीआई क्या है?
तो आखिर में, डब्लूएसजीआई क्या है? डब्ल्यूएसजीआई नियमों का एक सेट है, जो दो हिस्सों में लिखा गया है। वे इस तरह से लिखे गए हैं कि उन्हें किसी भी पर्यावरण में एकीकृत किया जा सकता है जो एकीकरण का स्वागत करता है।
वेब सर्वर पक्ष के लिए लिखा गया पहला भाग कहता है, "ठीक है, अगर आप डब्लूएसजीआई एप्लिकेशन से निपटना चाहते हैं, तो यह पता चलता है कि सॉफ़्टवेयर लोड होने पर सोच रहा होगा। यहां उन चीजें हैं जिन्हें आपको उपलब्ध कराया जाना चाहिए आवेदन, और यहां इंटरफ़ेस (लेआउट) है जिसे आप प्रत्येक एप्लिकेशन की अपेक्षा कर सकते हैं। इसके अलावा, अगर कुछ भी गलत हो जाता है, तो यहां ऐप कैसा सोच रहा है और आप इसे कैसे व्यवहार कर सकते हैं। "
पायथन एप्लिकेशन सॉफ़्टवेयर के लिए लिखे गए दूसरे भाग में कहा गया है, "ठीक है, अगर आप डब्लूएसजीआई सर्वर से निपटना चाहते हैं, तो यह है कि जब सर्वर आपको संपर्क करेगा तो सर्वर कैसा सोच रहा है। यहां उन चीजें हैं जिन्हें आपको उपलब्ध कराया जाना चाहिए सर्वर, और यहां इंटरफ़ेस (लेआउट) है जिसे आप प्रत्येक सर्वर की अपेक्षा कर सकते हैं। इसके अलावा, अगर कुछ भी गलत हो जाता है, तो यहां आपको व्यवहार करना चाहिए और यहां आपको सर्वर को क्या कहना चाहिए। "
तो आपके पास यह है - सर्वर सर्वर होंगे और सॉफ्टवेयर सॉफ़्टवेयर होगा, और यहां एक तरीका है कि वे बिना किसी विशेष के लिए किसी भी भत्ते के लिए किसी भी भत्ते के बिना महान हो सकते हैं। यह डब्लूएसजीआई है। अपाचे में - -
mod_wsgi, दूसरे हाथ पर, यह WSGI अनुरूप सॉफ्टवेयर से बात करने देता है कि अपाचे के लिए एक प्लगइन है, दूसरे शब्दों में, mod_wsgi एक कार्यान्वयन है ऊपर नियम पुस्तिका के भाग एक के नियमों के ।
सीजीआई का सवाल है .... :-)
http://stackoverflow.com/questions/219110/how-python-web-frameworks-wsgi-and-cgi-fit- साथ में –