jimfog Posted February 15, 2012 Share Posted February 15, 2012 I have read about what page headers are, nonetheless i have never saw them in "action", i mean whenever i have seen a php script(or written) there is not a single clue of them. So, are headers, incorporated "somewhere", not visible with the naked eye? When we develop php applications, should headers be of any concern to us, or is it something that the server "takes care" completely? How can i see code related to page headers in a php script-or this sth that by definition cannot be done? For example, in an index.php file i have never seen code that is related to headers(in anyway)-only the declarations(DOCTYPE...etc), php, html, css(if any). I just need a little help in understanding "what is going on" with the headers. Link to comment Share on other sites More sharing options...
boen_robot Posted February 15, 2012 Share Posted February 15, 2012 Browsers (their "HTTP client" component to be more precise) sees those headers and could allow extensions to look at them and act accordingly. For you to see the headers you're sending/receiving, you need browser add-ons that serve this role. I'd recommend Fiddler (see my signature), as it has a "raw" tab which can quickly give you an "aha" moment - the very thing you see there is EXACTLY what the HTTP clients downloads, except that browsers strip away the headers part out of the "View Source" view. Firebug can also see headers as part of its Net tab, but it displays them in a nice table that makes headers appear as if they're coming out of thin air and placed there. Link to comment Share on other sites More sharing options...
jimfog Posted February 16, 2012 Author Share Posted February 16, 2012 When developing in PHP(or other web language), should we take into consideration any details related to the headers(forget for a moment extensions). I am reading a book about php, where at some point,in a code segment of an index.php, the author says, ...preprocessing must be done before headers are sent. What does that mean?Do you know? Link to comment Share on other sites More sharing options...
Ingolme Posted February 17, 2012 Share Posted February 17, 2012 It's probably specific to that page he was making. I'm not sure why he thinks it should be done that way. It means that you should do all the calculations and data manipulation before sending any headers. Of course, that excludes printing which can't be done before sending headers. Link to comment Share on other sites More sharing options...
boen_robot Posted February 17, 2012 Share Posted February 17, 2012 What does that mean?Do you know?Again, look at Fiddler's raw tab... NOW. Link to comment Share on other sites More sharing options...
jimfog Posted February 20, 2012 Author Share Posted February 20, 2012 Ok, i saw the raw tab(under...inspector)...i understood what the headers are. There are 2 thing here that need clarification: First of all the author of the book says "......preprocessing must be done before headers are sent." How can that be, as i know when, when i page is requested from the browser, by definition, the headers are sent first, and then PHP parses the script, unless i am wrong, in which case the above statement needs correction/ The second thing is, why someone would want to go that route? The author does not explain that. Well... i hear what you have to say. Link to comment Share on other sites More sharing options...
birbal Posted February 20, 2012 Share Posted February 20, 2012 <div> How can that be, as i know when, when i page is requested from the browser, by definition, the headers are sent first, and then PHP parses the script, unless i am wrong, in which case the above statement needs correction/</div><div> </div><div><p>what the author means is sending response header. Their is two type of headers REQUEST header which browser sends when you request a page and another is RESPONSE haeder which send server after processing page.<br /> </p><div><p></p></div><div>why someone would want to go that route?</div><p></p><p> </p><div><p>There may be any other reason for what the author says that. But there is a practical implementetion of like that which i faced and did before. I was developing a forum and there i need to change the title and meta tags on each page depending upon the data. There is also another reason if you deal with headers(). the most common redirecting header error is for that reason "Header already been sent" same with cookies also. (Though there is output buffering for workaround this) So that proccesing has done first and after that headers sent to the browser for display.</p></div></div> Link to comment Share on other sites More sharing options...
justsomeguy Posted February 20, 2012 Share Posted February 20, 2012 The headers are not automatically sent immediately, all headers are sent by PHP the first time you send any output to the browser. Since headers go before the body, the first time you send any output then PHP will send all headers. You can't send more headers after that. You can use the headers_sent function to check if they were already sent. Link to comment Share on other sites More sharing options...
thescientist Posted February 21, 2012 Share Posted February 21, 2012 First of all the author of the book says "......preprocessing must be done before headers are sent." How can that be, as i know when, when i page is requested from the browser, by definition, the headers are sent first, and then PHP parses the script, unless i am wrong, in which case the above statement needs correction/ The second thing is, why someone would want to go that route? The author does not explain that. Headers won't be sent first unless you send them first. Because once you send output to the page, like echo, you can't use something like header(). it is also more mangeable to do all your calculations up front in one place where it is easier to keep track of, and then use your HTML like a template where you can plug in your processed data. So do that first, build your template/output, then display it. Link to comment Share on other sites More sharing options...
jimfog Posted February 23, 2012 Author Share Posted February 23, 2012 Headers won't be sent first unless you send them first. Because once you send output to the page, like echo, you can't use something like header(). it is also more mangeable to do all your calculations up front in one place where it is easier to keep track of, and then use your HTML like a template where you can plug in your processed data. So do that first, build your template/output, then display it.ian getting the picture(more or less)-as I understand it preprocessing is done for organizational purposes.am I correct to assume that it could be done also in the code segment that prints to the browser-an alternative strategy? Link to comment Share on other sites More sharing options...
boen_robot Posted February 23, 2012 Share Posted February 23, 2012 As soon as you start to actually output content (as in "not headers"), you can't send headers anymore.However, you can have echoes, and suppress the actual content outputting until you explicitly demand it with ob_flush(). During the suppression, you can send headers. This practice is not recommended however, as output buffering could be disabled on a server and/or lead to poorer performance if not used wisely (conversely, it could improve the apparent performance if used wisely). Link to comment Share on other sites More sharing options...
jimfog Posted February 24, 2012 Author Share Posted February 24, 2012 I know what I might say now might take this post in a different direction and come to realize that what we have said till now prove to be based on the wrong assumption,I am going to say it though.it seems that the author when he mentions "headers" he does not mean HTML headers(doctype etc) but instead he refers to page header from a design standpoint-the top portion of a webpageI think that things make more sense now. Link to comment Share on other sites More sharing options...
birbal Posted February 24, 2012 Share Posted February 24, 2012 What he mean is HTTP header. neither the html header (head tag, doctype) nor the header from design prespective. You are stil missing the point. You may like to read the above answers again. Link to comment Share on other sites More sharing options...
jimfog Posted February 24, 2012 Author Share Posted February 24, 2012 You may like to read the above answers again. Will do Link to comment Share on other sites More sharing options...
thescientist Posted February 24, 2012 Share Posted February 24, 2012 I know what I might say now might take this post in a different direction and come to realize that what we have said till now prove to be based on the wrong assumption,I am going to say it though. it seems that the author when he mentions "headers" he does not mean HTML headers(doctype etc) but instead he refers to page header from a design standpoint-the top portion of a webpage I think that things make more sense now. you need to remember your context. You are reading a book about PHP. PHP and HTTP headers are related and makes more sense, and so that is what the author is talking about. If you were reading an HTML/CSS book, then headers referring to page design and layout would make sense. http://en.wikipedia....iki/HTTP_header Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.