Hi!
Nun könnte ich mit meinen Fähigkeiten lokal ein html-Dokument mit entsprechendem Formular benutzen und mit php auf dem Server prüfen, ob die Anmeldung korrekt war und dann das eigentliche Formular ausliefern oder wenn nicht (ohne Anmeldung oder bei falscher Anmeldung) den 404 senden.
Ja, das ist so üblich, wenn man Ressourcen, die nur für gewisse Nutzergruppen zugänglich und verlinkbar sein sollen, für den Rest der Welt verstecken will.
Aber gibt es auch eine einfachrere Methode?
Ich denke nicht. Die Schritte, die du oben beschreibst, müssen so oder ähnlich abgearbeitet werden. Ob das nun PHP ist oder eine andere Sprache, ob das auf dieser oder einer höheren Software-Ebene erfolgt.
Kann man HTTP-Authentifizierung in der Art benutzen, wenn ja wie?
Kann man schon. Dann ist aber bekannt, dass die Ressource existiert und geschützt ist. *Das* willst du ja anscheinend vermeiden.
Oder fragt der Server zwangsweise nach dem Passwort, wenn er eins erwartet?
Ja, sofort.
Bei HTTP Basic Auth wird der erste GET-Request mit einem 401 Authorization Required beantwortet, zusammen mit entsprechenden Headern. Das löst den Passwort-Dialog im Browser aus. Der Browser schickt dann einen weiteren GET-Request *mit* den Credentials. Den beantwortet der Server dann mit einem 200 OK.
Bei Folge-Requests auf dieselbe URL und Unterpfade schickt der Browser automatisch die Credentials mit, sodass keine weiteren 401 erzeugt werden. Das gilt aber nur für die Browsersession.
Außer mit dem initialen 401 bringt man den Browser auch nicht dazu, einfach mal Credentials mitzuschicken.
Kann es eigentlich irgendwelche Probleme geben, wenn man Inhalte mit einer 404-Fehlerseite ausliefert? Irgendwas in der Art, daß der Browser dann gewisse Dinge anders macht wodurch die Funktionalität eingeschränkt ist, z.B. bei einem Formular? (Mir ist schon klar, daß das browserspezifisch sein kann.)
Ja, das kann sein. Manche Browser zeigen gar nicht die Antwort des Servers an, sondern eine eigene Seite. Manche zeigen die HTML-Antwort des Servers nur an, wenn sie gewisse Kriterien erfüllt (z.B. Response-Größe). Ja, das ist browserspezifisch.
Falls sie die HTML-Antwort des Servers anzeigen, so wird das Dokument in aller Regel genauso verarbeitet wie HTML-Dokumente, die mit 200 ausgeliefert werden. Alles funktioniert darin wie gehabt.
Wenn es einem recht ist, wenn zumindest ein menschlicher Besucher einen relevanten Inhalt erkennt aber maschinell (durch einen Bot) der Status 404 verarbeitet werden soll, muß man dann mit Einschränkungen bei der menschlichen Nutzung rechnen?
Diese Frage verstehe ich leider nicht. Kannst du sie umformulieren?
Grüße
Mathias