2011-04-29 37 views
20

स्टेटलेस प्रोटोकॉल और स्टेटफुल प्रोटोकॉल को कैसे समझें? HTTP एक स्टेटलेस प्रोटोकॉल है और एफ़टीपी एक राज्यव्यापी प्रोटोकॉल है। वेब अनुप्रयोगों के लिए बहुत से इंटरैक्शन की आवश्यकता होती है, अंतर्निहित प्रोटोकॉल स्टेटफुल होना चाहिए। क्या मेरी समझ सही है?स्टेटलेस प्रोटोकॉल और स्टेटफुल प्रोटोकॉल

उत्तर

11

चूंकि आप एक वेब एप्लिकेशन के बारे में पूछ रहे हैं, प्रोटोकॉल हमेशा स्टेटलेस होगा - वेब के लिए प्रोटोकॉल http (या https) है, और यही वह सब कुछ लिखा है।

मुझे लगता है कि आप जो सोच रहे हैं वह आपके वेब एप्लिकेशन में एक राज्य तंत्र प्रदान कर रहा है। इसका सामान्य दृष्टिकोण यह है कि आप अपने वेब एप्लिकेशन में उपयोगकर्ता के सत्र के लिए एक अद्वितीय पहचानकर्ता बनाते हैं (एक फॉर्म का सत्र आईडी या दूसरा सामान्य अभ्यास है) जो ब्राउज़र और सर्वर के बीच आगे और आगे दिया जाता है। यह आम तौर पर कुकी में किया जाता है, हालांकि यह यूआरएल पर आपके मंच/ढांचे के आधार पर आपके लिए थोड़ी अधिक परेशानी के साथ किया जा सकता है।

आपका सर्वर-साइड कोड राज्य की जानकारी संग्रहीत करता है (फिर, आमतौर पर उपयोगकर्ता का सत्र कहा जाता है) हालांकि यह इसे देखने के लिए sessionID का उपयोग करना चाहता है। Http यातायात बस sessionID वापस हाथ। जब तक वह पहचानकर्ता वहां होता है, प्रत्येक http लेनदेन सभी अन्य लोगों से पूरी तरह से स्वतंत्र होता है, इसलिए प्रोटोकॉल यातायात स्वयं ही स्टेटलेस होता है।

0

असल में हाँ, लेकिन आपके पास कोई विकल्प नहीं है लेकिन HTTP का उपयोग करें, जहां वेबसाइटों परोसा जाता है। इसलिए आपको HTTP स्टेटफुल, उर्फ ​​सत्र प्रबंधन करने के लिए समझौता करना होगा। संभावनाएं यूआरएल में प्रत्येक कॉल के माध्यम से मूल रूप से एक सत्र आईडी पर गुजर रही हैं ताकि आप जान सकें कि आप किसी ऐसे व्यक्ति से बात कर रहे हैं जब आपने पहले बात की थी, या कुकीज़ के माध्यम से, जो यूआरएल को छेड़छाड़ किए बिना एक ही लक्ष्य प्राप्त करता है। हालांकि, अधिकांश आधुनिक वेब विकास भाषाएं आपके लिए इसका ख्याल रखती हैं; यदि आप अपनी पसंद की भाषा + "सत्र प्रबंधन" के लिए Google हैं तो आपको कुछ विचार मिलना चाहिए कि यह कैसे किया जाता है।

32

HTTP एक स्टेटलेस प्रोटोकॉल है, दूसरे शब्द में सर्वर क्लाइंट/ब्राउज़र स्थिति से संबंधित सब कुछ भूल जाएगा। हालांकि वेब अनुप्रयोगों ने इसे लगभग राज्य जैसा दिखता है।

एक स्टेटलेस प्रोटोकॉल को व्यवहार करने के लिए मजबूर किया जा सकता है जैसे कि यह राज्यपूर्ण था। यह सर्वर पूरा हो सकता है यदि सर्वर क्लाइंट को राज्य भेजता है, और यदि क्लाइंट इसे सर्वर पर फिर से भेजता है, तो हर बार।

कुकीज़

क) एक है, ऐसी स्थिति में राज्य के लिए भेजा और HTTP शीर्ष लेखों में दिया जाता है:

तीन तरीके यह HTTP में पूरा किया जा सकता है।

