aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/http/methods/post/index.html
blob: 7d1c4d6eb5f5dfab4c6fa6ebdb53a7fd9dc63e16 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
---
title: POST
slug: Web/HTTP/Methods/POST
tags:
  - HTTP
  - Метод запроса
  - Справка
translation_of: Web/HTTP/Methods/POST
---
<div>{{HTTPSidebar}}</div>

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

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

<p><span id="result_box" lang="ru"><span title="A POST request is typically sent via an HTML form and results in a change on the server.">Запрос <code>POST</code> обычно отправляется через форму HTML и приводит к изменению на сервере. </span><span title="In this case, the content type is selected by putting the adequate string in the enctype attribute of the &lt;form> element or the formenctype attribute of the &lt;input> or &lt;button> elements:">В этом случае тип содержимого выбирается путём размещения соответствующей строки в атрибуте {{htmlattrxref ("enctype", "form")}} элемента {{HTMLElement ("form")}} или {{htmlattrxref ("formenctype", "input")}} атрибута элементов {{HTMLElement ("input")}} или {{HTMLElement ("button")}}:</span></span></p>

<ul>
 <li><span title="application/x-www-form-urlencoded: the values are encoded in key-value tuples separated by '&amp;', with a '=' between the key and the value."><code>application/x-www-form-urlencoded</code>: значения кодируются в кортежах с ключом, разделённых символом <code>'&amp;'</code>, с <code>'='</code> между ключом и значением. </span><span title="Non-alphanumeric characters are percent encoded: this is the reason why this type is not suitable to use with binary data (use multipart/form-data instead)">Не буквенно-цифровые символы - {{glossary ("percent encoded")}}: это причина, по которой этот тип не подходит для использования с двоичными данными (вместо этого используйте <code>multipart/form-data</code>)</span></li>
 <li><code><span title="multipart/form-data">multipart/form-data</span></code>: каждое значение посылается как блок данных ("body part"), с заданными пользовательским клиентом разделителем ("boundary"), разделяющим каждую часть. Эти ключи даются в заголовки <code>Content-Disposition</code> каждой части</li>
 <li><code><span title="text/plain">text/plain</span></code></li>
</ul>

<p><span title="When the POST request is sent via a method other than an HTML form — like via an XMLHttpRequest — the body can take any type.">Когда запрос <code>POST</code> отправляется с помощью метода, отличного от HTML-формы, </span><span title="When the POST request is sent via a method other than an HTML form — like via an XMLHttpRequest — the body can take any type.">— например, через {{domxref ("XMLHttpRequest")}} </span><span title="When the POST request is sent via a method other than an HTML form — like via an XMLHttpRequest — the body can take any type.">— тело может принимать любой тип. </span><span title="As described in the HTTP 1.1 specification, POST is designed to allow a uniform method to cover the following functions:">Как описано в спецификации HTTP 1.1, <code>POST</code> предназначен для обеспечения единообразного метода для покрытия следующих функций:</span></p>

<ul>
 <li><span id="result_box" lang="ru"><span>Аннотация существующих ресурсов</span></span></li>
 <li><span id="result_box" lang="ru"><span>Публикация сообщения на доске объявлений, в новостной группе, в списке рассылки или в аналогичной группе статей;</span></span></li>
 <li><span id="result_box" lang="ru"><span>Добавление нового пользователя посредством модальности регистрации;</span></span></li>
 <li><span id="result_box" lang="ru"><span>Предоставление блока данных, например, результата отправки формы, процессу обработки данных;</span></span></li>
 <li><span id="result_box" lang="ru"><span>Расширение базы данных с помощью операции добавления.</span></span></li>
</ul>

<table class="properties">
 <tbody>
  <tr>
   <th scope="row">Запрос имеет тело</th>
   <td>Да</td>
  </tr>
  <tr>
   <th scope="row">Успешный ответ имеет тело</th>
   <td>Да</td>
  </tr>
  <tr>
   <th scope="row">{{Glossary("Safe", "Безопасный")}}</th>
   <td>Нет</td>
  </tr>
  <tr>
   <th scope="row">{{Glossary("Idempotent", "Идемпотентный")}}</th>
   <td>Нет</td>
  </tr>
  <tr>
   <th scope="row">{{Glossary("Cacheable", "Кешируемый")}}</th>
   <td>Только если включена информация о свежести сообщения</td>
  </tr>
  <tr>
   <th scope="row">Допускается в <a href="/ru/docs/Learn/HTML/Forms">HTML-формах</a></th>
   <td>Да</td>
  </tr>
 </tbody>
</table>

<h2 id="Синтаксис">Синтаксис</h2>

<pre class="syntaxbox">POST /index.html</pre>

<h2 id="Пример">Пример</h2>

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

<pre class="line-numbers  language-html">POST / HTTP/1.1
Host: foo.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 13

say=Hi&amp;to=Mom</pre>

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

<pre>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--
</pre>

<h2 id="Спецификация">Спецификация</h2>

{{Specifications}}

<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
<p>{{Compat("http.methods.POST")}}</p>

<h2 id="Смотрите_также">Смотрите также</h2>

<ul>
 <li>{{HTTPHeader("Content-Type")}}</li>
 <li>{{HTTPHeader("Content-Disposition")}}</li>
 <li><a href="/ru/docs/Web/HTTP/Methods/GET">GET</a></li>
</ul>