Sven Rautenberg: HTTP Refresh:/Location: statt <META "refresh">

Beitrag lesen

Moin!

ich habe mal wieder eine größtenteils blödsinnige Frage(*); eine Seite
vom Browser automatisch neu laden zu lassen kann man ja mittels
<META HTTP-EQUIV="refresh" CONTENT="..."> erreichen,
und ich meine gelesen zu haben, daß alle Meta angaben mit HTTP-EQUIV
das Equivalent zu HTTP-Headern sind (daher der Name?!?) - kann man
denn nun in auch diesem sepziellen Fall den Wert aus content=""
innerhalb des HTTP-Antwortkopfes übertragen?

Korrekt gelesen: http-equiv sollte für "HTTP Equivalent" stehen. Der Browser soll diese Angabe so behandeln, als ob sie im HTTP-Header stünde.

Und falls das mgl. ist, heißt die Zeile dann Refresh: oder muß man
Location: oder dergl. verwenden?

Hängt davon ab, was du erreichen willst. Ein Redirect wird mit "Location: URL" erreicht, ein zeitlich nicht sofortiger Refresh (der üblicherweise eine komplette Seite enthält, die zuerst dargestellt wird) mit "Refresh". Das Format sollte mit denen des Meta-Tags identisch sein. Der Grund, warum es keinen Meta-Tag für Location gibt, ist simpel: Dieser Header tritt bei Redirects auf - die enthalten keinen HTTP-Body - es kann also keinen Meta-Tag geben.

(*) brauche diese Variante weil ich nur den <body>-Teil einer Datei
selber bestimmen kann, der <head> Bereich schon mehr oder weniger
ausgegeben ist und ich nur noch HTTP-header mit auf den Weg geben
könnte.

Mit HTTP-Headern zu arbeiten ist viel besser, als es mit Meta-Tags zu machen, da die Browser den HTTP-Header beachten müssen, und er bei allen möglichen Ressourcen (auch Bildern, Downloads etc.) funktioniert - Meta nur in HTML-Ressourcen.

- Sven Rautenberg