POST

Metoda HTTP

Specificarea metodei HTTP POST

Metoda POST solicită ca resursa țintă să proceseze reprezentarea inclusă în cerere în conformitate cu semantica specifică a resursei. De exemplu, POST este utilizat pentru următoarele funcții (printre altele):

  • Furnizarea unui bloc de date, cum ar fi câmpurile introduse într-un formular HTML, unui proces de tratare a datelor;
  • Postarea unui mesaj pe un forum, un grup de știri, o listă de discuții, un blog sau un grup similar de articole;
  • Crearea unei noi resurse care nu a fost încă identificată de către serverul de origine; și
  • Aplicarea de date la reprezentarea (reprezentările) existentă (existente) a unei resurse.

Un server de origine indică semantica răspunsului prin alegerea unui cod de stare adecvat în funcție de rezultatul procesării cererii POST; aproape toate codurile de stare definite de prezenta specificație ar putea fi primite într-un răspuns la POST (excepțiile fiind 206 (Partial Content), 304 (Not Modified) și 416 (Range Not Satisfiable)).

Dacă una sau mai multe resurse au fost create pe serverul de origine ca urmare a procesării cu succes a unei solicitări POST, serverul de origine TREBUIE să trimită un răspuns 201 (Created) care conține un câmp antet Location (Locație) care furnizează un identificator pentru resursa primară creată (secțiunea 7.1.1.2) și o reprezentare care descrie starea solicitării, făcând în același timp referire la noua resursă (noile resurse).

Răspunsurile la solicitările POST pot fi stocate în memoria cache numai atunci când includ informații explicite privind prospețimea (a se vedea secțiunea 4.2.1 din [RFC7234]). Cu toate acestea, memoria cache POST nu este implementată pe scară largă. Pentru cazurile în care un server de origine dorește ca clientul să poată stoca în memoria cache rezultatul unui POST într-un mod care să poată fi reutilizat de un GET ulterior, serverul de origine PUTĂ trimite un răspuns 200 (OK) care conține rezultatul și un câmp antet Content-Location care are aceeași valoare ca URI-ul efectiv al cererii POST (Secțiunea 3.1.4.2.2).

Dacă rezultatul procesării unui POST ar fi echivalent cu o reprezentare a unei resurse existente, un server de origine POATE redirecționa agentul utilizator către acea resursă prin trimiterea unui răspuns 303 (See Other) cu identificatorul resursei existente în câmpul Location. Acest lucru are avantajul de a furniza agentului utilizator un identificator de resursă și de a transfera reprezentarea printr-o metodă mai ușor de utilizat pentru memoria cache partajată, deși cu prețul unei cereri suplimentare dacă agentul utilizator nu are deja reprezentarea în memoria cache.

.

Metoda HTTP POST a fost specificată în secțiunea 4.3.3 din documentul RFC 7231 de către Internet Engineering Task Force (IETF) și World Wide Web Consortium (W3C).

Descrierea metodei POST

lucrări în curs

Exemplu pentru metoda HTTP POST

Request header:
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"
}
Response header:
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
}