Skip to content
Language:hu Author:Laborci Gergely
http

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

$ 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

  1. Mi a különbség a 401 és a 403 között?
  2. Mikor érdemes 307 vagy 308 kódot használni 301/302 helyett?
  3. Mit jelent a 502 és a 504, és miben különbözik az 500-tól?
  4. Miért lehet félrevezető, ha egy hibaüzenetet tartalmazó oldal 200-as kódot kap?

Tanulási források

Prerequisites (1)

  • HTTP

Teaches (1)

  • HTTP-státuszkódok