Spec-Zone.ru › HTTP

POST

POST

Запрос POST отправляет данные на сервер. Тип тела запроса указан заголовком Content-Type.

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

Запрос POST обычно отправляется через форму HTML и приводит к изменению на сервере. В этом случае тип содержимого выбирается путём вставки соответствующей строки в атрибут enctype элемента <form> или атрибут formenctype элемента <input> или <button>:

  • application/x-www-form-urlencoded: ключи и значения закодированы в парах "ключ-значение", разделённых '&', с '=' между ключом и значением. Небуквенно-цифровые символы как в ключах, так и в значениях кодируются в процентах: это причина, по которой этот тип не подходит для использования с бинарными данными (используйте multipart/form-data вместо этого)
  • multipart/form-data: каждое значение отправляется как блок данных ("часть тела"), разделённый определяемым пользователем разделителем ("граница"). Ключи задаются в заголовке Content-Disposition каждой части.
  • text/plain

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

  • Аннотация существующих ресурсов
  • Отправка сообщения на доску объявлений, новостную группу, список рассылки или аналогичную группу статей;
  • Добавление нового пользователя через модальное окно регистрации;
  • Предоставление блока данных, например, результат отправки формы, для обработки данных;
  • Расширение базы данных с помощью операции добавления.
Запрос имеет тело Да
Успешный ответ имеет тело Да
Безопасный Нет
Идемпотентный Нет
Кэшируемый Только если включена информация о свежести
Разрешено в формах HTML Да

Синтаксис

POST /test

Пример

Простая форма, использующая тип содержимого application/x-www-form-urlencoded по умолчанию:

POST /test HTTP/1.1
Host: foo.example
Content-Type: application/x-www-form-urlencoded
Content-Length: 27

field1=value1&field2=value2

Форма, использующая тип содержимого multipart/form-data:

POST /test HTTP/1.1
Host: foo.example
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
--boundary--

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

Спецификация
Семантика HTTP
# POST

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
POST
Да
12
Да
Да
Да
Да
Да
Да
Да
Да
Да
Да

См. также

  • Content-Type
  • Content-Disposition
  • GET

© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API