Hakuna matata!
Als Kunde würde ich sowas nicht haben wollen, dass mein Backend verlinkt werden kann.
Von Backend und Fronend war bisher gar nicht die Rede, da interpetierst du irgendwas in meine Aussagen, worauf ich gar nicht hinaus wollte. Aber auch ein Backend sollte meiner Meinung nach bookmarkable (gibt es dafür ein schönes deutsches Wort?) sein.
Das schafft kein Vertrauen, daran würde auch ein Status 401 nichts verbessern, den ein Anderer, nicht autorisierter Benutzer bekommen würde, wenn er MEIN Backend aufruft.
Wieso sollte das Misstrauen hervorrufen? Security by Obscurity? Wichtig ist doch, dass niemand unbefugtes tatsächlich Zugriff auf das Backend gelangt. Das Backend sollte deshalb hinter einem sicheren Login-System verborgen sein und nicht hinter einem "geheimen Link".
Irgendwann stoßen wir vielleicht auf die Ursache, dass man eingeloggt sein muss, um die Ressource sehen zu können.
Wer hätte das gedacht: Man muss eingeloggt sein, dass man die Seite genauso sieht wie der Kunde ;)
Wenn mir ein Kollege, ein Freund oder ein Kunde einen Link schickt, dann weiß ich nicht, ob er eingelogt war, als er den Link aus seiner Adresszeile kopiert hat. Wenn ich dem Link folge, und ich erhalte als Fehler nur "404 – Not Found", dann muss ich davon ausgehen, dass der Link kaputt ist, weil das Ziel eben nicht gefunden werden kann. Eine aussagekräftige Fehlermeldung ala "401 Unauthorized" symbolisert mir dagegen, dass ich eingelogt sein muss, um die Ressource sehen zu können.
Wie Sven bereits sinnvoll ergänzt hat, geht es bei den Status-Codes nur um ein technisches Detail. Wichtiger ist wohl, dass dem Nutzer eine verständliche Erklärung in menschlicher Sprache erfolgt, das kann sowohl auf einer 401-Seite, als auch auf einer 404-Seite geschehen. Ich erkenne aber keinen Nutzen darin, hier Mensch und Maschine mit widersprüchlichen Informationen zu versorgen.
Eine 401-Fehlermeldung hätte uns schneller auf den richtigen Dampfer gebracht.
Einem Kunden ists egal, wie IHR EURE interne Kommunikation abwickelt.
Das war nur ein Beispiel, mach aus "mir" und meinem "Arbeitskollegen" einfach "Kunde" und "sein bester Freund" und das Praxisbeispiel funktioniert immernoch.
Ein Kunde schenkt seinem Provider Vertrauen, weil er davon ausgeht, dass sein Backend (seine Kundenseite) nur von ihm selbst, mit seinen ganz persönlichen Zugangsdaten, aufgerufen werden kann.
Alles andere wäre auch inakzeptabel. Aber was hat das mit 404 vs. 401 zu tun?
“All right, then, I'll go to hell.” – Huck Finn