Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एक सर्वर एकाधिक क्लाइंट से वेब सेवा अनुरोधों को कैसे संभालता है

यह सामान्य अवधारणा के लिए है, न कि Android विशिष्ट के लिए

आमतौर पर, प्रत्येक उपयोगकर्ता पृष्ठ के लिए एक HTTP अनुरोध भेजता है। सर्वर अनुरोध प्राप्त करता है और उन्हें विभिन्न श्रमिकों (प्रक्रियाओं या धागे) को सौंपता है।

दिए गए URL के आधार पर, सर्वर एक फ़ाइल को पढ़ता है और उसे वापस उपयोगकर्ता को भेजता है। यदि फ़ाइल एक गतिशील फ़ाइल है जैसे कि PHP फ़ाइल, तो फ़ाइल को उपयोगकर्ता को वापस भेजने से पहले निष्पादित किया जाता है।

एक बार अनुरोधित फ़ाइल वापस भेज दिए जाने के बाद, सर्वर आमतौर पर कुछ सेकंड के बाद कनेक्शन बंद कर देता है।

देखें वेब सर्वर कैसे काम करते हैं

संपादित करें:

HTTP के लिए TCP का उपयोग करता है जो एक कनेक्शन-आधारित प्रोटोकॉल है। अर्थात्, क्लाइंट सर्वर से संचार करते समय एक TCP कनेक्शन स्थापित करते हैं।

एक ही समय में एक ही गंतव्य मशीन पर एक ही गंतव्य पोर्ट से कई ग्राहकों को कनेक्ट करने की अनुमति है। सर्वर बस एक साथ कई कनेक्शन खोलता है।

Apache (और अधिकांश अन्य HTTP सर्वर) में एक बहु-प्रसंस्करण मॉड्यूल (MPM) होता है। यह कनेक्शन को संभालने के लिए अपाचे थ्रेड/प्रक्रियाओं को आवंटित करने के लिए ज़िम्मेदार है। इन प्रक्रियाओं या थ्रेड्स को एक दूसरे को अवरुद्ध किए बिना, अपने स्वयं के कनेक्शन पर समानांतर में चलाया जा सकता है। अपाचे का एमपीएम बिना किसी कनेक्शन के खुले होने पर भी "अतिरिक्त" धागे या प्रक्रियाओं को खुला रखता है, जो बाद के अनुरोधों को गति देने में मदद करता है।

नोट:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सामान्य तालिका अभिव्यक्ति, अर्धविराम क्यों?

  2. कैसे ठीक करें "प्रक्रिया को 'ntext/nchar/nvarchar' प्रकार के पैरामीटर '@statement' की अपेक्षा है।" SQL सर्वर में त्रुटि

  3. SqlServer:उपयोगकर्ता के लिए लॉगिन विफल रहा

  4. टेबल-वैल्यूड-फ़ंक्शन के अंदर सीटीई के लिए मैक्सरेकर्सन विकल्प कैसे सेट करें?

  5. SQL सर्वर में डेटाबेस चेकप्वाइंट