POST
HTTP-methode
Specificatie van de HTTP-methode POST
De POST-methode vraagt de doelbron om de weergave die in het verzoek is ingesloten, te verwerken volgens de eigen specifieke semantiek van de bron. POST wordt bijvoorbeeld gebruikt voor (onder andere) de volgende functies:
- Het verstrekken van een gegevensblok, zoals de velden die zijn ingevoerd in een HTML-formulier, aan een gegevensverwerkingsproces;
- Het plaatsen van een bericht op een prikbord, nieuwsgroep, mailinglijst, blog of vergelijkbare groep artikelen;
- Het maken van een nieuwe bron die nog moet worden geïdentificeerd door de origin server; en
- Het toevoegen van gegevens aan de bestaande representatie(s) van een bron.
Een origin server geeft de semantiek van het antwoord aan door een geschikte statuscode te kiezen, afhankelijk van het resultaat van de verwerking van het POST-verzoek; bijna alle statuscodes die in deze specificatie zijn gedefinieerd, kunnen worden ontvangen in een antwoord op POST (de uitzonderingen zijn 206 (gedeeltelijke inhoud), 304 (niet gewijzigd) en 416 (bereik niet bevredigbaar)).
Als een of meer bronnen op de origin server zijn aangemaakt als gevolg van de succesvolle verwerking van een POST-verzoek, verzendt de origin server SCHRIJFT een antwoord 201 (Aangemaakt) met een Locatie-headerveld dat een identificatie bevat voor de primaire bron die is aangemaakt (Sectie 7..1.2) en een weergave dat de bron is aangemaakt (Sectie 7.1.2).1.2) en een weergave die de status van het verzoek beschrijft en tegelijkertijd verwijst naar de nieuwe bron(nen).
Responses op POST-verzoeken kunnen alleen in de cache worden opgeslagen als ze expliciete versheidsinformatie bevatten (zie paragraaf 4.2.1 van [RFC7234]). POST-caching is echter niet algemeen geïmplementeerd. In gevallen waarin een origin server wil dat de client het resultaat van een POST in de cache kan plaatsen op een manier die hergebruikt kan worden door een latere GET, stuurt de origin server MAY een 200 (OK) antwoord met het resultaat en een Content-Location headerveld dat dezelfde waarde heeft als de effectieve POST verzoek URI (Sectie 3.1.4.2).
Als het resultaat van de verwerking van een POST gelijk is aan een representatie van een bestaande bron, kan een origin server MAY de gebruikersagent naar die bron doorsturen door een 303 (See Other) antwoord te sturen met de identifier van de bestaande bron in het veld Locatie. Dit heeft als voordelen dat de gebruikersagent een bronidentifier krijgt en dat de representatie wordt overgedragen via een methode die beter geschikt is voor gedeelde caching, hoewel dit ten koste gaat van een extra verzoek als de gebruikersagent de representatie nog niet in de cache heeft staan.
Beschrijving van de POST-methode
Voorbeeld voor de HTTP-methode POST
POST /data HTTP/1.1
Host: api.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537
Accept: application/json
Accept-Language: de-DE,de;q=0.5
Content-Type: application/json
Content-Length: 100
Connection: keep-alive
Request body:
{
"key": "value",
"foo": "bar"
}
Content-Type: application/json
Date: Mon, 31 July 2023 14:58:12 GMT
Server: Apache/2.4.7 (Ubuntu)
Cache-Control: no-cache
Location: http://api.example.com/data/123
Response body:
{
"status": "success",
"id": 123
}