HTTP 401 tõrge vs HTTP 403 tõrge - olekukoodi vastused on selgitatud

Oleme juba varem üksikasjalikult käsitlenud 403 (keelatud) HTTP-tõrkekoodi, kuid sellel on ka peaaegu identne õde-vend.

Mis siis täpselt on 401 (volitamata) ja 403 (keelatud) olekukoodi vahe? Kindlasti tähendavad nad sama asja? Vaatame lähemalt!

RFC standardid

Kõige ajakohasem RFC standard, mis määratleb 401 (volitamata), on RFC 7235

401 (volitamata) olekukood näitab, et taotlust ei ole rakendatud, kuna sellel puudub sihtressurssi jaoks kehtiv autentimismandaat ... Kasutajaagent VÕIB taotlust korrata uue või asendatud loa päise väljaga.

Kusjuures 403 (Keelatud) on viimati määratletud RFC 7231-s

Olekukood 403 (Keelatud) näitab, et server sai päringust aru, kuid keeldub selle autoriseerimisest ... Kui päringus esitati autentimismandaadid, peab server neid juurdepääsu andmiseks ebapiisavaks.

Üldised põhjused

Nagu eelmises artiklis mainitud, võib tõrge 403 ilmneda siis, kui kasutaja on sisse loginud, kuid neil pole taotletud ressursile juurdepääsemiseks piisavalt õigusi. Näiteks võib üldine kasutaja proovida laadida administraatori marsruuti.

Kõige ilmsem aeg, kui 401 tõrge ilmneb, on siis, kui te pole üldse sisse loginud või olete vale parooli sisestanud.

Need on selle vigade paari kaks kõige levinumat põhjust.

Vähem levinud põhjused

Mõnel juhul pole see siiski nii sirgjooneline kui see.

403 viga võib ilmneda piirangute tõttu, mis ei sõltu täielikult sisselogitud kasutaja mandaatidest.

Näiteks võib server olla lukustanud teatud ressursid, et lubada juurdepääsu ainult eelnevalt määratletud IP-aadresside vahemikust, või kasutada geoblokeerimist. Viimasest on võimalik VPN-iga mööda hiilida.

401 tõrkeid võib ilmneda isegi siis, kui kasutaja sisestab õiged mandaadid. See on haruldane asi ja see võib olla midagi sellist, millega tõeliselt kokku puutute alles omaenda autentitud taguotsade väljatöötamisel. Kuid kui autoriseerimise päis on valesti vormistatud, tagastab see 401.

Näiteks võib teil olla JWT (JSON-i veebimärk), mille soovite lisada päringu päisesse ja mis eeldab vormingut Authorization: Bearer eyJhbGci......yJV_adQssw5c. Kui unustaksite sõna „Kandja” enne JWT-d, ilmneks viga 401.

Olen ise selle probleemiga kokku puutunud, kui testin Postmaniga arendamisel olevaid API-sid ja unustan autentsepäiste õige süntaksit!

See selleks

Loodan, et see kõrvaldab segaduse nende väga sarnaste vigade ümber.

Kui leiate, et see on kasulik või soovite vaidlustada või pikendada siin tõstatatut, võtke minuga kindlasti ühendust Twitteris @JacksonBates.