PHP Response Headers Setting – Web Server जो Response Page, Web Browser को Return करता है, उस Response Page में भी ठीक उसी तरह का एक HTTP Response Header होता है, जिस तरह का Request Send करते समय Web Browser एक HTTP Request Header Web Server को भेजता है।
यानी जब Web Browser किसी Resource की Request Web Server से करता है, तो वह Request के रूप में Web Server को एक HTTP Request Header और यदि कुछ Extra Information हो, तो उस Extra Information को HTTP Request Header के Body Part में भेजता है। ठीक इसी तरह से जब Web Server, Web Browser द्वारा भेजी गई Request को पूरा करता है तो Web Server उसी Web Browser को एक HTTP Response Header Send करता है। साथ ही इस HTTP Response Header की Body में वह Content होता है, जिसकी Request Web Browser ने HTTP Request Header में की थी।
इस HTTP Response Header के Body Part में Web Browser द्वारा Requested Resource के अलावा विभिन्न प्रकार की Extra जानकारियां भी होती है। जैसे कि Response Body में Web Server द्वारा Web Browser को क्या व किस Type का Content Send किया गया है। Body में Send किए गए Content की Size क्या है यानी कितने Bytes का Content भेजा गया है, Response को किस समय Web Server द्वारा Web Browser को भेजा गया है, किस Web Server ने Response Return किया है, आदि।
PHP व Apache Response Header में आने वाली विभिन्न प्रकार की जानकारियों की उचित व्यवस्था स्वयं करते हैं। वे स्वयं ही इस बात का ध्यान रखते हैं कि Response के रूप में Web Browser में आने वाला Content HTML Type का है या किसी और Type का। HTML के Page की Size की Calculation भी वे स्वयं करते हैं और इसी तरह की कई और जानकारियों को PHP व Apache स्वयं ही Response Header के रूप में Web Browser को Automatically Send कर देते हैं, क्योंकि ज्यादातर Web Applications को किसी Resource के Header को Manually Set करने की जरूरत नहीं होती है।
फिर भी यदि हम स्वयं अपने स्तर पर किसी Web Page के Header को Modify या Set करके HTTP Response Header में Send करना चाहें, तो PHP हमें header() नाम का एक Function Provide करता है, जिसका प्रयोग करके हम हमारे Resources के HTTP Response Header को Manually Set कर सकते हैं।
उदाहरण के लिए मानलो कि हम कोई ऐसा Content HTTP Response के रूप में Web Browser को Send करना चाहते हैं, जो कि HTML नहीं है अथवा हम हमारे Web Page के Expiration का एक Time Set करना चाहते हैं, ताकि एक निश्चित समय के बाद User उस Web Page को न देख सके, अथवा हम Client Web Browser को Current Web Page से एक निश्चित समय पच्च्चात किसी दूसरे Web Page पर Move यानी Redirect करना चाहते हैं, अथवा किसी Specific Type की HTTP Error Generate करना चाहते हैं, तो इस प्रकार की जरूरतों को पूरा करने के लिए हम PHP के header() Function का प्रयोग कर सकते हैं।
जब हम header() Function का प्रयोग करके किसी Header को Set करना चाहते हैं, तब हमें बस इतना ध्यान रखना होता है कि कोई भी Body का कोई भी हिस्सा Generate होने से पहले Header Set हो जाना चाहिए, अन्यथा हमें निम्नानुसार एक Warning Message प्राप्त होता हैः
Warning: Cannot add header information – headers already sent
इस Warning Message का मतलब ये है कि हम जितने भी header() या setcookie() Function Call करते हैं, वे सभी हमारी Source File के बिल्कुल Top Left में यहां तक कि XML Declaration, <!DOCTYPE>, या <html> Element से भी पहले Specify कर दिए जाने चाहिए और Header या Cookie Information से पहले एक Space तक नहीं होना चाहिए। अन्यथा हमें उपरोक्त Error का सामना करना पडेगा।
Different Content Types
विभिन्न प्रकार के Content-Type Header Values को Specify करके हम Web Browser को इस बात की जानकारी दे सकते हैं कि Web Server किस तरह का Document Return कर रहा है या Web Browser, Web Server से आने वाले Document को किस तरह से Treat करे। सामान्यतः Use किए जाने वाले विभिन्न Content-Types निम्नानुसार हैं:
“Content-Type: text/html”
सामान्यतः सभी Documents का Default Content-Type “text/html” होता है, जो इस बात का Indication देता है कि Document एक Text File है, जिसमें HTML Codes लिखे गए हैं। इसलिए Document को HTLM File की तरह Treat किया जाए यानी उसमें लिखे गए Text को Web Browser द्वारा Interpret किया जाए।
“Content-Type: text/plain”
जब हम किसी Document का Content-Type “text/plain” Set कर देते हैं, तो वह Document Web Browser में Normal HTML Page की तरह Render नहीं होता, बल्कि पूरे Page का Source Code एक Plain Text की तरह दिखाई देने लगता है। इसे समझने के लिए हम हमारे पिछले उदाहरण Program के PHP Page को निम्नानुसार Modify करते हुए उसके Header के Content Type को “text/plain” Set कर सकते हैं:
<!-- Filename: multivaluedInput.php --> <?php header('Content-Type: text/plain'); $title = "Multivalued Form Processing"; include_once('header.php'); ?> <h1>Multiple Selection</h1> <form action="multivalued.php" method="post"> <select name="languages[]" size="6" multiple id="languages"> <option>"C" Language</option> <option>C++ Language</option> <option>Java Programming</option> <option>PHP with MySQL</option> <option>Oracle - SQL/PLSQL</option> </select> <input type="submit" name="submit" value="Multiple Selection" /> </form> <?php include_once('footer.php'); ?>
जब हम इस PHP Page को Web Browser में Load करते हैं, तो ये Web Page Render नहीं होता बल्कि Parsing के बाद Web Browser में निम्न चित्रानुसार दिखाई देता हैः

