POST

HTTP módszer

A POST-es HTTP-módszer specifikációja

A POST módszer arra kéri a cél erőforrást, hogy a kérelemben szereplő reprezentációt az erőforrás saját szemantikája szerint dolgozza fel. A POST például (többek között) a következő funkciókhoz használatos:

  • Adatblokk, például egy HTML űrlapba beírt mezők átadása egy adatfeldolgozó folyamatnak;
  • Üzenet küldése egy hirdetőtáblára, hírcsoportba, levelezőlistára, blogba vagy hasonló cikkcsoportba;
  • Új erőforrás létrehozása, amelyet a kiindulási kiszolgálónak még azonosítania kell; és
  • Adatok hozzáadása egy erőforrás meglévő reprezentációjához (reprezentációihoz).

A származási kiszolgáló a POST-kérelem feldolgozásának eredményétől függően a megfelelő állapotkód kiválasztásával jelzi a válasz szemantikáját; a POST-ra adott válaszban az ebben a specifikációban meghatározott állapotkódok szinte mindegyike érkezhet (a kivételek a 206 (Részleges tartalom), 304 (Nem módosítva) és 416 (Tartomány nem kielégíthető)).

Ha a POST-kérelem sikeres feldolgozásának eredményeként egy vagy több erőforrás jött létre a kiindulási kiszolgálón, a kiindulási kiszolgálónak KELL egy 201 (Created) választ küldenie, amely egy Location fejlécmezőt tartalmaz, amely a létrehozott elsődleges erőforrás azonosítóját adja meg (7. szakasz.1.2), valamint egy olyan reprezentációt, amely leírja a kérés állapotát, miközben az új erőforrás(ok)ra hivatkozik.

A POST-kérésekre adott válaszok csak akkor gyorsítótárba helyezhetők, ha explicit frissességi információt tartalmaznak (lásd az [RFC7234] 4.2.1. szakaszát). A POST gyorsítótárazást azonban nem valósítják meg széles körben. Azokban az esetekben, amikor a kiindulási kiszolgáló azt szeretné, hogy az ügyfél képes legyen a POST eredményét úgy gyorsítótárba helyezni, hogy azt egy későbbi GET újra felhasználhassa, a kiindulási kiszolgáló MAGYON egy 200 (OK) választ küld, amely tartalmazza az eredményt és egy Content-Location fejlécmezőt, amelynek értéke megegyezik a POST tényleges kérési URI-jával (3. szakasz.1.4.2.).

Ha a POST feldolgozásának eredménye egy meglévő erőforrás reprezentációjával lenne egyenértékű, a kiindulási kiszolgáló MAGYON átirányíthatja a felhasználói ügynököt erre az erőforrásra egy 303 (Lásd más) válasz elküldésével, a Location mezőben a meglévő erőforrás azonosítójával. Ennek az az előnye, hogy a felhasználó ügynök számára egy erőforrás-azonosítót biztosít, és a reprezentációt egy olyan módszerrel továbbítja, amely alkalmasabb a megosztott gyorsítótárazásra, bár ez egy további kérés árán történik, ha a felhasználó ügynök még nem tárolta a reprezentációt.

A POST-as HTTP-módszert az Internet Engineering Task Force (IETF) és a World Wide Web Consortium (W3C) a RFC 7231-as dokumentum 4.3.3. szakaszában határozta meg.

A POST módszer leírása

folyamatban lévő munka

Példa a POST-es HTTP-módszerre

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
}