Response Object or Response Context in ASP.NET

Response Object or Response Context in ASP.NET – Response Context का प्रयोग करके हम User कोSend किए जाने वाले Resultant Content को Configure करने की क्षमता प्राप्त करते हैं। Response Context को Page.Response Property के माध्‍यम से Page.Request Property के Complement के रूप में Use किया जाता है, जो कि System.Web.HttpResponse Type का Object Return करता है।

इस Return होने वाले Object को फिर से Request करने वाले Web Browser को Response के रूप में Send करने से पहले Response Object के विभिन्न प्रकार के Data को Configure करने के लिए Use किया जा सकता है, जो कि Request करने वाले Web Browser को प्राप्त होता है।

HttpResponse Properties

इस Object की कुछ सबसे ज्यादा Use होने वाली Most Common Properties अग्रानुसार हैं, जो कि ज्यादातर HttpRequest Class के समान ही हैं। दोनों में अन्तर केवल इतना है कि HttpRequest Object Request Perform करने वाले Web Browser से सम्बंधित Information को Represent करता है, जबकि Response Object Web Browser को Return होने वाली Information को Represent करता है।

यानी HttpRequest Object इस बात को Represent करता है कि Web Browser ने Requested Document से सम्बंधित किन Information को Web Server पर Send किया है, जबकि  HttpResponse Object इस बात को Represent करता है कि Web Browser Response Document की कौनसी Information को Web Server से Retrieve कर रहा है।

BufferOutput Property

ये Property एक Boolean Property है जो True या False के रूप में इस बात को Represent करता है कि Web Browser को Send किए जाने वाले Output को Buffer करना है या नहीं।

ये एक get/Set Property है। इसलिए जब इसका मान True होता है, तो Response के रूप में Return होने वाला Content पहले Buffer होता है और जब पूरे Page की Processing पूरी तरह से Complete हो जाती है, तब उस Buffered Output को Web Browser को Return किया जाता है। यानी जब तक Page पूरी तरह से Process नहीं हो जाता, तब तक उस Page के किसी भी Content को Web Browser को Response के रूप में Return नहीं किया जाता।

लेकिन यदि इस Property का मान False हो, तो Page Processing से जो भी Content Generate होता है, उसे सीधे ही Client Web Browser को Response के रूप में Send कर दिया जाता है और पूरे Page की Processing होने के लिए Wait नहीं किया जाता।

Charset Property

ये Property भी एक get/Set Property है, जो Output Stream के HTTP Character Set को Represent करता है। यदि Header Send होने के बाद इस Property को Set किया जाता है, तो HttpException Throw होता है। इस Property को हम कुछ निम्नानुसार तरीके से Use कर सकते हैं:


if (Response.Charset == "iso-8859-2")
{
  // ...
}

ये Code इस बात को Check करता है कि Output Stream का Character Set “Central European ISO)” है या नहीं।

ContentEncoding Property

ये Property भी एक get/Set Property है, जिसमें Current Response के Character Set की Information होती है। यदि ContentEncoding में null Set किया जाता हो, तो उस स्थिति में ArgumentNullException Throw होता है। इस Property को हम कुछ निम्नानुसार तरीके से Use कर सकते हैं:


   Response.Write(Response.ContentEncoding.EncodingName);

ये Code Return Value के रूप में हमें हमारे Output Stream के Content की Encoding का नाम जैसे कि “UTF-8” आदि Return करता है।

ContentType Property

ये Property भी एक get/Set Property है, जो Current Document के Output Stream का HTTP MIME Type get या Set करने के लिए Use होता है। यदि ContentType Property में null Set किया गया हो, तो उस स्थिति में HttpException Throw होता है। इस Property को हम कुछ निम्नानुसार तरीके से Use कर सकते हैं:


   Response.Write(Response.ContentType);

ये Code Return Value के रूप में हमें हमारे Output Stream के Content के Type को Return करता है, जो कि सामान्‍यत: “text/ html” होता है। लेकिन यदि हम इसे किसी अन्‍य MIME Type से Set करना चाहें, तो निम्नानुसार कर सकते हैं:


   Response.ContentType = "image/jpeg";

