PHP interesse |
|
De headers zijn gewoon info over de pagina. Een simpele pagina kan er zo uitzien inclusief headers:
HTTP/1.0 200 OK
Date: Sun, 03 Apr 2005 18:48:08 GMT
Server: Apache
Set-Cookie: Apache=212.78.206.100.189401112554088617; path=/
Last-Modified: Sun, 06 Feb 2005 20:36:00 GMT
Accept-Ranges: bytes
Content-Length: 64
Connection: close
Content-Type: text/plain
<html>
<head>
<title>blaat</title>
<body>
hall0w
</body>
</html>
HTTP/1.0 200 OK Date: Sun , 03 Apr 2005 18:48:08 GMT Server: Apache Set-Cookie: Apache=212.78.206.100.189401112554088617; path=/ Last-Modified: Sun, 06 Feb 2005 20:36:00 GMT Accept-Ranges: bytes Content-Length: 64 Connection: close Content-Type: text/plain <html> <head> <title>blaat</title> <body> hall0w </body> </html>
Eerst een paar headers. HTTP/1.0 200 OK is om aan te geven welke HTTP versie er gebruikt wordt.
Date is de timestamp van de request.
Server spreekt voor zich, en Set-Cookie vertelt de browser dat er een koekje gemaakt moet worden en wat erin moet staan. Dat is dus precies wat setcookie() doet, en is dus ook precies hetzelfde als header(Set-Cookie: ...).
Last-Modified geeft de laatste paginawijziging aan, en Accept-Range is volgens mij wat voor gegevens er geaccepteerd worden.
Content-Length geeft de paginalengte aan in bytes, maar 1 byte = 1 teken, dus met gewone files die leesbaar zijn in notepad is het aantal bytes gelijk aan het aantal tekens. Alleen telt een newline ook als een byte volgens mij, misschien zelfs twee omdat het een linefeed + een carriagereturn is.
Connection vertelt of de browser de verbinding met de server in stand moet houden of verbreken, en tenslotte zegt Content-Type wat voor soort inhoud de pagina heeft. Dit kan bijv. zijn text/plain, text/html, image/png, of application/pdf. De browser kan dan beslissen wat hij met het bestand doet, renderen of een downloadprompt geven.
Daarna komt er een lege regel om aan te geven dat er geen headers meer komen, en dat de content erna volgt. De volgorde van de headers maakt niks uit, behalve dan die lege regel, en HTTP/1.0 200 OK moet wel aan het begin staan.
zowzow das een heel verhaal geworden |