HTTP -verzoekmethoden
Wat is HTTP?
Het Hypertext Transfer Protocol (HTTP) is ontworpen om communicatie tussen clients en servers mogelijk te maken.
HTTP werkt als een request-response-protocol tussen een client en server.
Voorbeeld: Een client (browser) stuurt een HTTP-verzoek naar de server; vervolgens stuurt de server een antwoord naar de client. Het antwoord bevat statusinformatie over het verzoek en kan ook de gevraagde inhoud bevatten.
HTTP-methoden
- KRIJGEN
- NA
- ZETTEN
- HOOFD
- VERWIJDEREN
- LAPJE
- OPTIES
De twee meest voorkomende HTTP-methoden zijn: GET en POST.
De GET-methode
GET wordt gebruikt om gegevens van een opgegeven bron op te vragen.
GET is een van de meest voorkomende HTTP-methoden.
Merk op dat de queryreeks (naam/waarde-paren) wordt verzonden in de URL van een GET-verzoek:
/test/demo_form.php?name1=value1&name2=value2
Enkele andere opmerkingen over GET-verzoeken:
- GET-verzoeken kunnen in de cache worden opgeslagen
- GET-verzoeken blijven in de browsergeschiedenis
- GET-verzoeken kunnen worden gemarkeerd als bladwijzer
- GET-verzoeken mogen nooit worden gebruikt bij het omgaan met gevoelige gegevens
- GET-verzoeken hebben lengtebeperkingen
- GET-verzoeken worden alleen gebruikt om gegevens op te vragen (niet wijzigen)
De POST-methode
POST wordt gebruikt om gegevens naar een server te verzenden om een bron aan te maken/bij te werken.
De gegevens die met POST naar de server worden verzonden, worden opgeslagen in de verzoektekst van het HTTP-verzoek:
POST /test/demo_form.php HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
POST is een van de meest gebruikte HTTP-methoden.
Enkele andere opmerkingen over POST-verzoeken:
- POST-verzoeken worden nooit in de cache opgeslagen
- POST-verzoeken blijven niet in de browsergeschiedenis
- POST-verzoeken kunnen niet worden gemarkeerd als bladwijzer
- POST-verzoeken hebben geen beperkingen op gegevenslengte
De PUT-methode
PUT wordt gebruikt om gegevens naar een server te sturen om een bron aan te maken/bij te werken.
Het verschil tussen POST en PUT is dat PUT-verzoeken idempotent zijn. Dat wil zeggen, hetzelfde PUT-verzoek meerdere keren aanroepen zal altijd hetzelfde resultaat opleveren. Daarentegen heeft het herhaaldelijk oproepen van een POST-verzoek bijwerkingen van het meerdere keren maken van dezelfde bron.
De HEAD-methode
HEAD is bijna identiek aan GET, maar zonder de responsbody.
Met andere woorden, als GET /users een lijst met gebruikers retourneert, dan zal HEAD /users hetzelfde verzoek doen, maar niet de lijst met gebruikers retourneren.
HEAD-verzoeken zijn handig om te controleren wat een GET-verzoek zal retourneren voordat u daadwerkelijk een GET-verzoek doet, zoals voordat u een groot bestand of een antwoordtekst downloadt.
De DELETE-methode
De DELETE-methode verwijdert de opgegeven resource.
De OPTIES-methode:
De OPTIONS-methode beschrijft de communicatie-opties voor de doelbron.
Vergelijk GET versus POST
De volgende tabel vergelijkt de twee HTTP-methoden: GET en POST.
GET | POST | |
---|---|---|
BACK button/Reload | Harmless | Data will be re-submitted (the browser should alert the user that the data are about to be re-submitted) |
Bookmarked | Can be bookmarked | Cannot be bookmarked |
Cached | Can be cached | Not cached |
Encoding type | application/x-www-form-urlencoded | application/x-www-form-urlencoded or multipart/form-data. Use multipart encoding for binary data |
History | Parameters remain in browser history | Parameters are not saved in browser history |
Restrictions on data length | Yes, when sending data, the GET method adds the data to the URL; and the length of a URL is limited (maximum URL length is 2048 characters) | No restrictions |
Restrictions on data type | Only ASCII characters allowed | No restrictions. Binary data is also allowed |
Security | GET is less secure compared to POST because data sent is part of the URL Never use GET when sending passwords or other sensitive information! |
POST is a little safer than GET because the parameters are not stored in browser history or in web server logs |
Visibility | Data is visible to everyone in the URL | Data is not displayed in the URL |