POST
HTTP metodas
HTTP metodo POST specifikacija
POST metodu prašoma, kad tikslinis išteklius apdorotų užklausoje pateiktą atvaizdavimą pagal konkretaus ištekliaus semantiką. Pavyzdžiui, POST naudojamas šioms funkcijoms (be kitų):
- Duomenų bloko, pavyzdžiui, HTML formoje įvestų laukų, pateikimas duomenų apdorojimo procesui;
- Pranešimo paskelbimas skelbimų lentoje, naujienų grupėje, pašto sąraše, tinklaraštyje ar panašioje straipsnių grupėje;
- Naujo ištekliaus, kurį dar turi identifikuoti kilmės serveris, sukūrimas ir
- Duomenų pridėjimas prie esamo (-ų) ištekliaus atvaizdavimo (-ų).
Pradinis serveris nurodo atsakymo semantiką pasirinkdamas atitinkamą būsenos kodą, priklausomai nuo POST užklausos apdorojimo rezultato; beveik visi šioje specifikacijoje apibrėžti būsenos kodai gali būti gaunami atsakant į POST (išimtys yra 206 (Dalinis turinys), 304 (Nepakeistas) ir 416 (Neįvykdomas diapazonas)).
Jeigu sėkmingai apdorojus POST užklausą kilmės serveryje buvo sukurtas vienas ar daugiau išteklių, kilmės serveris TURI siųsti 201 (Sukurta) atsakymą, kuriame yra antraštės laukas Location (Vieta), kuriame nurodomas sukurto pirminio ištekliaus identifikatorius (7 skirsnis.1.2 skirsnis) ir atvaizdavimas, apibūdinantis užklausos būseną, kartu pateikiant nuorodą į naują (-us) išteklių (-us).
Atsakymus į POST užklausas galima talpinti į spartinančiąją atmintinę tik tada, kai juose pateikiama aiški šviežumo informacija (žr. [RFC7234] 4.2.1 skirsnį). Tačiau POST spartinančioji atmintinė nėra plačiai įdiegta. Tais atvejais, kai kilmės serveris pageidauja, kad klientas galėtų talpinti POST rezultatą į spartinančiąją atmintinę taip, kad jį būtų galima pakartotinai panaudoti vėlesniu GET, kilmės serveris galėtų siųsti 200 (OK) atsakymą, kuriame būtų rezultatas ir antraštės laukas Content-Location, kurio reikšmė yra tokia pati kaip POST efektyvaus užklausos URI (3 skirsnis.1.4.2).
Jeigu POST apdorojimo rezultatas būtų lygiavertis esamo ištekliaus atvaizdavimui, kilmės serveris galėtų nukreipti naudotojo agentą į tą išteklių, siųsdamas 303 (žr. "Kita") atsakymą su esamo ištekliaus identifikatoriumi buvimo vietos lauke. Tai naudinga, nes naudotojo agentui suteikiamas ištekliaus identifikatorius, o atvaizdas perduodamas metodu, kurį lengviau naudoti bendroje spartinančiojoje atmintinėje, tačiau tai kainuoja papildomą užklausą, jei naudotojo agentas dar neturi atvaizdo spartinančiojoje atmintinėje.
POST metodo aprašymas
HTTP metodo POST pavyzdys
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
}