Sobes.tech
Junior

Használhatjuk a kérdési paramétereket (query) a kérés testje (body) helyett?

sobes.tech MI

Válasz az MI-től

Igen, de ez a kérés típusától és az átadott információtól függ.

Kérési paraméterek (Query Parameters)

  • A URL-ben a ? jel után kerülnek átadásra kulcs=érték párok formájában, &-vel elválasztva.
  • Gyakran használják GET-kérésekhez az adatok szűrésére, rendezésére, lapozására (például: /api/items?category=electronics&sort=price).
  • A legtöbb böngésző és szerver korlátozza a méretet.
  • Láthatóak a szerver naplóiban és a böngésző előzményeiben (biztonsági kockázat érzékeny adatok esetén).
  • Könnyen cache-elhetőek.

Kérés törzse (Request Body)

  • Az HTTP-kérés törzsében kerül átadásra.
  • Gyakran használják POST, PUT, PATCH kérésekhez nagyobb adatmennyiség küldésére, erőforrások létrehozására vagy frissítésére (például: űrlap küldése, JSON-objektum).
  • Nincs szigorú méretkorlát (szerver konfigurációtól függően).
  • Nem láthatóak a URL-ben, így alkalmasabb érzékeny adatok küldésére.
  • Alapértelmezés szerint nem cache-elődnek a böngészők.
  • Különböző adat típusokat tartalmazhatnak (JSON, XML, űrlapok).

Összehasonlító táblázat:

Kritérium Kérési paraméterek (Query Parameters) Kérés törzse (Request Body)
Hely URL (a ? után) HTTP kérés törzse
Tipikus módszerek GET POST, PUT, PATCH
Használat Szűrés, rendezés, lapozás Erőforrások létrehozása/frissítése, nagy adatmennyiség küldése
Méret Korlátozott Szinte korlátlan
Láthatóság Látható URL-ben Nem látható URL-ben
Cache-elés Könnyen cache-elhetőek Alapértelmezés szerint nem cache-elődnek
Biztonság Kevésbé alkalmas érzékeny adatokhoz Jobban alkalmas érzékeny adatokhoz

Mikor használjunk egyiket a másik helyett:

  • Query Parameters helyett Body: elméletileg lehetséges POST, PUT stb. módszereknél, de nem ajánlott az alapvető kérés tartalmának átadására. Ez sértheti az HTTP módszerek szemantikai helyességét és bonyolíthatja a feldolgozást. Nagyon ritkán használják, főként egyszerű esetekben vagy speciális architektúrákban. Nagy vagy strukturált adatok query stringen keresztül nem célszerű küldeni.
  • Body helyett Query Parameters: nem lehetséges GET-kéréseknél, mivel az HTTP szabvány nem határozza meg a kérés törzsének szemantikáját GET esetén. Más módszerek (POST, PUT stb.) esetén a kérés törzse a szokásos adatátviteli mód, és előnyösebb, ha strukturált vagy nagyobb adatmennyiséget, vagy érzékeny adatokat küldünk.

A legtöbb esetben érdemes követni a bevált konvenciókat: query paramétereket használni GET kérésnél szűréshez/azonosításhoz, és a body-t az adatok küldésére módosító kérésnél (POST, PUT, PATCH).