POST
Metoda HTTP
Specifikacija metode HTTP POST
Metoda POST zahteva, da ciljni vir obdela predstavitev, ki je priložena zahtevi, v skladu s specifično semantiko vira. POST se na primer uporablja za naslednje funkcije (med drugim):
- Posredovanje bloka podatkov, kot so polja, vnesena v obrazec HTML, procesu obdelave podatkov;
- Poslanje sporočila na oglasno desko, novičarsko skupino, poštni seznam, blog ali podobno skupino člankov;
- Za ustvarjanje novega vira, ki ga mora izvorni strežnik še določiti, in
- Prilaganje podatkov obstoječim predstavitvam vira.
Server izvora označi semantiko odziva z izbiro ustrezne kode stanja glede na rezultat obdelave zahteve POST; skoraj vse kode stanja, opredeljene v tej specifikaciji, se lahko prejmejo v odgovoru na POST (izjeme so 206 (Delna vsebina), 304 (Ni spremenjeno) in 416 (Obseg ni zadovoljiv)).
Če je bilo v izvornem strežniku zaradi uspešne obdelave zahteve POST ustvarjeno eno ali več sredstev, izvorni strežnik PRAVIL pošlje odgovor 201 (Created), ki vsebuje naslovno polje Location, v katerem je naveden identifikator ustvarjenega primarnega sredstva (oddelek 7.1.2) in predstavitev, ki opisuje stanje zahteve, hkrati pa se sklicuje na nov(e) vir(e).
Odgovore na zahteve POST je mogoče shraniti v predpomnilnik le, če vsebujejo izrecno informacijo o svežini (glej razdelek 4.2.1 v [RFC7234]). Vendar se predpomnilnik POST ne izvaja pogosto. V primerih, ko izvorni strežnik želi, da odjemalec lahko predpomni rezultat POST tako, da ga lahko ponovno uporabi pri kasnejšem GET, izvorni strežnik MORE poslati odgovor 200 (OK), ki vsebuje rezultat in naslovno polje Content-Location, ki ima enako vrednost kot dejanski URI zahteve POST (oddelek 3.1.4.2).
Če bi bil rezultat obdelave POST enakovreden predstavitvi obstoječega vira, izvorni strežnik MORE uporabniškega agenta preusmeriti na ta vir tako, da pošlje odgovor 303 (Glej drugo) z identifikatorjem obstoječega vira v polju Lokacija. Prednost tega je, da se uporabniškemu agentu zagotovi identifikator vira in prenese predstavitev z metodo, ki je bolj primerna za skupno predpomnjenje, čeprav za ceno dodatnega zahtevka, če uporabniški agent še nima predstavitve v predpomnilniku.
Opis metode POST
Primer za metodo HTTP 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
}