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).