Korábban már részletesen kitértünk a 403 (tiltott) HTTP hibakódra, de ennek is majdnem azonos testvére van.
Tehát mi a különbség a 401 (jogosulatlan) és a 403 (tiltott) állapotkód között? Bizonyára ugyanazt értik? Nézzük meg közelebbről!
RFC szabványok
A legfrissebb RFC szabvány, amely meghatározza a 401-et (jogosulatlan), az RFC 7235
A 401-es (jogosulatlan) állapotkód jelzi, hogy a kérelmet nem alkalmazták, mert hiányzik a hitelesítési hitelesítési adatok a célerőforráshoz ... A felhasználói ügynök megismételheti a kérést egy új vagy kicserélt Engedélyezés fejléc mezővel.Míg a 403-at (Tiltott) az RFC 7231 határozza meg legutóbb
A 403 (Tiltott) állapotkód azt jelzi, hogy a szerver megértette a kérést, de nem hajlandó engedélyezni ... Ha hitelesítési hitelesítő adatokat adtak meg a kérésben, a szerver úgy ítéli meg, hogy ezek nem elegendőek a hozzáférés megadásához.Gyakori okok
Amint az előző cikkben említettük, a 403-as hiba akkor következhet be, amikor a felhasználó bejelentkezett, de nincs elegendő jogosultsága a kért erőforráshoz való hozzáféréshez. Például egy általános felhasználó megpróbálhat betölteni egy „admin” útvonalat.
A legszembetűnőbb idő, amikor 401-es hibát tapasztal, az, amikor egyáltalán nem jelentkezett be, vagy helytelen jelszót adott meg.
Ez a két leggyakoribb oka ennek a hibapárnak.
Ritkább okok
Vannak olyan esetek, amikor ez nem annyira egyszerű, mint ez.
403 hiba léphet fel olyan korlátozások miatt, amelyek nem teljesen függenek a bejelentkezett felhasználó hitelesítő adataitól.
Például egy kiszolgáló lezárhatott bizonyos erőforrásokat, hogy csak egy előre meghatározott IP-címtartományból engedélyezze a hozzáférést, vagy használhat geoblokációt. Ez utóbbi VPN segítségével potenciálisan kijátszható.
401 hibák akkor is előfordulhatnak, ha a felhasználó megadja a megfelelő hitelesítő adatokat. Ez ritkán fordul elő, és olyasvalami, amellyel csak akkor találkozhat igazán, amikor saját hitelesített háttértárat fejleszt. De ha az engedély fejléce hibásan van formázva, akkor egy 401-et ad vissza.
Például lehet, hogy van egy JWT (JSON Web Token), amelyet fel szeretne venni a kérés fejlécébe, amely elvárja a formátumot Authorization: Bearer eyJhbGci......yJV_adQssw5c
. Ha elfelejtené a „Bearer” szót a JWT előtt, a 401 hibát tapasztalhatja.
Magam is belefutottam ebbe a problémába, amikor a fejlesztés alatt álló API-kat teszteltem a Postmannal, és megfeledkeztem a hiteles fejlécek helyes szintaxisáról!
Ez az
Remélem, hogy ez tisztázza az e nagyon hasonló hibák körüli zavart.
Ha hasznosnak találta ezt, vagy ha az itt felvetett dolgokat szeretné megtámadni vagy kibővíteni, bátran vegye fel a kapcsolatot velem a Twitteren @JacksonBates.