Preskoči na sadržaj

HTTP statusni kodovi

HTTP odgovor započinje troznamenkastim kodom i kratkom razlogom. Prva znamenka je cijeli sažetak: 1xx je privremeno, 2xx je uspjelo, 3xx pokazuje negdje drugdje, 4xx okrivljuje zahtjev, 5xx okrivljuje poslužitelj. Ako se sjeti samo toga, možete pročitati zapisnik koji niste nikada vidjeli.

Razlozi navedeni ovdje su oni iz RFC-a, na engleskom, jer je to što putuje na žici — poslužitelj šalje "Not Found", ne prijevod toga, i fraza koju tražite u zapisniku mora odgovarati bajtovima koji su zapravo poslani.

Razlike koje stvaraju stvarnu nevolju su unutar klasa, a ne između njih: 401 nasuprot 403, 301 nasuprot 308, i 502 nasuprot 503 svaki odgovara drugačitom pitanju o što napraviti dalje, i svaki se rutinski koristi za drugi.

1xx — Informativi

3

Privremeno: odgovor nije finalan i slijedi drugi.

KodRazlog frazomŠto to znači
100ContinueZaglavlja primljena, nastavi s slanjem tijela.
101Switching ProtocolsPromjena protokola — rukovanje WebSocket-om.
103Early HintsRani savjeti: učitajte unaprijed te resurse dok se pravi odgovor priprema.

2xx — Uspjeh

5

Zahtjev je primljen, razumljiv i prihvaćen.

KodRazlog frazomŠto to znači
200OKUspjeh, s tijelom.
201CreatedKreirano.Trebalo bi nositi Location zaglavlje koje pokazuje na novi resurs.
202AcceptedPrihvaćeno za obradu, što se još nije desilo.
204No ContentUspjeh, i namjerno bez tijela.Odgovor je pravi; trebalo bi DELETE da nosi Location zaglavlje.
206Partial ContentParcijalni sadržaj — odgovor na zahtjev Range. Prenosivi preuzimanja.

3xx — Preusmjeravanje

6

Resurs je drugdje, ili vaša kopija u cacheu je još dobra.

KodRazlog frazomŠto to znači
301Moved PermanentlyPremješteno trajno. Ažurirajte veze; cachevi mogu zadržati ovo zauvijek.
302FoundPronađeno — privremeno preusmjeravanje.Široko se provodi kao prebacivanje metode na GET, što 307 ispravlja.
303See OtherVidi ostalo: dohvati rezultat s GET-om. Preusmjeravanje nakon obrasca POST.
304Not ModifiedNije izmijenjeno — vaša kopija u cacheu je sveža. Poslano bez tijela.
307Temporary RedirectPrivremeno preusmjeravanje, metoda i tijelo čuvana.
308Permanent RedirectTrajno preusmjeravanje, metoda i tijelo čuvana.

4xx — Greška klijenta

14

Zahtjev je problem. Ponavljanje ga neizmijenjeno će ponovno neuspjeti.

KodRazlog frazomŠto to znači
400Bad RequestPoslužitelj nije mogao analizirati zahtjev uopće.
401UnauthorizedNije autentificirano — poslužitelj vas ne poznaje.Imenovan Unauthorized, ali znači neautentificirano. Trebalo bi da uključi WWW-Authenticate.
403ForbiddenAutentificirano i još uvijek nije dozvoljeno. Bolji akredivi neće pomoći.
404Not FoundNema takvog resursa, i poslužitelj neće reći je li ikada bio.
405Method Not AllowedPogrešna metoda za ovaj URL.Trebalo bi biti popis onih koji rade u Allow zaglavlju.
406Not AcceptableNišta dostupno u obliku koji će Accept zaglavlje uzeti.
409ConflictSukobljava se s trenutnim stanjem — izmjena nasuprot zastarjeloj verziji.
410GoneOdišlo: postojalo je i namjerno je uklonjeno. Jače nego 404.
413Content Too LargeTijelo je veće nego što poslužitelj prima.
415Unsupported Media TypePoslužitelj ne obrađuje ovu Content-Type.
418I'm a teapotJesam čajnik. Šala iz 1998. Aprilske Hyper Text Coffee Pot Control Protocol-a, trajno rezervirana.
422Unprocessable ContentAnalizirano ispravno, sadržaj nevaljani — nedostajuće polje, loša vrijednost.
429Too Many RequestsOgraničeno prema brzini.Prije nego što se ponovno pokušate, tražite Retry-After i povucite se eksponencijalno.
451Unavailable For Legal ReasonsBlokiran iz zakonskih razloga. Broj je nagnuće prema Fahrenheitu 451.

5xx — Greška poslužitelja

6

Zahtjev može biti dobro. Ovo su oni koji su vrijedni ponovnog pokušaja.

KodRazlog frazomŠto to znači
500Internal Server ErrorNeobrađena greška na poslužitelju. Ništa za ispravljanje na vašoj strani.
501Not ImplementedPoslužitelj uopće ne provodi ovu metodu.
502Bad GatewayPosrednik je dosegao upstream poslužitelj i dobio nešto neupotrebljivo natrag.
503Service UnavailableNamjerno ne servira — preplavljeno ili u održavanju.Status koji bi trebao nositi Retry-After.
504Gateway TimeoutPosrednik je odustao od čekanja na upstream poslužitelj.
505HTTP Version Not SupportedVerzija HTTP-a u zahtjevu nije podržana.

FAQ

Koja je razlika između 401 i 403?
401 Unauthorized znači da zahtjev nije autentificiran — poslužitelj vas ne poznaje, i pravi 401 uključuje WWW-Authenticate zaglavlje koje vam govori kako to dokazati. 403 Forbidden znači da vas točno poznaje i vam i dalje ne smijete imati ovo. Ponovni pokušaj 403 s boljim akreditivima za isti identitet neće pomoći.
Trebam li koristiti 301 ili 308 za preusmjeravanje?
308 ako metoda važna. Povijesno su 301 i 302 prošireni kao "preusmjeri i promijeni na GET", što tiho pretvara POST u GET. 307 i 308 su uvedeni da obećaju metoda i tijelo se čuvaju. Za trajni pomak stranice koja se samo ikada dohvaća, 301 ostaje najbolje razumljevi izbor.
Što znači 422 što 400 nema?
400 Bad Request znači da poslužitelj nije mogao razumjeti zahtjev uopće — neoblikovani JSON, prekinuto zaglavlje. 422 Unprocessable Content znači da se analizirao fino i sadržaj je loš ionako: dobro oblikuje tijelo s nedostajućim obaveznim poljem ili datumom u prošlosti. Podjela je korisna upravo jer je ispravka klijenta drugačita u svakom slučaju.
Je li 418 pravi statusni kod?
Pravi je u tome što je registriran i svaki HTTP biblioteka ga poznaje, i šala je što dolazi iz 1998. Aprilske šale Hyper Text Coffee Pot Control Protocol-a. Pokušaji da se broj vrati za praktičnu upotrebu su odbijeni, pa je trajno rezerviran za čajnike.
Zašto se 503 razlikuje od 502?
502 Bad Gateway znači da je posrednik dosegao upstream poslužitelj i dobio nešto neupotrebljivo natrag. 503 Service Unavailable znači da je sam poslužitelj namjerno ne servira upravo sada — preplavljeno, ili u održavanju — i to je ono koje bi trebalo nositi Retry-After zaglavlje, jer je to ono koje se očekuje da se oporavi.