Björn Höhrmann: |(HTTP)|(BROWSER) POST-Formulare und Navigierbarkeit

Beitrag lesen

  1. In der HTTP-Spezifikation steht nichts darüber (es sei denn, ich habe etwas übersehen), was für eine Methode bei einem Location-Header f+r den nächsten Request verwendet werden soll (Ausnahme: bei PUT soll man danach GET verwenden) Hab' ich da was übersehen? Wenn nein (d.h. in der Spezifikation wird das offen gelassen), reagieren alle Browser so? Kann ich mich darauf verlassen?

RFC 1945 und RFC 2068 haben an sich verboten, dass bei einer Weiterleitung die Methode geändert wird. Es ist auch nicht logisch, das zu tun, da die Resource ja offensichtlich an einer anderen Stelle zu finden ist und dort angefragt werden muss bzw. die Daten dorthin geschickt werden müssen. Darüber haben sich allerdings viele Implementationen hinweggesetzt und verhalten sich, wie du es beschreibst. In RFC 2616 wurde speziell für diesen Zweck die Stati 303 und 307 eingeführt, das kannst du in Abschnitt 10.3.3 auch so nachlesen. Dort findest du auch den Hinweis:

Note: Many pre-HTTP/1.1 user agents do not understand the 303
      status. When interoperability with such clients is a concern, the
      302 status code may be used instead, since most user agents react
      to a 302 response as described here for 303.

  1. Gibt es bei dieser Methode noch weitere Nachteile?

Schon, das Verhalten der Benutzeragenten ist ja nicht unabsichtlich und du setzt dich darüber hinweg. Das hat ggf. Nachteile für den Anwender.

  1. Könnte man das auch anders realisieren?

Nicht wirklich.