Sobes.tech
Junior

Kunnen we query-parameters gebruiken in plaats van de body van het verzoek?

sobes.tech AI

Antwoord van AI

Ja, maar het hangt af van het type verzoek en de overgedragen informatie.

Query Parameters

  • Worden in de URL na het ? teken overgedragen als sleutel=waarde paren, gescheiden door &.
  • Worden vaak gebruikt voor GET-verzoeken om gegevens te filteren, sorteren en pagineren (bijvoorbeeld: /api/items?category=electronics&sort=price).
  • Beperkt in grootte in de meeste browsers en servers.
  • Zien in serverlogs en browsergeschiedenis (potentieel veiligheidsprobleem voor gevoelige gegevens).
  • Gemakkelijk te cachen.

Request Body

  • Wordt in de HTTP-verzoekbody overgedragen.
  • Wordt vaak gebruikt voor POST, PUT, PATCH verzoeken om grote hoeveelheden gegevens te verzenden, resources te maken of bij te werken (bijvoorbeeld: formulierverzending, JSON-object).
  • Heeft geen strikte groottebeperkingen (binnen serverconfiguraties).
  • Is niet zichtbaar in de URL, waardoor het geschikter is voor het overdragen van gevoelige gegevens.
  • Wordt standaard niet door browsers gecached.
  • Kan verschillende datatypes bevatten (JSON, XML, formulieren).

Vergelijkingstabel:

Criteria Query Parameters Request Body
Locatie URL (na ?) HTTP-verzoekbody
Typische methoden GET POST, PUT, PATCH
Gebruik Filteren, sorteren, pagineren Resources maken/bijwerken, grote data verzenden
Grootte Beperkt Praktisch onbeperkt
Zichtbaarheid Zichtbaar in URL Niet zichtbaar in URL
Caching Gemakkelijk te cachen Niet standaard gecached
Veiligheid Minder geschikt voor gevoelige gegevens Beter geschikt voor gevoelige gegevens

Wanneer gebruiken:

  • Query Parameters in plaats van Body: theoretisch mogelijk voor POST-, PUT- en andere methoden, maar niet aanbevolen voor het verzenden van de hoofdinhoud van de aanvraag. Dit kan de semantiek van HTTP-methoden schenden en de verwerking bemoeilijken. Wordt zeer zelden gebruikt, vooral in zeer eenvoudige gevallen of specifieke architecturen. Het verzenden van grote of gestructureerde gegevens via querystring wordt afgeraden.
  • Body in plaats van Query Parameters: onmogelijk voor GET-verzoeken, omdat de HTTP-standaard geen semantiek voor de body bij GET definieert. Voor andere methoden (POST, PUT, enz.) is de body de standaardmethode voor gegevensoverdracht en wordt deze aanbevolen wanneer gestructureerde of grote hoeveelheden informatie worden verzonden, of als de gegevens gevoelig zijn.

In de meeste gevallen wordt aanbevolen de conventies te volgen: gebruik query parameters voor GET om te filteren/identificeren en body voor het verzenden van gegevens in verzoeken die de status wijzigen (POST, PUT, PATCH).