POST
HTTP метод
Спецификация на HTTP метод POST
Методът POST изисква от целевия ресурс да обработи изображението, включено в заявката, в съответствие със специфичната семантика на ресурса. Например POST се използва за следните функции (наред с други):
- Предоставяне на блок от данни, като например полетата, въведени в HTML формуляр, на процес за обработка на данни;
- Представяне на съобщение на табло за обяви, група за новини, пощенски списък, блог или подобна група от статии;
- Създаване на нов ресурс, който все още не е идентифициран от сървъра на произхода; и
- Прилагане на данни към съществуващо(и) представяне(я) на ресурс.
Сървърът на произхода указва семантиката на отговора, като избира подходящ код на състоянието в зависимост от резултата от обработката на заявката POST; почти всички кодове на състоянието, определени от тази спецификация, могат да бъдат получени в отговор на POST (изключенията са 206 (Частично съдържание), 304 (Не е променено) и 416 (Обхватът не е изпълним)).
Ако един или повече ресурси са създадени на сървъра на произхода в резултат на успешното обработване на заявката POST, сървърът на произхода ЗАДЪЛЖИТЕЛНО изпраща отговор 201 (Създаден), съдържащ заглавно поле Местоположение, което предоставя идентификатор за създадения първичен ресурс (раздел 7.1.2) и представяне, което описва състоянието на заявката, като същевременно препраща към нов(и) ресурс(и).
Отговорите на POST заявки могат да се кешират само когато включват изрична информация за свежест (вж. раздел 4.2.1 на [RFC7234]). Въпреки това POST кеширането не е широко прилагано. За случаите, когато сървърът на произхода желае клиентът да може да кешира резултата от POST по начин, който може да бъде използван повторно от по-късен GET, сървърът на произхода МОЖЕ да изпрати отговор 200 (OK), съдържащ резултата и поле от заглавието Content-Location, което има същата стойност като ефективния URI на POST заявката (Раздел 3.1.4.2).
Ако резултатът от обработката на POST би бил еквивалентен на представяне на съществуващ ресурс, сървърът на произхода МОЖЕ да пренасочи потребителския агент към този ресурс, като изпрати отговор 303 (Виж друго) с идентификатора на съществуващия ресурс в полето Location. Това има предимствата да предостави на потребителския агент идентификатор на ресурса и да прехвърли представянето чрез метод, който е по-подходящ за споделено кеширане, макар и с цената на допълнителна заявка, ако потребителският агент вече не е кеширал представянето.
Описание на метода POST
Пример за 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
}