403 Prepovedano in 401 Nepooblaščeni odzivi HTTP
Kakšen je pravilen odziv HTTP za spletno stran, ki obstaja, vendar za katero uporabnik nima zadostnih pravic (ni prijavljen ali ne pripada ustrezni skupini uporabnikov)? 401? 403? Kaj drugega? Kar sem doslej prebral o vsakem od njih, ni povsem jasno glede razlike med njima. Kateri primeri uporabe so primerni za vsak odgovor?
2512
3
Jasna razlaga Daniel Irvine:
Nekaj težav je z 401 Unauthorized, kodo stanja HTTP za napake pri avtentikaciji. In to je točno to: namenjena je avtentikaciji in ne avtorizaciji.
Še ena lepa slikovna oblika uporabe kod stanja http.
Glej RFC2616:
401 Nepooblaščeno:
Če je zahteva že vsebovala poverilnice za avtorizacijo, potem odgovor 401 pomeni, da je bila avtorizacija za te poverilnice zavrnjena.
403 Prepovedano:
Posodobitev
Iz vašega primera uporabe je razvidno, da uporabnik ni overjen. Vrnil bi 401.
Uredi: RFC2616 je zastarel, glejte RFC7231 in RFC7235._
V skladu s standardom RFC 2616 (HTTP/1.1) se 403 pošlje, ko:
Strežnik je razumel zahtevo, vendar je noče izpolniti. Avtorizacija ne bo pomagala, zato zahteve NE MORATE ponoviti. Če metoda zahteve ni bila HEAD in želi strežnik javno objaviti, zakaj zahteva ni bila izpolnjena, MORA v entiteti opisati razlog za zavrnitev. Če strežnik teh informacij ne želi dati na voljo odjemalcu, se lahko namesto tega uporabi statusna koda 404 (Ni najdeno).
Z drugimi besedami, če odjemalec lahko dobi dostop do vira z avtentikacijo, je treba poslati sporočilo 401.