क्या कोई 2 से कम वाक्यों में समझा सकता है दोनों के बीच का अंतर? हाँ, मुझे पता है कि Google सैकड़ों उत्तर दे सकता है लेकिन 2 स्पष्ट वाक्यों में से एक नहीं :)
क्या कोई 2 से कम वाक्यों में समझा सकता है दोनों के बीच का अंतर? हाँ, मुझे पता है कि Google सैकड़ों उत्तर दे सकता है लेकिन 2 स्पष्ट वाक्यों में से एक नहीं :)
जवाबों:
HttpHandler वह जगह है जहां अनुरोध ट्रेन का नेतृत्व किया जाता है। HttpModule रास्ते में एक स्टेशन है।
दो वाक्य:
एक HttpModule आपके आवेदन के लिए हर अनुरोध के लिए निष्पादित करेगा, विस्तार की परवाह किए बिना, और आमतौर पर सुरक्षा, सांख्यिकी, लॉगिंग आदि जैसी चीजों के लिए उपयोग किया जाता है।
एक HttpHandler आम तौर पर एक विशिष्ट एक्सटेंशन के साथ जुड़ा हुआ है, और आरएसएस फ़ीड, गतिशील छवि पीढ़ी या संशोधन और जैसी चीजों के लिए उपयोग किया जाता है।
थोड़ा और स्पष्टीकरण अगर यह पूरी तरह से स्पष्ट नहीं है:
जिस तरह से मैं उनके बारे में सोचता हूं - मॉड्यूल अनुरोध पाइपलाइन में "प्लग इन" करते हैं, जबकि हैंडलर एक विशिष्ट फ़ाइल एक्सटेंशन को "हैंडल" करते हैं। इसलिए, यदि आपको एक लॉगिंगमॉडल और एक PdfHandler के साथ एक साइट मिली है, तो दोनों http://example.com/sample.pdf , और अकेले लॉगिंग मॉड्यूल http: // के अनुरोध के लिए निष्पादित करेंगे। example.com/page.aspx ।
MSDN पर अंतर पर एक बहुत स्पष्ट लेख है: HTTP हैंडलर्स और HTTP मॉड्यूल अवलोकन
ProcessRequest
। दूसरी ओर मॉड्यूल, जीवन-चक्र के किसी भी बिंदु पर निष्पादित करेगा जिसे आप इसे तार करते हैं। Aspx पेज से पहले कुछ चलाने के लिए अपने परिदृश्य के लिए, आप एक मॉड्यूल चाहते हैं। हालाँकि, आपको उन पृष्ठों के अनुरोधों को मैन्युअल रूप से फ़िल्टर करने की आवश्यकता है जो .aspx नहीं हैं
HttpHandler और HttpModule का मुख्य और सामान्य लक्ष्य ASP.NET अनुरोध IIS सर्वर तक पहुंचने से पहले प्री-प्रोसेसिंग लॉजिक इंजेक्ट करना है।
ASP.NET अनुरोध पाइपलाइन में तर्क को इंजेक्ट करने के दो तरीके प्रदान करता है;
उदाहरण: RSS फ़ीड्स: किसी वेब साइट के लिए RSS फ़ीड बनाने के लिए, आप एक हैंडलर बना सकते हैं जो RSS-स्वरूपित XML का उत्सर्जन करता है। इसलिए जब उपयोगकर्ता आपकी साइट पर .rss में एक अनुरोध भेजते हैं, ASP.NET आपके हैंडलर को अनुरोध को संसाधित करने के लिए कहता है।
हैंडलर बनाने में तीन चरण शामिल हैं। IHttpHandler इंटरफ़ेस लागू करें। 2. web.config या machine.config फ़ाइल में हैंडलर रजिस्टर करें। 3. IIS में aspnet_isapi.dll फ़ाइल एक्सटेंशन (* .arshad) पर मैप करें।
IHttpHandler इंटरफ़ेस में प्रॉसेसरेस्ट विधि और IsReusable संपत्ति है जिसे लागू करने की आवश्यकता है। ProcessRequest: इस विधि में, आप उस कोड को लिखते हैं जो हैंडलर के लिए आउटपुट का उत्पादन करता है। IsResuable: यह गुण बताता है कि इस हैंडलर का पुन: उपयोग किया जा सकता है या नहीं।
आप हैंडलर को web.config फाइल में इस तरह रजिस्टर कर सकते हैं
<httpHandlers>
<add verb="*" path="*.arshad" type="namespace.classname, assemblyname" />
</httpHandlers>
नोट: यहां हम एक्सटेंशन अरशद के साथ किसी भी फ़ाइल नाम को संभाल रहे हैं।
ASP.NET इंजन अनुरोध पाइपलाइन के माध्यम से अनुरोध पासनेस के रूप में बहुत सारी घटनाओं का उत्सर्जन करता है। उन घटनाओं में से कुछ हैं AuthenticateRequest, AuthorizeRequest, BeginRequest, EndRequest। HttpModule का उपयोग करके आप इन घटनाओं में तर्क लिख सकते हैं। ये तर्क ईवेंट्स आग के रूप में निष्पादित होते हैं और अनुरोध तक पहुंचने से पहले आईआईएस में पहुंच जाते हैं।
मॉड्यूल बनाने में दो चरण शामिल हैं, 1. IHttpModule इंटरफ़ेस लागू करें। Web.config या machine.config फ़ाइल में रजिस्टर मॉड्यूल
उदाहरण: सुरक्षा: HTTP मॉड्यूल का उपयोग करके, आप IIS पहुंचने से पहले कस्टम प्रमाणीकरण या अन्य सुरक्षा जांच कर सकते हैं।
HTTP हैंडलर एक ऐसी प्रक्रिया है जो ASP.NET वेब एप्लिकेशन में किए गए अनुरोध के जवाब में चलती है। HTTP मॉड्यूल आपको आने वाले और बाहर जाने वाले अनुरोधों की जांच करने और अनुरोध के आधार पर कार्रवाई करने देता है।
HttpHandler विस्तार से http अनुरोध को संभालने के लिए ज़िम्मेदार है, जबकि HttpModule जीवन चक्र की घटनाओं का जवाब दे रहा है।
अच्छा लेख इसके बारे में HttpModule-and-HttpHandlers
संदर्भ: जानकारी: ASP.NET HTTP मॉड्यूल और HTTP हैंडलर अवलोकन
“हैंडलर निष्पादित करने से पहले और बाद में मॉड्यूल को बुलाया जाता है। मॉड्यूल डेवलपर्स को प्रत्येक व्यक्तिगत अनुरोध को अवरोधन, भाग लेने या संशोधित करने में सक्षम बनाता है। हैंडलर का उपयोग व्यक्तिगत समापन बिंदु अनुरोधों को संसाधित करने के लिए किया जाता है। हैंडलर ASP.NET फ्रेमवर्क को एक अनुप्रयोग के भीतर व्यक्तिगत HTTP URL या URL एक्सटेंशन के समूहों को संसाधित करने में सक्षम करते हैं। मॉड्यूल के विपरीत, अनुरोध को संसाधित करने के लिए केवल एक हैंडलर का उपयोग किया जाता है।
HTTP हैंडलर वह जगह है जहां वास्तव में संकलन सेटिंग के आधार पर किया जाता है। जैसे कि यदि पृष्ठ का विस्तार .aspx है तो यह system.web.Ui.Pagahandlefactory के माध्यम से संकलित करेगा। एक बार HTTP हैंडल पर संकलन किया जाता है, हालांकि HTTP मॉड्यूल और IIS में रिक्वेस्ट जाएगी।
HTTP हैंडलर
HTTP हैंडलर एक प्रक्रिया है जो एक HTTP अनुरोध के जवाब में चलती है। इसलिए जब भी उपयोगकर्ता किसी फ़ाइल का अनुरोध करता है तो उसे एक्सटेंशन के आधार पर हैंडलर द्वारा संसाधित किया जाता है। इसलिए, कस्टम http हैंडलर तब बनाए जाते हैं, जब आपको फ़ाइल नाम एक्सटेंशन के आधार पर विशेष हैंडलिंग की आवश्यकता होती है। आइए एक साइट के लिए RSS बनाने के लिए एक उदाहरण पर विचार करें। तो, एक हैंडलर बनाएं जो RSS- स्वरूपित XML उत्पन्न करता है। अब कस्टम हैंडलर को .rss एक्सटेंशन को बाइंड करें।
HTTP मॉड्यूल
HTTP मॉड्यूल एक अनुरोध के जीवन चक्र में प्लग किए जाते हैं। इसलिए जब एक अनुरोध संसाधित होता है तो यह अनुरोध के पाइपलाइन में सभी मॉड्यूल से गुजरता है। इसलिए आमतौर पर http मॉड्यूल का उपयोग किया जाता है:
सुरक्षा: अनुरोध को संभालने से पहले एक अनुरोध को प्रमाणित करने के लिए।
सांख्यिकी और लॉगिंग: चूंकि मॉड्यूल को प्रत्येक अनुरोध के लिए बुलाया जाता है, जिसका उपयोग वे आंकड़े इकट्ठा करने और लॉगिंग जानकारी के लिए कर सकते हैं।
कस्टम हेडर: चूंकि प्रतिक्रिया को संशोधित किया जा सकता है, इसलिए कोई कस्टम हेडर जानकारी को प्रतिक्रिया में जोड़ सकता है।