Headerinformationen

Cookies sind Headerparameter des HTTP-Protokolls. Es können allerdings noch weitere interessante Header gesetzt und auch eigene Header definiert werden, die dann von der Gegenseite ausgewertet werden können.

Mit Hilfe der Funktion header() wird ein neuer Header gesetzt. Dabei nimmt die Funktion als ersten Parameter den kompletten Rohheader entgegen. Dieser besteht aus einem Namen und einem Inhalt, welche durch einen Doppelpunkt voneinander getrennt sind. Als zweiten optionalen Parameter kann übergeben werden, ob der Header überschrieben werden soll, wenn er nochmals gesetzt wird. Standardmäßig steht dieser $replace-Parameter auf true, das bedeutet, es wird überschrieben. Als dritter Parameter wird angegeben, welcher Response-Code aufgrund des Headers gesetzt werden soll. Auch dies ist optional.

Interessante Header, die auf diese Weise zu setzen sind, sind beispielsweise die folgenden:

  • Location: http://www.fit4php.net/: Leitet den Browser auf die angegebene URL um. Dieser Header sorgt gleichzeitig dafür, dass der korrekte Statuscode 302 während des Zurücksendens gesetzt wird.
  • HTTP/1.1 404 Not Found: Die Seite ist nicht vorhanden. Der korrekte Statuscode 404 wird automatisch gesetzt.
  • Content-Type: application/pdf: Setzt einen Content-Type, der vom Browser erkannt wird und dafür sorgt, dass in diesem Falle ein PDF korrekt angezeigt wird.
  • Content-Disposition: attachment; filename="name.pdf": Öffnet einen Downloaddialog im Browser und schlägt vor, dass die Datei als name.pdf gespeichert wird.
  • Content-Length: 1055: Die Länge des Responses. Dies ist besonders ratsam zu übermitteln, wenn große Downloads durchgeführt werden. So ist wird der Browser in die Lage versetzt, einen Fortschrittsbalken anzuzeigen.
  • Cache-Control: no-store, no-cache, must-revalidate: Führt dazu, dass nicht gecacht wird. Zusätzlich sollte man mit dem folgenden Header ein Datum in der Vergangenheit angeben, da einige alte Browser hiermit nicht korrekt umgehen.
  • Expires: Mon, 05 Dec 2016 10:00:00 GMT: Datum in der Zukunft, ab dem die geladene Seite nicht mehr gültig sein wird und neu geladen werden muss.

Wichtig bei dem Setzen der Header ist es, dass der Response noch nicht versandt worden ist. Mit der Funktion headers_sent() kann dies geprüft werden.

Mit der Funktion header_remove() lassen sich Header wieder entfernen. Wird die Funktion ohne Übergabe von Parametern aufgerufen, so werden alle Header entfernt. Sonst kann als einziger Parameter der String-Wert vor dem Doppelpunkt übergeben werden. Dann wird dieser Header entfernt.

Mit Hilfe von headers_list() lässt sich eine Liste aller bisher gesetzten Header ausgeben. Die Liste wird als ein Array zurückgegeben und umfasst auch von PHP gesetzte Headerinformationen sowie auch die Header, die zum Setzen von Cookies benutzt werden.

Die Header des Requests lassen sich ebenso verarbeiten. Diese können in PHP mit Hilfe der Funktion getallheaders() erfragt werden. Zurückgegeben wird wiederum ein Array.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert