POST
HTTP-metode
Spesifikasjon av HTTP-metoden POST
POST-metoden ber om at målressursen behandler representasjonen i forespørselen i henhold til ressursens egen spesifikke semantikk. POST brukes for eksempel til følgende funksjoner (blant andre):
- Tilby en datablokk, for eksempel feltene i et HTML-skjema, til en databehandlingsprosess;
- Skrive en melding til en oppslagstavle, nyhetsgruppe, postliste, blogg eller lignende gruppe av artikler;
- Opprette en ny ressurs som ennå ikke er identifisert av opprinnelsesserveren; og
- Legge til data til en ressurs' eksisterende representasjon(er).
En opprinnelsesserver indikerer svarsemantikken ved å velge en passende statuskode avhengig av resultatet av behandlingen av POST-forespørselen. Nesten alle statuskodene som er definert i denne spesifikasjonen, kan mottas i et svar på POST (unntakene er 206 (Delvis innhold), 304 (Ikke endret) og 416 (Range Not Satisfiable)).
Hvis en eller flere ressurser er opprettet på opprinnelsesserveren som et resultat av en vellykket behandling av en POST-forespørsel, sender opprinnelsesserveren BØR et 201-svar (Created) som inneholder et Location header-felt som inneholder en identifikator for den primære ressursen som er opprettet (Seksjon 7.1.2) og en representasjon som beskriver statusen til forespørselen, samtidig som det henvises til den eller de nye ressursene.
Svar på POST-forespørsler kan bare bufres når de inneholder eksplisitt ferskhetsinformasjon (se avsnitt 4.2.1 i [RFC7234]). Bufring av POST-forespørsler er imidlertid ikke særlig utbredt. I tilfeller der en opprinnelsesserver ønsker at klienten skal kunne bufre resultatet av en POST slik at det kan gjenbrukes ved en senere GET, kan opprinnelsesserveren KAN sende et 200 (OK)-svar som inneholder resultatet og et Content-Location-headerfelt som har samme verdi som POST-forespørselens effektive URI (avsnitt 3. 1.4.2).1.4.2).
Hvis resultatet av behandlingen av en POST tilsvarer en representasjon av en eksisterende ressurs, kan en origin-tjener MAY omdirigere brukeragenten til denne ressursen ved å sende et 303-svar (Se annet) med identifikatoren til den eksisterende ressursen i feltet Location. Fordelen med dette er at brukeragenten får en ressursidentifikator og at representasjonen overføres via en metode som er mer egnet for delt bufring, selv om det koster en ekstra forespørsel hvis brukeragenten ikke allerede har bufret representasjonen.
Beskrivelse av POST-metoden
Eksempel for HTTP-metoden 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
}