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 módszer leírása
Példa a POST-es HTTP-módszerre
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
}