HTTP Response Message

HTTP Response Message – जब एक बार किसी Web Browser से किसी Resource की Request की जाती है, तो उस Request को पूरा करने के लिए पिछले Session में Discuss किए अनुसार एक HTTP Request Message बनता है, जिसमें विभिन्न प्रकार की Header Information होती हैं। ये Request Message ही Web Server पर पहुंचता है, जिसे Web Server Receive करके इसके Data को Process करता है और बदले में एक HTTP Response Message Create करता है।

यदि हम उपरोक्त उदाहरण को ही आगे बढ़ाते हुए इस प्रक्रिया की कार्यप्रणाली को भी बेहतर तरीके से समझें, तो Request के बदले में Create होने वाला Response Message निम्नानुसार हो सकता है-

HTTP/1.x 200 OK
Cache-Control: private, max-age=0
Date: Fri, 29 Mar 2013 12:42:14 GMT
Expires: -1
Content-Type: text/html; charset=UTF-8
Content-Encoding: gzip
Server: gws
Content-Length: 2520
<html><head>
… rest of HTML for Google’s home page …
</body></html>

चलिए जिस तरह से हमने Request Message के विभिन्न Headers को One by One समझा, उसी तरह से हम इस Response Message के भी सभी Headers को One by One समझने की कोशिश करते हैं।

HTTP/1.x 200 OK

Response Message का ये पहला Header Request करने वाले Web Browser को इस बात की जानकारी देता है कि Request को पूरा करने के लिए किस HTTP Protocol का प्रयोग हुआ है, जिसमें HTTP Version की Information के बाद एक Short Description Information Web Browser को Return होता है। ये Short Description ही Web Browser को इस बात की जानकारी देता है कि उसकी Request की Processing का क्या परिणाम रहा।

उपरोक्त Header में ये Status Code 200 व Description OK है, जो इस बात को Indicate कर रहा है, कि Web Browser द्वारा Perform की गई Request सही तरीके से Process हो गई है और Web Server ने Request किया गया Resource Return कर दिया है।

Web Server द्वारा अलग-अलग परिस्थितियों में अलग-अलग प्रकार के Status CodeDescription Return होते हैं, जिनके बारे में हम आगे Detail से जानेंगे।

Cache-Control: private, max-age=0

हर Web Browser में एक Local File Cache होता है, जो Recently Requested Files को Store करके रखता है, ताकि यदि फिर से उन्ही Files की Request हो, तो Web Browser उन Files को Web Browser से फिर से Download न करके अपने Cache से ही प्राप्त कर ले, ताकि Request ज्यादा तेजी से Perform हो सके और Response ज्यादा तेजी से प्राप्त हो सके।

Cache-Control Header Web Browser को Currently Requested Resource से संबंधित कुछ Parameters देता है, जो Web Browser को इस बात की जानकारी देता है कि वह कितने समय तक Web Server से आने वाले Resources को Cache करके रख सकता है।

हमारे उदाहरण में Cache-Control Header के साथ “private” Specified है, जो Web Browser के लिए इस बात का Indication है कि Current Resources केवल Current User के लिए ही है और यदि Current User किसी LAN (Local Area Network) पर है, तो LAN पर उपलब्ध अन्‍य Users के लिए वह Resource Available नहीं होगा।

परिणामस्वरूप यदि LAN पर काम करने वाले अन्‍य Users उसी Webpage को Open करेंगे, तो उनके लिए हर Resource फिर से Download होगा और उनके लिए अलग से Cache होगा, फिर भले ही सभी Users समान Web Browser Program को ही Share क्‍यों न कर रहे हों।

साथ ही “max-age” Property Web Browser को इस बात की जानकारी देता है कि Web Browser कितने Seconds तक Requested Page को Cache करके रख सकता है। हमारे उदाहरण में “max-age” का मान 0 है, जो इस बात का Indication है कि Web Browser Google के Homepage को 0 Seconds के लिए ही Cache करेगा या दूसरे शब्दों में कहें तो Cache नहीं करेगा। जबकि यदि हम किसी Webpage को Web Browser में Cache करवाना नहीं चाहते, तो हम Cache-Control Header में Value के रूप में “no-cache” मान Specify करके ऐसा कर सकते हैं।

Date: Fri, 29 Mar 2013 12:42:14 GMT

Response Message के इस Header में उस समय की Information होती है, जब HTTP Response Message, Web Server से Sent किया गया होता है।

Expires: -1

ये Header Web Browser को इस बात की Information देता है कि Requested Page किस Date-Time पर Old हो जाएगा और यदि फिर से उस Page को Load किया जाएगा, तो वह Web Browser के Cache से Load न होकर फिर से Download होगा। यानी Requested Webpage कब Expire हो जाएगा, इस बात की जानकारी इस Header में होती है।

Current Header में हमें -1 दिखाई दे रहा है, जो इस बात का Indication है कि Requested Page पहले से ही काफी पुराना हो चुका है और अगली बार यदि इस Page का Request किया जाएगा, तो Web Browser इस Page को Cache से Load करने के बजाय Web Server से Page की एक नई Copy Download करेगा।

Content-Type: text/html; charset=UTF-8

ये Header Requested Document के MIME Type को Represent करता है, जो Current Example में इस बात को Specify कर रहा है कि Currently Requested Page एक Plain Text HTML Page है जो कि एक UTF-8 Character Set Supported Page है।

Content-Encoding: gzip

ये Header Web Browser को ये बात Specify कर रहा है कि Web Server से Return होने वाला Document gzip Format में Compressed है, जिसे Web Browser Extract करके Render करेगा।

Web Server उसी स्थिति में किसी Resource को Compress करता है, जबकि Web Browser उस Compression Mode को Accept करता है। चूंकि Request Message में हमने देखा था कि Web Browser gzipdeflate Compression Mode को Support करता है, इसलिए Web Server ने Requested Document gzip Format में Return किया है।

यदि Request Message में Accept-Encoding Header में Specified Compression Mode को Web Server Support नहीं करता, तो Web Server Return होने वाले Resource को Compress करके Send नहीं करता बल्कि Normal Content की तरह ही Send करता, जिससे Webpage या Resource के Web Browser में Load होने की Speed कुछ धीमी हो जाती।

Server: gws

ये Header Web Browser को इस बात की जानकारी दे रहा है कि Return होने वाला Resource किस Web Server से Return हो रहा है। उपरोक्त उदाहरण में ये gws है जो कि Google का स्वयं का Web Server है।

Content-Length: 2520

ये Header Return होने वाले Resource की Length या Size को Bytes के रूप में Return करता है। यानी ये Header Web Browser को इस बात की जानकारी देता है कि Web Server से आने वाले Resource की Size किया है।

इन सभी Response Headers के बाद अन्त में Requested Resource का Actual Content होता है, जो कि Current Example में एक HTML Document है। यदि Requested Resource कोई Image File होता, तो यहां पर Text Representation के रूप में वह Image Download होना शुरू होता, जो Download होने के बाद Current Web Browser व Operating System द्वारा Image Format में Convert होकर Web Browser में Display हो जाता।

इस तरह से हम समझ सकते हैं कि जब हम Web Browser के Address Bar में कोई URL Specify करके Keyboard पर Enter Key Press करते हैं या Webpage पर दिखाई देने वाले किसी Hyperlink को Click करते हैं, तब उपरोक्तानुसार दोनों Plain Text RequestResponse Messages में कितनी सारी Header Information Send व Receive होती है और इसी Header Information के आधार पर Web Browser व Web Server के बीच Information का Transaction होता है।