Ebben a cikken a HTTP státuszkódokat és a hozzájuk kapcsolódó csoportosításokat szeretném bemutatni nektek.
A REST API-k a HTTP-válaszüzenetek ‘status’ részét használják arra, hogy tájékoztassák az kérés igénylőjét a kérésük átfogó eredményéről.
Az RFC 2616 a status szintaxisát az alábbiak szerint határozza meg:
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
A szabvány meghatározza ezeket az állapotkódokat, amelyekkel az ügyfél kérésének eredményét lehet közölni.
Az állapotkódok öt kategóriába sorolhatók.
-
1xx: Információs
Átviteli protokoll szintű információkat közöl. -
2xx: Kérés teljesítve
Jelzi, hogy az ügyfél kérése sikeresen elfogadásra és végrahajtásra került. -
3xx: Átirányítás
Azt jelzi, hogy az ügyfélnek további lépéseket kell tennie a kérés teljesítéséhez. -
4xx: Felhasználói hiba
A hibaállapotkódok ezen kategóriája az ügyfelekre mutat. -
5xx: Szerverhiba
A kiszolgáló oldalon bekövetkezett hibákat jelölik ezekkel a válaszkódokkal
1xx Státusz kód [Információs]
Státusz kód
|
Leírás
|
---|---|
100 Continue
|
Időközi válasz. Jelzi az ügyfélnek, hogy a kérés kezdeti részét megkapta, és a kiszolgáló még nem utasította el. Az ügyfélnek folytatnia KELL a kérés további részének elküldésével, vagy ha a kérés már befejeződött, figyelmen kívül kell hagynia ezt a választ. A kiszolgálónak a kérés befejezése után egy végső választ KELL küldenie.
|
101 Switching Protocol
|
Az ügyfél Upgrade request fejlécére válaszul küldött üzenet, amely jelzi, hogy a kiszolgáló milyen protokollra vált át.
|
102 Processing (WebDAV)
|
Azt jelzi, hogy a kiszolgáló megkapta és feldolgozza a kérelmet, de még nem áll rendelkezésre válasz.
|
103 Early Hints
|
Elsősorban a Link fejléccel együtt használható. Azt javasolja, hogy a felhasználói kezdje el az erőforrások előtöltését, amíg a kiszolgáló elkészíti a végleges választ.
|
2xx státuszkódok [Sikeres]
Státusz kód
|
Leírás
|
---|---|
200 OK
|
Jelzi, hogy a kérés sikeres volt.
|
201 Created
|
Jelzi, hogy a kérés sikeres volt, és ennek eredményeképpen új erőforrás jött létre.
|
202 Accepted
|
Azt jelzi, hogy a kérelem beérkezett, de még nem fejeződött be. Általában naplófutó kéréseknél és kötegelt feldolgozásnál használják.
|
203 Non-Authoritative Information
|
Azt jelzi, hogy a visszaküldött metainformáció az entitásfejlécben nem az eredeti kiszolgálótól származó végleges készlet, hanem egy helyi vagy harmadik féltől származó másolatból származik. A bemutatott halmaz lehet az eredeti változat részhalmaza vagy szuperhalmaza.
|
204 No Content
|
A kiszolgáló teljesítette a kérést, de nem kell válaszüzenetet küldenie. A kiszolgáló visszaküldheti a frissített metainformációkat.
|
205 Reset Content
|
Jelzi, hogy az ügyfél visszaállítja a dokumentumot, amely ezt a kérést küldte.
|
206 Partial Content
|
Akkor használatos, amikor a Range fejlécét egy erőforrásnak csak egy részét kéri.
|
207 Multi-Status (WebDAV)
|
Jelzi az ügyfél számára, hogy több művelet történt, és hogy az egyes műveletek állapota megtalálható a válasz testében.
|
208 Already Reported (WebDAV)
|
Lehetővé teszi az ügyfél számára, hogy közölje a kiszolgálóval, hogy ugyanazt az erőforrást (ugyanazzal a kötéssel) már korábban megemlítették. Soha nem jelenik meg valódi HTTP-válaszkódként az állapotsorban, csak a testekben.
|
226 IM Used
|
A kiszolgáló teljesített egy GET-kérést az erőforráshoz, és a válasz az aktuális példányra alkalmazott egy vagy több példány-manipuláció eredményének reprezentációja.
|
3xx Status Codes [átirányítás]
Státusz kód
|
Leírás
|
---|---|
300 Multiple Choices
|
A kérésnek egynél több lehetséges válasza van. A felhasználó-ügynöknek vagy a felhasználónak ezek közül kell választania.
|
301 Moved Permanently
|
A kért erőforrás URL címe véglegesen megváltozott. Az új URL-t a válasz Location fejléc mezője adja meg. Ez a válasz gyorsítótárba helyezhető, hacsak másképp nem jelezzük.
|
302 Found
|
A kért erőforrás URL címe ideiglenesen megváltozott. Az új URL-t a válasz Location mezője adja meg. Ez a válasz csak akkor gyorsítótárba helyezhető, ha a Cache-Control vagy Expires fejlécmező jelzi.
|
303 See Other
|
A válasz egy másik URI alatt található, és azt az erőforrás GET módszerével KELL lekérni.
|
304 Not Modified
|
Jelzi az ügyfélnek, hogy a válasz nem módosult, így az ügyfél továbbra is használhatja a válasznak ugyanazt a gyorsítótárazott változatát.
|
305 Use Proxy (Deprecated)
|
Jelzi, hogy a kért válaszhoz proxyn keresztül kell hozzáférni.
|
306 (Unused)
|
Ez egy fenntartott státuszkód, és már nincs használatban.
|
307 Temporary Redirect
|
Jelzi az ügyfélnek, hogy a kért erőforrást egy másik URI-n keresztül kapja meg, ugyanazzal a módszerrel, mint amit az előző kérésben használt. Hasonló a 302 Found-hoz, azzal a kivétellel, hogy ugyanaz a HTTP-módszer lesz használva, mint az előző kérésnél.
|
308 Permanent Redirect (experimental)
|
Jelzi, hogy az erőforrás mostantól állandóan egy másik URI-n található, amelyet a Location fejléc határoz meg. Hasonló a 301 Moved Permanently-hez, azzal a különbséggel, hogy ugyanazt a HTTP-módszert használja, mint az előző kérésnél.
|
4xx Status Codes (Kliens oldali hiba )
Státusz kód
|
Leírás
|
---|---|
400 Bad Request
|
A kérést a szerver nem értette meg a hibás szintaxis miatt. Az ügyfélnek MÓDOSÍTANI KELL a kérést mielőtt újra elküldi.
|
401 Unauthorized
|
Jelzi, hogy a kérelem felhasználói hitelesítési adatokat igényel. Az ügyfél megismételheti a kérést egy megfelelő Authorization fejlécmezővel.
|
402 Payment Required (Experimental)
|
Fenntartva jövőbeli használatra. Célja a digitális fizetési rendszerekben való felhasználás.
|
403 Forbidden
|
Jogosulatlan kérés. Az ügyfél nem rendelkezik hozzáférési jogokkal a tartalomhoz. A 401-től eltérően az ügyfél személyazonossága ismert a kiszolgáló számára.
|
404 Not Found
|
A kiszolgáló nem találja a kért erőforrást.
|
405 Method Not Allowed
|
A kérés HTTP-módszerét a kiszolgáló ismeri, de letiltották, és nem használható az adott erőforráshoz.
|
406 Not Acceptable
|
A kiszolgáló nem talál olyan tartalmat, amely megfelel a felhasználói ügynök által a kérelemben küldött ‘engedélyezett fejléc’-ben megadott kritériumoknak.
|
407 Proxy Authentication Required
|
Jelzi, hogy az ügyfélnek először hitelesítenie kell magát a proxynél.
|
408 Request Timeout
|
Azt jelzi, hogy a kiszolgáló nem kapott teljes kérést az ügyféltől a kiszolgáló által megadott időkorláton belül.
|
409 Conflict
|
A kérést nem lehetett befejezni az erőforrás aktuális állapotával való ütközés miatt.
|
410 Gone
|
A kért erőforrás már nem elérhető a kiszolgálón.
|
411 Length Required
|
A kiszolgáló elutasítja a kérés elfogadását meghatározott Content- Length nélkül. Az ügyfél megismételheti a kérést, ha érvényes Content-Length (tartalom hossz) fejlécmezőt ad hozzá.
|
412 Precondition Failed
|
Az ügyfél olyan előfeltételeket jelölt meg a fejlécében, amelyeket a kiszolgáló nem teljesít.
|
413 Request Entity Too Large
|
Akkor fordul elő, amikor az ügyfél kérésének mérete meghaladja a kiszolgáló fájlméret-korlátját. Ez általában akkor fordul elő, amikor egy ügyfél megpróbál nagyméretű fájlt feltölteni egy webkiszolgálóra, és a kiszolgáló 413 hibával válaszol, hogy figyelmeztesse az ügyfelet.
|
414 Request-URI Too Long
|
Az ügyfél által kért URI hosszabb, mint amit a kiszolgáló értelmezni tud.
|
415 Unsupported Media Type
|
A kiszolgáló nem támogatja a kérés Content-type-jában megadott médiatípust.
|
416 Requested Range Not Satisfiable
|
A kérésben a ‘Tartomány fejléc’ mezőben megadott tartomány nem teljesíthető.
|
417 Expectation Failed
|
Az Expect request header mező által jelzett elvárást a kiszolgáló nem tudja teljesíteni.
|
418 I’m a teapot (RFC 2324)
|
Áprilisi tréfaként lett definiálva, és nem várható, hogy a tényleges HTTP-kiszolgálók implementálják. (RFC 2324)
|
420 Enhance Your Calm (Twitter)
|
A Twitter Search and Trends API által visszaküldött érték, ha az ügyfél sebességkorlátozás alatt áll.
|
422 Unprocessable Entity (WebDAV)
|
A kiszolgáló megérti a kérés tartalmi típusát és szintaxisát, de a kiszolgáló valamilyen okból mégsem tudja feldolgozni a kérést.
|
423 Locked (WebDAV)
|
A erőforrás, ami a kérés teljesítéséhez szükséges, zárolt.
|
424 Failed Dependency (WebDAV)
|
A kérés egy korábbi kérés sikertelensége miatt ‘sikertelen’.
|
425 Too Early (WebDAV)
|
Azt jelzi, hogy a kiszolgáló nem hajlandó megkockáztatni egy olyan kérés feldolgozását, amelyet esetleg újrajátszanak.
|
426 Upgrade Required
|
A kiszolgáló megtagadja a kérés végrehajtását. A kiszolgáló feldolgozza a kérést, miután az ügyfél más protokollra frissít.
|
428 Precondition Required
|
Az eredetkiszolgáló megköveteli, hogy a kérelem feltételes legyen.
|
429 Too Many Requests
|
A felhasználó túl sok kérést küldött egy adott idő alatt (“rate limiting”).
|
431 Request Header Fields Too Large
|
A kiszolgáló nem hajlandó feldolgozni a kérést, mert a fejléc mezői túl nagyok/hosszúak.
|
444 No Response (Nginx)
|
Az Nginx kiszolgáló nem küld vissza információt az ügyfélnek, és lezárja a kapcsolatot.
|
451 Unavailable For Legal Reasons
|
A felhasználó-ügynök olyan erőforrást kért, amelyet jogilag nem lehet biztosítani.
|
499 Client Closed Request (Nginx)
|
Az ügyfél oldali kliens lezárja a kapcsolatot, miközben a HTTP-kiszolgáló feldolgozza a kérését, így a kiszolgáló nem tudja visszaküldeni a HTTP-fejlécet.
|
5xx Status Codes (Szerver oldali hiba)
Status Code
|
Description
|
---|---|
500 Internal Server Error
|
A kiszolgáló olyan váratlan körülménybe ütközött, amely megakadályozta a kérés teljesítését.
|
501 Not Implemented
|
A HTTP-módszert a kiszolgáló nem támogatja, és nem lehet kezelni.
|
502 Bad Gateway
|
A kiszolgáló érvénytelen választ kapott, miközben átjáróként működött, hogy megkapja a kérelem kezeléséhez szükséges választ.
|
503 Service Unavailable
|
A kiszolgáló nem áll készen a kérés kezelésére.
(service restart vagy más ok miatt) |
504 Gateway Timeout
|
A kiszolgáló átjáróként működik, és nem kap időben választ egy kérésre.
|
505 HTTP Version Not Supported (Experimental)
|
A kérelemben használt HTTP-verziót a kiszolgáló nem támogatja.
|
506 Variant Also Negotiates (Experimental)
|
Azt jelzi, hogy a kiszolgálónak belső konfigurációs hibája van: a kiválasztott változat erőforrása úgy van konfigurálva, hogy maga is részt vegyen az átlátható tartalomtárgyalásban, és ezért nem megfelelő végpontja a tárgyalási folyamatnak.
|
507 Insufficient Storage (WebDAV)
|
A módszert nem lehetett végrehajtani az erőforráson, mert a kiszolgáló nem tudja tárolni a kérés sikeres végrehajtásához szükséges reprezentációt.
|
508 Loop Detected (WebDAV)
|
A kiszolgáló végtelen hurkot észlelt a kérés feldolgozása során.
|
510 Not Extended
|
A kérés további bővítése szükséges ahhoz, hogy a kiszolgáló teljesíteni tudja azt.
|
511 Network Authentication Required
|
Jelzi, hogy az ügyfélnek hitelesítenie kell magát a hálózati hozzáféréshez.
|