इस Statement को Specify करने के बाद Current Response एक Image की तरह Web Browser को Return होगा। इसलिए अब Response Stream में हमें Manually या किसी अन्‍य तरीके से किसी Image Content को Store करना होता है, ताकि Web Browser उस Content को Image की तरह Web Browser में Render कर सके।

Cookies Property

ये Property एक get Property है। ASP.NET दो प्रकार की Cookies को Support करता है। जो Cookies Collection, HttpRequest Object के साथ Associated होता है, उसमें वे Cookie Information होती हैं, जिन्हें Web Client से Web Server को Send किया गया होता है। जबकि  HttpResponse Object के साथ जो Cookies Collection होता है, उसे Web Server पर Create किया गया होता है और उन Cookies को Web Client को Set-Cookie Header के माध्‍यम से Send किया जाता है।

जब एक बार हम HttpResponse.Cookies Collection में अपनी जरूरत के अनुसार Cookies को Add कर लेते हैं, उसके बाद वे Cookies तुरन्‍त HttpRequest.Cookies Collection के लिए Available हो जाते हैं, भले ही हमने Response को अभी तक Client को Send न किया हो।

HeaderEncoding Property

ये Property भी एक get/Set Property है, जो Encoding Object को get या Set करता है। ये Encoding Object हमारे Response Document के Output Stream के Current Header को Represent करता है। यदि Encoding Value null हो, तो ArgumentNullException Throw होता है जबकि यदि Encoding Value Unicode हो या Header पहले भी Send हो गया हो, तो HttpException Throw होता है।

हालांकि हम इस Property को Change कर सकते हैं, लेकिन इसे Change करने से Header Injection Attacks जैसे Malicious Action होने की सम्भावना रहती है। इसलिए इस Property को हमेंशा इसी Default Value से ही Set रहने देना चाहिए।

Headers Property

ये Propertyएक get Property है, जिसका प्रयोग करके हम Response Header को Retrieve कर सकते हैं। ये Property केवल IIS 7.0 Web Server के Pipeline Mode पर ही Supported है और जो कि .NET Framework 3.0 या बाद के Versions पर ही उपलब्ध है। इसलिए जब हम Headers Property को Access करने की कोशिश करते हैं और इन दोनों में से कोई भी Condition Satisfy नहीं होती, तो उस स्थिति में PlatformNotSupportedException Throw होता है।

IsClientConnected Property

ये Property एक Boolean get Property है, जो इस बात को Indicate करता है कि क्या Client, Web Server से अभी भी Connected है या नहीं। इसका मान True होने की स्थिति में Client व Server दोनों Currently Connected होते हैं। जबकि यदि दोनों के बीच का Connection समाप्त हो चुका हो, तो इसका मान False होता है। जब निम्न में से कोई स्थिति होती है, तब इस Property का मान False होता है:

  • यदि Client की ओर से Connection Terminate हो गया हो। ऐसा तब हो सकता है, जब Close Method को Invoke किया गया होता है या Client पर Webpage का Execution Stop हो गया होता है या फिर जब User अपने Web Browser पर किसी अन्‍य Webpage पर Move हो गया होता है।
  • यदि HttpWorkerRequest Object null हो, जो कि Request को Handle कर रहा होता है या IsClientConnected  Method False Return करे।

IsRequestBeingRedirected Property

ये Property एक Boolean get Property है, जो इस बात को Indicate करता है कि क्या Client, किसी एक Location या Webpage पर Transfer हो रहा है या नहीं। इसका मान True होने की स्थिति में Location Response Header, Current Locations किसी अन्‍य Location पर Redirect होता है अन्‍यथा इसका मान False होता है।

इस Property को सामान्‍यत: RedirectLocation Property के साथ Use करते हुए इस बात को Test किया जाता है कि क्या Client को Send किए जाने वाले Response के HTTP Location Header में Specified Current URI, वही है या नहीं, जिसके लिए Request किया गया था।

RedirectLocation Property

ये Propertyएक get/Set Property है, जिसे HTTP Location Header को get या Set करने के लिए Use किया जाता है। इस Property में उस Absolute URI को Specify किया जाता है, जिसे हमें Client Web Browser को भेजे जाने वाले Response के HTTP Location Header में Transmit करना है।

