--- title: POST slug: Web/HTTP/Methods/POST tags: - HTTP - Метод запроса - Справка translation_of: Web/HTTP/Methods/POST ---
{{HTTPSidebar}}

HTTP-метод POST предназначен для отправки данных на сервер. Тип тела запроса указывается в заголовке {{HTTPHeader("Content-Type")}}.

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

Запрос POST обычно отправляется через форму HTML и приводит к изменению на сервере. В этом случае тип содержимого выбирается путём размещения соответствующей строки в атрибуте {{htmlattrxref ("enctype", "form")}} элемента {{HTMLElement ("form")}} или {{htmlattrxref ("formenctype", "input")}} атрибута элементов {{HTMLElement ("input")}} или {{HTMLElement ("button")}}:

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

Запрос имеет тело Да
Успешный ответ имеет тело Да
{{Glossary("Safe", "Безопасный")}} Нет
{{Glossary("Idempotent", "Идемпотентный")}} Нет
{{Glossary("Cacheable", "Кешируемый")}} Только если включена информация о свежести сообщения
Допускается в HTML-формах Да

Синтаксис

POST /index.html

Пример

Простая форма запроса, используя стандартный application/x-www-form-urlencoded content type:

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

say=Hi&to=Mom

Форма запроса, используя multipart/form-data content type:

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
--boundary--

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

Спецификация Заголовок
{{RFC("7231", "POST", "4.3.3")}} Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content

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

{{Compat("http.methods.POST")}}

Смотрите также