Методы: 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