Preskoči na vsebino

HTTP kodi stanja

Odgovor HTTP se začne s tristoličnim kodom in kratko frazio razloga. Prva cifra je celoten povzetek: 1xx je začasna, 2xx je uspešna, 3xx kaže drugam, 4xx okrivlja zahtevo, 5xx okrivlja strežnik. Če se spomniš samo tega, lahko prebereš dnevnik, ki ga nikoli pred tem nisi videl.

Fraze razloga tukaj so tiste iz RFC-jev v angleščini, ker je to tisto, kar potuje po žici — strežnik pošlje "Not Found", ne prevoda tega, in fraza, ki jo grephiš v dnevniku, mora ujemati bajte, ki so bili dejansko poslani.

Razlike, ki povzročajo pravo težavo, so znotraj razredov in ne med njimi: 401 proti 403, 301 proti 308 in 502 proti 503 vsaka odgovori drugačno vprašanje o tem, kaj storiti naslednje in je vsaka rutinsko uporabljena za drugo.

1xx — Informativno

3

Začasna: odgovor ni končni in slediti bo drugega.

KodaRazlog frazaKaj to pomeni
100ContinuePrejete glave, nadaljuj s pošiljanjem telesa.
101Switching ProtocolsPreklapljanje protokolov — rokovanje WebSocket.
103Early HintsZgodnje namige: predhod te vire med pripravo pravega odgovora.

2xx — Uspešnost

5

Zahteva je bila prejeta, razumljena in sprejeta.

KodaRazlog frazaKaj to pomeni
200OKUspešno, s telesom.
201CreatedUstvarjeno.Bi moral nositi Location glavo, ki kaže na novi vir.
202AcceptedSprejeto za obdelavo, do katere ni prišlo.
204No ContentUspešno in namerno ni telesa.Pravilen odgovor na DELETE ali prihranek z ničemer za povrnitev.
206Partial ContentDelna vsebina — odgovor na zahtevo Range. Nadaljive prenose.

3xx — Preusmeritev

6

Vir je drugje ali je vaša zbirka predpomnilnika še vedno dobra.

KodaRazlog frazaKaj to pomeni
301Moved PermanentlyTrajno premaknjeno. Posodobi svoje povezave; predpomnilniki ga lahko hranijo za vedno.
302FoundNajdeno — časovna preusmeritev.Pogosto izvedeno kot preklapljanje metode na GET, ki 307 popravi.
303See OtherPojdi drugam: pridobi rezultat z GET. Preusmeritev po POST formuli.
304Not ModifiedNi spremenjena — vaša zbirka predpomnilnika je aktualna. Poslano brez telesa.
307Temporary RedirectČasovna preusmeritev, metoda in telo ohranjena.
308Permanent RedirectTrajno preusmeritev, metoda in telo ohranjena.

4xx — Napaka odjemalca

14

Zahteva je problematična. Ponovno je bo nespremenjena ne uspela.

KodaRazlog frazaKaj to pomeni
400Bad RequestStrežnik sploh ni mogel razčleniti zahteve.
401UnauthorizedNe avtentikovano — strežnik ne ve, kdo si.Poimenovano Unauthorized, vendar to pomeni neautentificirano. Bi moral vključiti WWW-Authenticate.
403ForbiddenAvtentificirano in vedno ni dovoljeno. Bolje poverilnice ne bodo pomagale.
404Not FoundNobenega takega vira in strežnik ne bo rekel, ali je tam kdaj obstajal.
405Method Not AllowedNapačna metoda za ta URL.Mora navedati tiste, ki delujejo v glavi Allow.
406Not AcceptableNič razpoložljivo v obliki, ki jo bo prevzel tvoj Accept glava.
409ConflictNasprotuje trenutnemu stanju — ureditev glede na zastarelo različico.
410GoneOdšlo: obstajalo je in je bilo namerno odstranjeno. Močnejše kot 404.
413Content Too LargeTelo je večje od tistega, kar strežnik sprejema.
415Unsupported Media TypeStrežnik ne obravnava te Content-Type.
418I'm a teapotSem čajnik. Šala iz aprila 1998 je trajno rezervirana.
422Unprocessable ContentPravilno razčlenjeno, vsebina neveljavna — manjkajoče polje, slaba vrednost.
429Too Many RequestsStopnja omejena.Pred ponovnim poskusom poiščite Retry-After in se eksponentno umikajte.
451Unavailable For Legal ReasonsBlokiran iz pravnih razlogov. Številka je namenoma Fahrenheit 451.

5xx — Napaka strežnika

6

Zahteva je lahko v redu. To so tiste, ki so vredne ponovnih poskusov.

KodaRazlog frazaKaj to pomeni
500Internal Server ErrorNeobdelana napaka na strežniku. Nič za popravilo na vaši strani.
501Not ImplementedStrežnik sploh ne izvaja te metode.
502Bad GatewayProxy je dosegel upstream strežnik in nazaj dobil nekaj neuporabljivo.
503Service UnavailableNamerno ne služi — preplavljeni ali v vzdrževanju.Status, ki bi moral nositi Retry-After.
504Gateway TimeoutProxy je obdržal čakanje na upstream strežnik.
505HTTP Version Not SupportedVerzija HTTP v zahtevi ni podprta.

FAQ

Kakšna je razlika med 401 in 403?
401 Unauthorized pomeni, da zahteva ni bila avtentificirana — strežnik ne ve, kdo si, in pravilno 401 vključuje WWW-Authenticate glavo, ki ti pove, kako to dokazati. 403 Forbidden pomeni, da natanko ve, kdo si, pa še vedno ne smeš imeti tega. Ponovno poskušanje 403 s boljšimi poverilnicami za isto identiteto ne bo pomagalo.
Naj uporabim 301 ali 308 za preusmeritev?
308, če metoda važna. Zgodovinsko sta bila 301 in 302 široko izvedena kot "preusmeritvi in prebalov na GET", kar tiho pretvori POST v GET. 307 in 308 sta bila predstavljena, da obljubljata, da se metoda in telo ohranita. Za trajno premik strani, ki je samo kdaj pridobljena, 301 ostaja najboljši razumljiv izbor.
Kaj 422 pomeni, da 400 ne?
400 Bad Request pomeni, da strežnik sploh ne more razumeti zahteve — slabše oblikovan JSON, pokvarjena glava. 422 Unprocessable Content pomeni, da je bil pravilno razčlenjen in vsebina je napačna: pravilno oblikovano telo z manjkajočim obveznim poljem ali datuma v preteklosti. Delitev je koristna prav zato, ker je popravek odjemalca drugačen v vsakem primeru.
Ali je 418 resnična koda stanja?
Resnična je v tem, da je registrirana in vsaka knjižnica HTTP jo pozna, in šala v tem, da prihaja iz aprila 1998 Norcev Hyper Text Coffee Pot Control Protocol. Poskusi, da bi ponovno zahtevali števila za praktično uporabo, so bili zavrnjeni, zato je trajno rezervirana za čajnike.
Zakaj je 503 drugačna od 502?
502 Bad Gateway pomeni, da je proxy dosegel upstream strežnik in nazaj dobil nekaj neuporabljivo. 503 Service Unavailable pomeni, da sam strežnik zdaj namerno ne služi — preplavljeni ali v vzdrževanju — in je tisti, ki bi moral nositi glavo Retry-After, ker je tisti, ki je pričakovati, da se bo okreval.