POST
HTTP-metod
Specifikation av HTTP-metoden POST
POST-metoden begär att målresursen bearbetar den representation som bifogas i begäran enligt resursens egen specifika semantik. POST används till exempel för följande funktioner (bland andra):
- Tillhandahålla ett block av data, såsom de fält som anges i ett HTML-formulär, till en databehandlingsprocess;
- Posta ett meddelande till en anslagstavla, nyhetsgrupp, e-postlista, blogg eller liknande grupp av artiklar;
- Skapa en ny resurs som ännu inte har identifierats av ursprungsservern; och
- Foga data till en resurs befintliga representation(s).
En ursprungsserver anger svarssemantik genom att välja en lämplig statuskod beroende på resultatet av behandlingen av POST-begäran; nästan alla statuskoder som definieras i denna specifikation kan tas emot i ett svar på POST (undantagen är 206 (Partiellt innehåll), 304 (Ej modifierad) och 416 (Intervall inte uppfyllbart)).
Om en eller flera resurser har skapats på ursprungsservern som ett resultat av framgångsrik behandling av en POST-begäran, skickar ursprungsservern SHOULD ett svar 201 (Created) som innehåller ett rubrikfält Location som tillhandahåller en identifierare för den primära resurs som skapats (avsnitt 7.1.2) och en representation som beskriver status för begäran samtidigt som den hänvisar till de nya resurserna.
Svar på POST-begäranden är endast cachningsbara när de innehåller explicit information om färskhet (se avsnitt 4.2.1 i [RFC7234]). POST-cachelagring är dock inte allmänt implementerad. I de fall en ursprungsserver vill att klienten ska kunna cacha resultatet av en POST på ett sätt som kan återanvändas av en senare GET, skickar ursprungsservern MAY ett 200-svar (OK) som innehåller resultatet och ett Content-Location-huvudfält som har samma värde som POST:ens effektiva URI för begäran (avsnitt 3.1.4.2).
Om resultatet av behandlingen av en POST skulle motsvara en representation av en befintlig resurs, kan en ursprungsserver MAY omdirigera användaragenten till den resursen genom att skicka ett 303-svar (Se annat) med den befintliga resursens identifierare i fältet Plats. Fördelarna med detta är att användaragenten får en resursidentifierare och att representationen överförs via en metod som är mer lämpad för delad cachning, men till priset av en extra begäran om användaragenten inte redan har cachat representationen.
Beskrivning av POST-metoden
Exempel för 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
}