HTTP 401 hiba vs HTTP 403 hiba - az állapotkód válaszai elmagyarázva

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.