Situato qui , RFC 7231 riguarda esclusivamente il protocollo HTTP (codici di stato)
Sto sviluppando un'applicazione web interna per il dipartimento della mia università e sono in un vicolo cieco (probabilmente non importante).
Sto riducendo l'accesso degli utenti alle risorse in base al ruolo (studenti, docenti, personale) e funziona correttamente. Tuttavia, quando un utente tenta di accedere a una risorsa e ha accesso negato , le specifiche HTTP dicono che dovrei usare un 403: Forbidden
, che indica che l'utente non ha accesso alla risorsa o" nasconde "la risorsa restituendo un 404: Not Found
.
Potrei farlo, ma voglio rendere il sito un po 'più user-friendly e invece reindirli alla loro pagina precedente con un flash ( NOTE che ho fatto non dire " Adobe Flash '; vedi commenti) invece di avere una pagina 403/4
con link a diverse parti del sito. Penso che sia una caratteristica piuttosto UX-friendly.
Tuttavia, ciò comporterebbe il reindirizzamento tramite 303: See Other
, che più o meno viola lo standard.
Ovviamente non importa in quanto questo è un progetto in-house per un laboratorio della mia università e nessuno qui si lamenterà, ma immagina che questo sito fosse sotto l'ombrello di Google.
Quindi è una cattiva pratica deviare dallo standard [HTTP] come questo?
Modifica : sembra esserci molta confusione, quindi fammi fare un esempio:
L'utente con id = 1
tenta di accedere a mydomain.com/projects/2
tramite il suo profilo (facendo clic su un collegamento). L'utente 1
è il proprietario del progetto 2
, quindi il server accetta le richieste e esegue il rendering della pagina con il progetto.
L'utente 1
quindi digita mydomain.com/projects/3
nell'URL. L'utente 1
è non il proprietario del progetto 3
. Pertanto, quando la richiesta arriva al server, il server lo rifiuta .
Ora ci sono due opzioni:
1.) Il server reindirizza l'utente a /projects/2
(la pagina visitata in precedenza, che ovviamente sarebbe sempre valida) con una notifica utile in alto come "Scusa, ma non avere il permesso di accedere a XXXX " o
2.) Il server esegue il rendering di una pagina 403: Forbidden
o di una pagina 404: Not Found
, che probabilmente avrebbe lo stesso testo (se fosse un 403
) e forse anche un link "indietro" abilitato per JavaScript
Personalmente, il reindirizzamento sembra molto più user friendly per me, ed elimina vedere una pagina ostile come 403: Forbidden
e dover fare clic su un pulsante "indietro". Tuttavia, fare il reindirizzamento va contro lo standard del protocollo HTTP.