Hallo,
Vielleicht nur dann verwenden, wenn der Client über HTTP/1.1 den Request abgesetzt hat?
Das muss ja nicht heissen, dass er mit 303 richtig umgehen kann... aber das wäre ein mögliches Kriterium, wenn dein Webserver dir das mitteilt.
Nun ja - das werde ich wohl testen müssen, aber ich denke, dass kein Browser (außer vielleicht IE) damit Probleme hat. Das verwendete Protokoll steht in der CGI-Variable SERVER_PROTOCOL, ist also kein Problem.
Ich würde das ganze dann so machen:
- Wenn der Request per HTTP/1.1 kam, dann 303er mit Location-Header
- Wenn nicht, dann einfach die Seite anzeigen
evtl. noch ein Check, ob der Browser bekannt ist als einer, der sich _nicht_ an die Spec hält und dem dann eine 200er mit Location-Header vorsetzen (aber das überlege ich mir noch)
Die Benutzeragenten verhalten sich ja so, "wie ich es will"; es geht hier ja um den Standard, über den ich mich hinwegsetze (wenn ich 200+Location verwende)
Du meinst 302, bei 200 funktioniert hier mit Sicherheit gar nichts mehr.
Ich meine schon 200. Wenn ich in PHP folgendes mache:
Header ("Location: http://www.google.com/");
exit;
dann sieht die _minimalisierte_ Server-Antwort so aus:
HTTP/1.1 200 OK
Location: http://www.google.com/
Jeder Browser, den ich kenne, leitet jetzt weiter (und nimmt immer GET um auf diese Resource zuzugreifen). 302 wollte ich nicht nehmen, da die Resource ja nicht "moved" ist; und die o.g. Methode wird sehr häufig in PHP-Scripts verwendet. (Jetzt sag bloß die ist nicht Standardkompatibel?)
Grüße,
Christian