hi,
Du leitest ihn mit einem freundlichen Hinweis auf die Login-Seite und bei einem erfolgreichem Login präsentierst du ihm die ursprünglich angeforderte Ressource.
Welche angeforderte Ressource? Wir reden/schreiben aneinander vorbei. Du schreibst von einer angeforderten Ressource, ich schreibe von Content-Negotiation.
Vielleicht hilft ein hinkender Vergleich: Language-Negotiation. Wenn Du meine Website in en anforderst, bekommst Du Seiten in en obwohl es auch de Seiten gibt. Du bekommst, je nach Sprachauswahl, einen komplett anderen Content geliefert, genauso mache ich das auch mit Seiten, die eine Authorization erfordern. Wenn im Browser als bevorzugte Sprache en eingestellt ist, wäre es doch absurd, alle anderen Seiten der anderen Sprachen mit einem Status (?) zu versehen und dann umzuleiten. Programmiertechnisch gesehen, könntest Du genausoo versuchen, aus Quadtraten Kreise zu machen ;)
Im Übrigen ist das zum Beispiel die Vorgehensweise von Facebook und anderen renommierten Netzwerken.
Ach was ;)
Wenn mir ein Freund beispielsweise einen Link zu einem Foto in seinem Facebookalbum schickt und ich ihn anklicke und das obwohl ich nicht eingelogt bin, darf ich mich erst einlogen und dann bekomme ich sofort das Foto zu sehen. Das nenne ich benutzerfreundlich.
Fragwürdige Freundschaften nenne ich das.
Wenn Facebook mir stattdessen eine 404-Fehlerseite präsentieren würde,
Vergleiche hinken. Dein Freund braucht kein FB um Dir ein Foto zu schicken, er muss Dich auch nicht auf eine Seite schicken, die ein Login erfordert und wenn, könnte er Die die Credentials mitteilen.
würde ich vermutlich als erstes meinem guten Freund am Puls fühlen und ihn fragen, warum er mir Fantasylinks schickt. Weil 404 eben aussagt, dass es die Seite nicht existiert.
Wenn Du mit CN arbeitest, Sonderfall Language-Negotiation, könnte es sein, dass auf einundderselben URL ein komplett anderer Content ausgegeben wird. Es kann aber auch sein, dass es einen URL, der auf der en Site vorhanden ist, auf der de Site nicht vorhanden ist, dafür gibt es den Status 404, was denn sonst: Das die Inhalte bereitstellende Programm kennt die Inhalte der anderen Sprachen, sprich die einzelnen namentlichen Seiten gar nicht.
Schließlich: Wenn ich CN für authorisierte Seiten verwende, wird alles ausgetauscht, d.h., eine /index.html im Webroot kann für einen nicht angemeldeten Benutzer was völlig anderes zeigen als einem, der eingeloggt ist, in beiden Fällen wäre der Status 200 OK.
Und überhaupt muss ich nicht jeden Blödsinn nachmachen, den andere machen, es wird auf der öffentlichen Seite ganz einfach keine Links mit Status 40* geben, fertig.
Sch??ne Gr???e,
Hotti
--
Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.