text/html; charset=utf-8
सामान्यतः HTML Page के Characterset को Specify करने के लिए हम इस Content Type का प्रयोग कर सकते हैं।
image/jpeg image/png image/gif or WBMP image/vnd.wap.wbmp
जब हम PHP के GD Graphics Library का प्रयोग करके किसी Graphics को Create करते हैं अथवा किसी और तरीके से Dynamically कोई Graphics Generate करते हैं, तो उस Graphics के Content-Type को हमें उसके Graphics के आधार पर image/jpet, image/png, image/gif आदि द्वारा Set करना होता है।
application/zip
जब हम इस Content Type को Specify करते हैं, तो Web Page के Load होते ही Web Page का सारा Content Download होने लगता है, जिसका Default Extension वही होता है, जो Current Page का होता है। उदाहरण के लिए यदि Current Page का नाम demo.php है, तो Current Page का सारा Content demo.php नाम से Current Computer पर Download हो जाता है।
application/pdf
जब हम इस Content Type को Specify करते है, तो PHP Current Page को PDF File की तरह Render करने की कोशिश करता है।
audio/mpeg
जब हम इस Content Type को Specify करते है, तो PHP Current Page को Audio File की तरह Handle करने की कोशिश करता है।
application/x-shockwave-flash
जब हमें Shockwave Flash Type की Animation File के Mime Type को Specify करना होता है, तब हम इस Content Type को Specify करते हैं।
Downloadable File
// Headers for an download:
header(‘Content-Type: application/octet-stream’);
header(‘Content-Disposition: attachment; filename=”example.rar”‘);
header(‘Content-Transfer-Encoding: binary’);
// load the file to send:
readfile(‘example.rar’);
उपरोक्त चारों Lines के Codes को लिखकर हम किसी Zip या Rar File को Directly Download के लिए Available करवा सकते हैं। यानी User जैसे ही Page को Load करता है, example.rar नाम की File Download होने लगती है।
Uncatchable File
// Disable caching of the current document:
header(‘Cache-Control: no-cache, no-store, max-age=0, must-revalidate’);
header(‘Expires: Mon, 26 Jul 1997 05:00:00 GMT’); // Date in the past
header(‘Pragma: no-cache’);
इन तीन Lines के Codes को Specify करके हमारे किसी Web Page को Uncatchable बना सकते हैं। यानी जब हम चाहते हैं कि हमारा Page किसी भी स्थिति में User के Web Browser के Cache में Save न हो, तब हम इस Code को Use कर सकते हैं।
Redirection
कई बार हमें ऐसी जरूरत पडती है कि हम चाहते हैं कि हमारा User Current Page से किसी अन्य Page पर Redirect हो जाए। कई बार हम हमारे User को नए Page पर ही Redirect कर देना चाहते हैं, जबकि कई बार हम कुछ समय के लिए Current Page पर अपने User को रखने के बाद किसी अन्य Page पर Move कर देते हैं। किसी Page को Redirect करने के लिए हम PHP Header के Location को निम्नानुसार Specify कर सकते हैं:
header(‘Refresh: 10; url=https://www.bccfalna.com/’);
जब जिस PHP Page में ये header() Specify करेंगे, User के सामने वह Page केवल 10 Seconds तक Visible रहने के बाद https://www.bccfalna.com पर Redirect हो जाएगा।
Page Expiration
एक Web Server Manually किसी Web Browser को इस बात का Instruction दे सकता है कि किसी Specific समय के बीच ही कोई Web Page, Web Browser के Cache में Available रहेगा। हम वह Date व Time Specify कर सकते हैं, जिस दिन व समय पर Web Browser अपने Cache से किसी Web Page को Automatically Remove कर देगा। किसी Web Page के Expire होने के समय को हम Expires Header द्वारा Specify कर सकते हैं। किसी Specific समय पर किसी Web Page को Expire करने के लिए हम निम्नानुसार header() Function को Use कर सकते हैं:
header(‘Expires: Fri, 11 Jan 2006 02:03:00 GMT’);
किसी Page के Generate होने के ठीक 48 घण्टों बाद Page को Expire करने के लिए हम निम्नानुसार Header Specify कर सकते हैं:
$now = time();
$expire = gmstrftime(“%a, %d %b %Y %H:%M:%S GMT”, $now + 60 * 60 * 48);
header(“Expires: $expire”);
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook PHP in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
PHP in Hindi | Page: 647 | Format: PDF