बी) दूसरा यूआरएल एक्सटेंशन है, इस स्थिति में राज्य को यूआरएल के हिस्से के रूप में प्रतिक्रिया के रूप में भेजा जाता है।

ग) तीसरे, जिसमें राज्य प्रतिक्रिया के हिस्से के रूप ग्राहक के लिए भेज दिया जाता है "छिपा प्रपत्र फ़ील्ड्स", और एक फार्म के छिपे डेटा का हिस्सा

scalability और उच्च उपलब्धता के रूप में सर्वर के लिए लौट आए

एचटीटीपी स्केल इतनी अच्छी तरह से क्यों है इसके प्रमुख कारणों में से एक इसकी स्टेटलेसनेस है। स्टेटलेस प्रोटोकॉल प्रतिकृति चिंताओं को आसान बनाता है, क्योंकि राज्य को सर्वर पर ही स्टोर करने की आवश्यकता नहीं है।

राज्य में विश्वसनीय रूप से लागू करने के लिए राज्यिक प्रोटोकॉल तार्किक रूप से भारी हैं। स्टेटलेस सर्वर भी आसानी से मापनीय होते हैं, जबकि राज्यव्यापी सर्वर स्केलब्लिटी समस्याग्रस्त है। स्टेटलेस अनुरोध किसी भी समय किसी भी नोड को भेजा जा सकता है, जबकि राज्य के साथ यह मामला नहीं है।

स्टेटलेस रहित प्रोटोकॉल के रूप में HTTP स्टेटलेस वेब अनुप्रयोगों के लिए उपलब्धता बढ़ाता है, जो अन्यथा लागू करना मुश्किल या असंभव होगा। यदि कनेक्शन खो गया है, तो कोई भी राज्य खो गया है, सरल अनुरोध फिर से समस्या का समाधान करेगा। स्टेटलेस अनुरोध भी कैशबल हैं।

see more here

1

http एक राज्यविहीन protocol.all वेब आधारित अनुप्रयोगों स्थितिरहित है। जब सर्वर पर अनुरोध भेजा जाता है तो क्लाइंट और सर्वर के बीच एक कनेक्शन स्थापित किया जाता है, सर्वर अनुरोध प्राप्त करेगा, अनुरोध को संसाधित करेगा और प्रतिक्रिया वापस भेज देगा।, और कनेक्शन बंद है। यदि कोई अन्य अनुरोध भेजा जाता है तो इसे एक नए अनुरोध के रूप में माना जाएगा, और नया कनेक्शन स्थापित किया जाएगा। Http स्टेटफुल बनाने के लिए । हम सत्र प्रबंधन तकनीकों का उपयोग करते हैं। ताकि वर्तमान अनुरोध को संसाधित करते समय यह पिछले अनुरोध से आने वाले डेटा का उपयोग करता है। Iee, यह क्लाइंट सर्वर इंटरैक्शन की श्रृंखला के लिए एक ही कनेक्शन का उपयोग करता है। सत्र प्रबंधन तकनीकें हैं: 1. निषिद्ध फॉर्म फ़ील्ड 2. कुकी 3. सत्र 4.url-rewriting;

1

आपका प्रश्न स्पॉट पर है, और हाँ, यह बहुत अच्छा होगा अगर आपके बैंक के साथ आपके वेब लेनदेन एक राज्यव्यापी कनेक्शन पर किए गए हों। हां, HTTP एफ़टीपी में एक विचित्र बग और 1 9 8 9 के बीएसडी में आंशिक सॉकेट तालिका में 12 सॉकेट सीमा के कारण स्टेटलेस है। मार्कस रानम ने इसे सभी here समझाया।

तो HTTP टीसीपी से प्राप्त राज्य को फेंकता है और कुकीज़ के रूप में आवेदन परत पर राज्य को फिर से बनाना है। क्रैपी इंटरनेट सुरक्षा परिणाम है।

Seif project "टीसीपी पर सुरक्षित JSON" का उपयोग करने वाले सभी को ठीक करने का प्रस्ताव करता है। DNS और प्रमाणपत्र प्राधिकरणों की आवश्यकता नहीं है। प्रोटोकॉल और seifnode.js समाप्त हो गए हैं और एक एमआईटी लाइसेंस के साथ github पर।

0

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

From this link

संबंधित मुद्दे