HTML-verzoeksmethoden

Wat is HTTP?

Het Hypertext Transfer Protocol (HTTP, afgekort) is bedoeld om communicatie tussen de client en de server mogelijk te maken.

HTTP fungeert als een request-response-protocol tussen de client en de server.

Voorbeeld: De client (browser) stuurt een HTTP-verzoek naar de server; vervolgens stuurt de server een reactie terug naar de client. De reactie bevat informatie over de status van het verzoek, en kan ook de gevraagde inhoud bevatten.

HTTP-methode

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE
  • PATCH
  • OPTIONS

De meest gebruikte twee methoden zijn: GET en POST.

GET-methode

GET wordt gebruikt om gegevens op te vragen van een specifieke bron.

GET is een van de meestgebruikte HTTP-methoden.

Let op, de querystring (naam/waardepaar) wordt verzonden in de URL van het GET-verzoek:

/test/demo_form.php?name1=value1&name2=value2

Enkele andere opmerkingen over GET-verzoeken:

  • GET-verzoeken kunnen worden gecached
  • GET-verzoeken worden opgeslagen in de browserhistoriek
  • GET-verzoeken kunnen worden opgeslagen als bladwijzer
  • GET-verzoeken mogen niet worden gebruikt bij het verwerken van gevoelige gegevens
  • GET-verzoeken hebben een lengtelimiet
  • GET-verzoeken moeten alleen worden gebruikt om gegevens op te halen (geen wijzigingen aanbrengen)

POST-methode

POST wordt gebruikt om gegevens naar de server te sturen om een bron te creëren/te updaten.

De gegevens die via POST naar de server worden gestuurd, worden opgeslagen in het lichaam van de HTTP-verzoek:

POST /test/demo_form.php HTTP/1.1
Host: codew3c.com
name1=value1&name2=value2

POST is een van de meestgebruikte HTTP-methoden.

Enkele andere opmerkingen over POST-verzoeken:

  • POST-verzoeken worden niet gecached
  • POST-verzoeken worden niet opgeslagen in de browserhistoriek
  • POST kan niet worden opgeslagen als bladwijzer
  • POST-verzoeken hebben geen eisen aan de lengte van de gegevens.

PUT-methode

PUT wordt gebruikt om gegevens naar de server te sturen om een bron te creëren/te updaten.

Het verschil tussen POST en PUT is dat PUT-verzoeken idempotent zijn (idempotent). Dit betekent dat het meerdere keren uitvoeren van hetzelfde PUT-verzoek altijd hetzelfde resultaat oplevert. In tegenstelling daaraan heeft het herhaaldelijk uitvoeren van POST-verzoeken de nevenwerking dat dezelfde bron meerdere keren wordt gecreëerd.

HEAD-methode

HEAD is bijna hetzelfde als GET, maar heeft geen responsinhoud.

In andere woorden, als GET /users een lijst van gebruikers retourneert, zal HEAD /users hetzelfde verzoek uitzenden, maar geen lijst van gebruikers retourneren.

De HEAD-verzoek is nuttig om te controleren wat een GET-verzoek zal retourneren voordat het wordt uitgevoerd (bijv. voordat een groot bestand wordt gedownload of de responsinhoud wordt verstrekt).

DELETE-methode

De DELETE-methode verwijdert de opgegeven bron.

OPTIONS-methode

De OPTIONS-methode beschrijft de communicatieopties van de doelbron.

Vergelijking GET met POST

De onderstaande tabel vergelijkt twee HTTP-methoden: GET en POST.

  GET POST
Terugknop/Herladen Onschadelijk De gegevens worden opnieuw ingediend (de browser zou de gebruiker moeten informeren dat de gegevens opnieuw worden ingediend).
Bladwijzer Kan worden opgeslagen als bladwijzer Kan niet worden opgeslagen als bladwijzer
Cache Kan worden gecached Cannot be cached
Encoding type application/x-www-form-urlencoded application/x-www-form-urlencoded or multipart/form-data. Use multiple encoding for binary data.
History Parameters are retained in the browser history. Parameters are not stored in the browser history.
Restrictions on data length Yes. When sending data, the GET method adds data to the URL; the length of the URL is limited (the maximum length of the URL is 2048 characters). Unrestricted.
Restrictions on data types Only allows ASCII characters. No restrictions. Also allows binary data.
Security

Compared to POST, GET has poorer security because the data sent is part of the URL.

Never use GET when sending passwords or other sensitive information!

POST is safer than GET because parameters are not stored in the browser history or web server logs.
Visibility Data is visible to everyone in the URL. Data will not be displayed in the URL.