A lecke végére meg tudod mondani egy gyakori státuszkód jelentését, el tudod különíteni a kliens- és szerverhibákat, fel tudod ismerni az átirányítás fajtáit, és érted, miért nem azonos a HTTP-siker az üzleti sikerrel.
Miért van szükség státuszkódra?
Egy kérésre sokféle dolog történhet: az erőforrás megvan, átköltözött, nem létezik, a kérő nincs bejelentkezve, vagy a szerver elromlott. A kliensnek ezt géppel értelmezhető formában tudnia kell, mert másként kell viselkednie: megjelenítse a tartalmat, kövesse az új címet, kérjen bejelentkezést, vagy próbálkozzon később. A státuszkód háromjegyű szám, amely rövid, szabványos jelzést ad a kérés HTTP-szintű eredményéről.
Egy hiányzó kurzusoldal
$ curl -i http://localhost:8080/kurzusok/regi
HTTP/1.1 404 Not Found
Content-Type: text/html; charset=utf-8
...
<h1>Nem található</h1>
A 404 nem azt jelenti, hogy „nincs internet”. Éppen ellenkezőleg: a kérés eljutott egy válaszoló szerverig, amely a kért erőforrást nem találja a megadott címen. A böngésző a kódot, az ember pedig a törzsben lévő magyarázatot használja.
A kódcsaládok
A kód első számjegye tág kategóriát jelöl:
Család
Jelentés
Jellemző helyzet
1xx
Tájékoztatás
A feldolgozás még tart
2xx
Siker
A kérés HTTP-szinten teljesült
3xx
Átirányítás vagy további lépés
Másik cím használata, gyorsítótári példány használata
4xx
Kliensoldali hiba
A kérés így nem teljesíthető: hiányzó erőforrás, hiányzó jogosultság, hibás kérés
5xx
Szerveroldali hiba
A szerver nem tudta teljesíteni az (egyébként érvényes) kérést
flowchart TB
V[HTTP-válasz] --> K{Státuszkód első számjegye}
K -->|2| S[Siker]
K -->|3| T[További lépés szükséges]
K -->|4| C[A kérés így nem teljesíthető]
K -->|5| H[Szerveroldali hiba]
K -->|1| I[Tájékoztatás]
A 4xx nem erkölcsi ítélet a felhasználóról, az 5xx pedig nem mindig egyetlen szerver hibája. A kódcsalád csak az első támpont.
Siker: 200, 201, 204
200 OK: a kérés sikerült, a válasz általában tartalmaz törzset.
201 Created: új erőforrás jött létre (például sikeres jelentkezés); a Location fejléc az új erőforrás címét adhatja.
204 No Content: a művelet sikerült, de nincs mit visszaküldeni (például törlés).
$ curl -i -X DELETE http://localhost:8080/jelentkezesek/1
HTTP/1.1 204 No Content
Date: Sun, 11 Oct 2026 16:47:26 GMT
Átirányítás: 301, 302, 303, 307, 308 és 304
Az átirányítás azt mondja a kliensnek, hogy másik címen folytassa, a Location fejléc pedig megadja az új címet:
$ curl -iL http://localhost:8080/kurzusok
HTTP/1.1 301 Moved Permanently
Location: /kurzusok/webprog
...
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
...
<h1>Webprogramozás 1.</h1>
(A -L kapcsoló a curl-nek azt mondja, hogy kövesse az átirányítást; a böngésző ezt magától teszi. Ezért látszik a hálózati panelen két kérés egyetlen oldalmegnyitásra.)
A különböző kódok két dologban térnek el: tartós vagy ideiglenes az áthelyezés, és megőrzi-e a kliens a metódust. Az RFC 9110 szerint a 301 és a 302 esetén a kliens a POST-ot GET-re változtathatja (történeti okból), a 303 azt jelzi, hogy az eredményt GET-tel kell lekérni, a 307 és a 308 pedig megtiltja a metódus megváltoztatását.
Kód
Tartós?
Metódus megőrzése
Tipikus használat
301 Moved Permanently
tartós
változhat (POST → GET)
az oldal végleg új címre költözött
302 Found
ideiglenes
változhat
ideiglenes átirányítás
303 See Other
–
GET
űrlap elküldése után az eredményoldalra irányítás
307 Temporary Redirect
ideiglenes
megmarad
ideiglenes átirányítás metódusváltás nélkül
308 Permanent Redirect
tartós
megmarad
tartós átirányítás metódusváltás nélkül
A 304 Not Modified más természetű: gyorsítótári ellenőrzésnél jelzi, hogy a korábban eltárolt példány még használható (10. fejezet).
A kérés nem teljesíthető: 4xx
Kód
Jelentés
Mit tehet a kliens?
400 Bad Request
A kérés hibás (például érvénytelen formátum).
Javítsa a kérést.
401 Unauthorized
Hiányzik vagy érvénytelen a hitelesítés.
Jelentkezzen be.
403 Forbidden
A szerver érti, de megtagadja a kérést.
Új bejelentkezés nem biztos, hogy segít.
404 Not Found
Nincs ilyen erőforrás (vagy a szerver nem fedi fel).
Ellenőrizze a címet.
405 Method Not Allowed
A metódus az erőforrásra nem engedélyezett.
Másik metódust használjon.
406 Not Acceptable
Nincs a kliens igényeinek megfelelő változat.
Más Accept értéket kérjen.
409 Conflict
A kérés ütközik az erőforrás állapotával.
Oldja fel az ütközést.
415 Unsupported Media Type
A szerver nem támogatja a küldött formátumot.
Más Content-Type-ot küldjön.
429 Too Many Requests
Túl sok kérés érkezett (sebességkorlátozás).
Várjon; a Retry-After fejléc megadhatja, mennyit.
A 401 neve félrevezető, mert jellemzően hitelesítési hibát jelent (nem tudjuk, ki vagy), míg a 403 jogosultsági hiba (tudjuk, ki vagy, de nem szabad). Az RFC 9110 szerint a 401-es válasznak tartalmaznia kell a WWW-Authenticate fejlécet, amely megmondja, milyen hitelesítést vár. A 429-et az RFC 6585 vezette be, nem az RFC 9110.
Hibás kérésre példa:
$ curl -i -X POST http://localhost:8080/jelentkezesek -d 'nem json'
HTTP/1.1 400 Bad Request
...
A tartalomegyeztetésre (406) példa a következő leckében lesz.
Szolgáltatási hiba: 5xx
Kód
Jelentés
500 Internal Server Error
A szerver váratlan hibába ütközött.
502 Bad Gateway
Egy átjáró vagy proxy érvénytelen választ kapott a mögötte lévő szervertől.
503 Service Unavailable
A szerver jelenleg nem tudja kiszolgálni a kérést (túlterhelés, karbantartás).
504 Gateway Timeout
Az átjáró nem kapott időben választ a mögötte lévő szervertől.
Az 5xx hibák oka sokszor nem az a gép, amely a választ küldte, hanem egy mögötte lévő rendszer. Egy kurzusfelvételi időszak csúcsán a 429, az 503 és az 504 hatása a hallgatónak hasonló („nem megy”), a műszaki jelentésük és a teendő viszont eltér (a 10. fejezet erre visszatér).
Végigvezetett példa: mit lát a hallgató a Kurzuspontban?
Helyzet
Státuszkód
Mi történik?
Megnyitja az aktuális kurzust
200
A böngésző megjeleníti az oldalt.
Régi hivatkozást nyit meg, amely átköltözött
301 + 200
A böngésző követi az átirányítást.
Jelentkezik egy kurzusra
201
Létrejött a jelentkezés.
Nincs bejelentkezve, mégis jelentkezne
401
A felület bejelentkezést kér.
Másik hallgató jelentkezéseit nézné
403
A rendszer megtagadja.
A kurzus már betelt
409
Az állapot ütközik a kéréssel.
Beírt egy nem létező kurzuskódot
404
Nem található.
Nyitás pillanatában ezrek érkeznek
429 vagy 503
A rendszer korlátoz vagy átmenetileg nem ér el.
Fontos: a „kurzus betelt” helyzetet kezelheti a szerver 200-as oldallal vagy 409-cel is. A második pontosabban kifejezi, hogy a kérés nem teljesült.
Gyakori tévhitek
Állítás
Pontosítás
„A 404 bizonyítja, hogy nincs kapcsolat.”
A szerver válaszolt, csak az erőforrás hiányzik.
„A 200 minden szempontból siker.”
Csak a HTTP-szintű eredményt jelzi.
„A 401 és a 403 ugyanaz.”
Az egyik azonosítási, a másik jogosultsági hiba.
„A 3xx mindig hiba.”
Többnyire további lépést vagy gyorsítótári döntést jelent.
„Az 5xx mindig a küldő szerver hibája.”
A mögöttes rendszer is okozhatja (lásd 502, 504).
Röviden
A státuszkód háromjegyű, szabványos jelzés a kérés HTTP-szintű eredményéről; az első számjegy családot jelöl.
2xx siker, 3xx átirányítás, 4xx a kérés nem teljesíthető, 5xx szerveroldali hiba.
A 301/302 esetén a metódus változhat, a 307/308 megőrzi.
A 401 hitelesítést, a 403 jogosultságot jelez.
A HTTP-siker nem azonos az üzleti sikerrel.
Ellenőrző kérdések
Mi a különbség a 401 és a 403 között?
Mikor érdemes 307 vagy 308 kódot használni 301/302 helyett?
Mit jelent a 502 és a 504, és miben különbözik az 500-tól?
Miért lehet félrevezető, ha egy hibaüzenetet tartalmazó oldal 200-as kódot kap?
HTTP-státuszkódok: mi lett a kérés eredménye?
Célok
A lecke végére meg tudod mondani egy gyakori státuszkód jelentését, el tudod különíteni a kliens- és szerverhibákat, fel tudod ismerni az átirányítás fajtáit, és érted, miért nem azonos a HTTP-siker az üzleti sikerrel.
Miért van szükség státuszkódra?
Egy kérésre sokféle dolog történhet: az erőforrás megvan, átköltözött, nem létezik, a kérő nincs bejelentkezve, vagy a szerver elromlott. A kliensnek ezt géppel értelmezhető formában tudnia kell, mert másként kell viselkednie: megjelenítse a tartalmat, kövesse az új címet, kérjen bejelentkezést, vagy próbálkozzon később. A státuszkód háromjegyű szám, amely rövid, szabványos jelzést ad a kérés HTTP-szintű eredményéről.
Egy hiányzó kurzusoldal
A
404nem azt jelenti, hogy „nincs internet”. Éppen ellenkezőleg: a kérés eljutott egy válaszoló szerverig, amely a kért erőforrást nem találja a megadott címen. A böngésző a kódot, az ember pedig a törzsben lévő magyarázatot használja.A kódcsaládok
A kód első számjegye tág kategóriát jelöl:
flowchart TB V[HTTP-válasz] --> K{Státuszkód első számjegye} K -->|2| S[Siker] K -->|3| T[További lépés szükséges] K -->|4| C[A kérés így nem teljesíthető] K -->|5| H[Szerveroldali hiba] K -->|1| I[Tájékoztatás]A 4xx nem erkölcsi ítélet a felhasználóról, az 5xx pedig nem mindig egyetlen szerver hibája. A kódcsalád csak az első támpont.
Siker: 200, 201, 204
200 OK: a kérés sikerült, a válasz általában tartalmaz törzset.201 Created: új erőforrás jött létre (például sikeres jelentkezés); aLocationfejléc az új erőforrás címét adhatja.204 No Content: a művelet sikerült, de nincs mit visszaküldeni (például törlés).Átirányítás: 301, 302, 303, 307, 308 és 304
Az átirányítás azt mondja a kliensnek, hogy másik címen folytassa, a
Locationfejléc pedig megadja az új címet:(A
-Lkapcsoló acurl-nek azt mondja, hogy kövesse az átirányítást; a böngésző ezt magától teszi. Ezért látszik a hálózati panelen két kérés egyetlen oldalmegnyitásra.)A különböző kódok két dologban térnek el: tartós vagy ideiglenes az áthelyezés, és megőrzi-e a kliens a metódust. Az RFC 9110 szerint a 301 és a 302 esetén a kliens a POST-ot GET-re változtathatja (történeti okból), a 303 azt jelzi, hogy az eredményt GET-tel kell lekérni, a 307 és a 308 pedig megtiltja a metódus megváltoztatását.
A
304 Not Modifiedmás természetű: gyorsítótári ellenőrzésnél jelzi, hogy a korábban eltárolt példány még használható (10. fejezet).A kérés nem teljesíthető: 4xx
Acceptértéket kérjen.Content-Type-ot küldjön.Retry-Afterfejléc megadhatja, mennyit.A 401 neve félrevezető, mert jellemzően hitelesítési hibát jelent (nem tudjuk, ki vagy), míg a 403 jogosultsági hiba (tudjuk, ki vagy, de nem szabad). Az RFC 9110 szerint a 401-es válasznak tartalmaznia kell a
WWW-Authenticatefejlécet, amely megmondja, milyen hitelesítést vár. A 429-et az RFC 6585 vezette be, nem az RFC 9110.Hibás kérésre példa:
A tartalomegyeztetésre (406) példa a következő leckében lesz.
Szolgáltatási hiba: 5xx
Az 5xx hibák oka sokszor nem az a gép, amely a választ küldte, hanem egy mögötte lévő rendszer. Egy kurzusfelvételi időszak csúcsán a 429, az 503 és az 504 hatása a hallgatónak hasonló („nem megy”), a műszaki jelentésük és a teendő viszont eltér (a 10. fejezet erre visszatér).
Végigvezetett példa: mit lát a hallgató a Kurzuspontban?
Fontos: a „kurzus betelt” helyzetet kezelheti a szerver
200-as oldallal vagy409-cel is. A második pontosabban kifejezi, hogy a kérés nem teljesült.Gyakori tévhitek
Röviden
Ellenőrző kérdések
200-as kódot kap?Tanulási források