HTTP-метод POST надсилає дані на сервер. Тип тіла запиту позначається в заголовку Content-Type .

Різниця між PUT і POST полягає в тому, що PUT є ідемпотентним: кілька послідовних викликів має той же ефект що і один раз (не дасть побічних ефектів). В противагу цьому, послідовні ідентичні виклики POST можуть мати додаткові ефекти, подібно проходження замовлення кілька разів.

Запит POST зазвичай надсилається через HTML-форму і призводить до зміни на сервері. У цьому випадку тип вмісту вибирається шляхом введення відповідного рядка в атрибут enctype елемента <form>, або в атрибут formenctype елементів <input> або <button>:

  • application/x-www-form-urlencoded: ключі та значення кодуються в кортежах ключ-значення, розділених символом '&' з '=' між ключем і значенням. Цей тип не підходить для використання з двійковими даними, тому що тут не дозволяються не алфавітно-цифрові символи як в ключах так і в значеннях percent encoded, використовуйте замість цього multipart/form-data
  • multipart/form-data
  • text/plain

Коли запит POST відправляється за допомогою методу, відмінного від HTML-форми - як наприклад через XMLHttpRequest - тіло може приймати будь-який тип. Як описано в специфікації HTTP 1.1, POST призначений для забезпечення уніфікованого методу для виконання наступних функцій:

  • Анотування існуючих ресурсів
  • Розміщення повідомлення на дошці оголошень, групі новин, списку розсилки або подібній групі статей;
  • Додавання нового користувача через реєстраційне вікно;
  •  Надання блоку даних, таких як результат подання форми до процесу обробки даних;
  • Розширення бази даних через операцію додавання.
Запит має тіло Так
Успішна відповідь має тіло Так
Safe Ні
Idempotent Ні
Cacheable Тільки у випадку, якщо включена інформація про свіжість
Дозволений в HTML-формах Так

Синтаксис

POST /index.html

Приклад

Проста форма з використанням типового типу вмісту application/x-www-form-urlencoded:

POST / HTTP/1.1
Host: foo.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 13

say=Hi&to=Mom

Форма, що використовує тип вмісту multipart/form-data:

POST /test.html HTTP/1.1 
Host: example.org 
Content-Type: multipart/form-data;boundary="boundary" 

--boundary 
Content-Disposition: form-data; name="field1" 

value1 
--boundary 
Content-Disposition: form-data; name="field2"; filename="example.txt" 

value2

Специфікація

Specification Title
RFC 7231, section 4.3.3: POST Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content

Сумісність з браузерами

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Basic supportChrome Full support YesEdge Full support YesFirefox Full support YesIE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes

Legend

Full support  
Full support

See also

Мітки документа й учасники

Зробили внесок у цю сторінку: pupenasan
Востаннє оновлена: pupenasan,