Spec-Zone.ru › HTTP

Методы: POST

Метод запроса POST

Базовая поддержка Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

  • Подробнее
  • Полная таблица совместимости
>

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

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

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

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

Если запрос POST отправляется после вызова fetch() или по любой другой причине, не связанной с HTML-формой, тело может иметь любой тип. Согласно спецификации HTTP 1.1, POST предназначен для обеспечения универсального метода, охватывающего следующие функции:

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

Синтаксис

POST <request-target>["?"<query>] HTTP/1.1
<request-target>

Определяет целевой ресурс запроса вместе со сведениями, указанными в заголовке Host. В запросах к исходному серверу это абсолютный путь (например, /path/to/file.html), а в запросах к прокси-серверам — абсолютный URL (например, http://www.example.com/path/to/file.html).

<query> Необязательно

Необязательный компонент запроса, перед которым ставится вопросительный знак ?. Часто используется для передачи идентифицирующих сведений в виде пар key=value.

Примеры

>

Отправка формы с URL-кодированием

Форма, использующая кодировку содержимого application/x-www-form-urlencoded (по умолчанию), отправляет запрос, в теле которого данные формы представлены парами key=value, разделёнными символом &, как показано ниже:

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

field1=value1&field2=value2

Отправка формы с несколькими частями

Кодировка multipart/form-data используется, когда форма содержит файлы или большой объём данных. В теле такого запроса каждая часть формы отделяется строкой-разделителем. Пример запроса в этом формате:

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

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

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

value2
--delimiter12345--

Заголовок Content-Disposition указывает, как следует обрабатывать данные формы, задавая имя поля name и filename, если это необходимо.

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

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

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

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari для iOS Samsung Internet WebView для Android WebView для iOS
POST 1 12 1 15 1 18 4 14 1 1.0 4.4 1

См. также

  • Методы запросов HTTP
  • Коды состояния ответов HTTP
  • Заголовки HTTP
  • Заголовок Content-Type
  • Заголовок Content-Disposition
  • Метод GET

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

Spec-Zone.ru

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