यदि HTTP Header को पहले ही Write किया जा चुका हो, तो उस स्थिति में HttpException Throw होता है। इस Property को हम कुछ निम्नानुसार तरीके से Use कर सकते हैं:


   Response.RedirectLocation = "https://www.bccfalna.com ";

जब हम इस Statement को Use करते हैं, तो Return होने वाले Response के Location Header के रूप में https://www.bccfalna.com URL Pass होता है। परिणामस्वरूप जैसे ही Web Browser Response को Render करता है, वह इस URL पर Redirect हो जाता है और इस Absolute URL वाले Response को Web Browser में Render कर देता है।

Status Property

ये Property एक get/Set Property है, जिसका प्रयोग करके हम Client को Return होने वाले Response के HTTP Header की Status Line को get या Set कर सकते हैं। जबकि यदि Status को किसी Invalid Code से Set करने पर HttpException Throw होता है। इस Property को हम कुछ निम्नानुसार तरीके से Use कर सकते हैं:


   Response.Status = "301 Moved Permanently";

जब हम इस Statement को Use करते हैं, तो Return होने वाले Response के Status HTTP Header में Value के रूप में “301 Moved Permanently” Status Store हो जाता है, जो Web Browser को इस बात का Instruction देता है कि Requested Document को किसी एक URL पर Permanently Move कर दिया गया है।

StatusCode Property

ये Propertyएक get/Set Property है, जिसका प्रयोग करके हम Client को Return होने वाले Response के HTTP Header की Status Code Line को get या Set कर सकते हैं, जो Client को इस बात का Instruction देता है कि Request Successful रहा या नहीं। जबकि यदि Status Codeको किसी Invalid Code से Set किया गया हो या HTTP Header के Send हो जाने के बाद यदि Status Code Property को Set किया गया हो, तो HttpException Throw होता है। इस Property को हम कुछ निम्नानुसार तरीके से Use कर सकते हैं:


if (Response.Status Code != 200)
{
  Response.Write("There was a problem accessing the web resource" + "<br />" + Response.StatusDescription);
}

जब Client को Response Return होता है, तो Response की Status को एक Code द्वारा Represent किया जाता है, जिसे HTTP Status Codes के नाम से जाना जाता है। विभिन्न Supported Status Code Constants की जानकारी http://msdn.microsoft.com/en-us/library/aa383887.aspx से प्राप्त कर सकते हैं।

StatusDescription Property

ये Property एक get/Set Property है, जिसका प्रयोग करके हम Client को Return होने वाले Response के HTTP Header की Status Description Line को get या Set कर सकते हैं, जो Client को इस बात का Instruction देता है कि Request Successful रहा या नहीं।

जबकि यदि Status Code को किसी Invalid Code से Set किया गया हो या HTTP Header के Send हो जाने के बाद यदि StatusDescription Property को Set किया गया हो, तो HttpException Throw होता है। जबकि यदि Selected Value की Length 512 से अधिक हो, तो ArgumentOutOfRangeException Throw होता है। इस Property को हम कुछ निम्नानुसार तरीके से Use कर सकते हैं:


if (Response.StatusDescription != "OK")
{
  // ...
}

जब Client को Response Return होता है, तो Response की StatusDescription को एक Message द्वारा Represent किया जाता है, जिसे HTTP Status Description के नाम से जाना जाता है। सामान्‍यत: Status Code व Status Description दोनों एक Group के रूप में ही Return किए जाते हैं।

इसलिए Status, Status Code StatusDescription Properties को निम्नानुसार एक Group के रूप में ही Specify किया जाता है और सामान्‍यत: Redirection के दौरान ही इन्हें Specify किया जाता है:


      Response.Status Code = 301;
      Response.Status = "301 Moved Permanently";
      Response.RedirectLocation = "https://www.bccfalna.com";
Browser Based Content in ASP.NET
Server Object or Server Context

Core ASP.NET WebForms in Hindi - BccFalna.com: TechTalks in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Core ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

Core ASP.NET WebForms in Hindi | Page:647 | Format: PDF

BUY NOW GET DEMO REVIEWS