diff options
Diffstat (limited to 'files/ru/web/http/headers/content-disposition/index.html')
-rw-r--r-- | files/ru/web/http/headers/content-disposition/index.html | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/files/ru/web/http/headers/content-disposition/index.html b/files/ru/web/http/headers/content-disposition/index.html new file mode 100644 index 0000000000..7004a28735 --- /dev/null +++ b/files/ru/web/http/headers/content-disposition/index.html @@ -0,0 +1,138 @@ +--- +title: Content-Disposition +slug: Web/HTTP/Headers/Content-Disposition +tags: + - HTTP + - HTTP-заголовок + - header +translation_of: Web/HTTP/Headers/Content-Disposition +original_slug: Web/HTTP/Заголовки/Content-Disposition +--- +<div>{{HTTPSidebar}}</div> + +<div>В обычном HTTP-ответе заголовок <code><strong>Content-Disposition</strong></code> является индикатором того, что ожидаемый контент ответа будет отображаться в браузере, как вэб-страница или часть вэб-страницы, или же как вложение, которое затем может быть скачано и сохранено локально.</div> + +<div> </div> + +<p>В случае, если тело HTTP-запроса типа <code>multipart/form-data</code>, то общий заголовок <strong><code>Content-Disposition</code></strong> используется для каждой из составных частей multipart тела для указания дополнительных сведений по полю, к которому применён заголовок. Каждая часть отделена с помощью <em>границы (boundary)</em>, определённой в заголовке {{HTTPHeader("Content-Type")}}. <code>Content-Disposition,</code> используемый непосредственно для всего тела HTTP-запроса, ни на что не влияет.</p> + +<p>Заголовок <code>Content-Disposition</code> определён для более широкого контекста MIME-сообщений для e-mail, поэтому для HTTP-форм и {{HTTPMethod("POST")}}-запросов используются только несколько допустимых параметров. В контексте HTTP можно использовать только значение <code>form-data</code>, а также опциональные директивы <code>name</code> и <code>filename</code>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Тип заголовка</th> + <td>{{Glossary("Response header", "Заголовок ответа")}} (для тела ответа простого типа)<br> + {{Glossary("General header", "Основной заголовок")}} (для каждой части составного тела)</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "Запрещённое имя заголовка")}}</th> + <td>нет</td> + </tr> + </tbody> +</table> + +<h2 id="Синтаксис">Синтаксис</h2> + +<h3 id="Как_заголовок_ответа_с_обычным_телом">Как заголовок ответа с обычным телом</h3> + +<p>Первым параметром в контексте HTTP должен быть или <code>inline</code> (это значение по умолчанию, указывающее, что контент должен быть отображен внутри вэб-страницы или как вэб-страница) или <code>attachment</code> (указывает на скачиваемый контент; большинство браузеров отображают диалог "Сохранить как" с заранее заполненным именем файла из параметра <code>filename</code>, если он задан).</p> + +<pre class="syntaxbox">Content-Disposition: inline +Content-Disposition: attachment +Content-Disposition: attachment; filename="filename.jpg"</pre> + +<h3 id="Как_заголовок_в_составном_теле">Как заголовок в составном теле</h3> + +<p>Первым параметром в контексте HTTP всегда является <code>form-data</code>; дополнительные параметры регистронезависимые и могут иметь аргументы, значения которых следуют после знака <code>'='</code> и берутся в кавычки. Несколько параметров разделяются через точку с запятой (<code>';'</code>).</p> + +<pre class="syntaxbox">Content-Disposition: form-data +Content-Disposition: form-data; name="fieldName" +Content-Disposition: form-data; name="fieldName"; filename="filename.jpg"</pre> + +<h3 id="Директивы">Директивы</h3> + +<dl> + <dt><code>name</code></dt> + <dd>За параметром следует строка с именем HTML-поля на форме, к которому относится данная часть составного тела. При работе с несколькими файлами в том же самом поле (например, атрибуты {{htmlattrxref("multiple", "input")}} элемента <code>{{HTMLElement("input","<input type=file>")}}</code>), могут быть несколько частей с одинаковым именем.<br> + Если <code>name</code> имеет значение <code>'_charset_'</code>, указывающее, что данная часть не является HTML-полем, то она содержит кодировку по умолчанию для всех частей, в которых явно кодировка не указана.</dd> + <dt><code>filename</code></dt> + <dd>За параметром указана строка с оригинальным именем передаваемого файла. Это имя опционально и не может слепо использоваться приложением: информация о пути должна быть очищена и должно быть сделано преобразование к файловой системе сервера. Этот параметр предоставляет в основном справочную информацию. Когда используется в комбинации с <code>Content-Disposition: attachment</code>, это значение будет использовано как имя файла по умолчанию для диалога "Сохранить как".</dd> + <dt>filename*</dt> + <dd> + <p>Оба параметра "filename" и "filename*" отличаются только тем, что "filename*" использует кодирование, определённое в <a href="https://tools.ietf.org/html/rfc5987">RFC 5987</a>. Когда присутствуют оба параметра "filename" и "filename*" в одном поле заголовке, то преимущество имеет "filename*" над "filename", но только в случае когда оба значения корректны.</p> + </dd> +</dl> + +<h2 id="Примеры">Примеры</h2> + +<p>Ответ, вызывающий диалог "Сохранить как":</p> + +<pre>200 OK +Content-Type: text/html; charset=utf-8 +Content-Disposition: attachment; filename="cool.html" +Content-Length: 22 + +<HTML>Save me!</HTML> +</pre> + +<p>Простой HTML-файл будет сохранён как обычное сохранение с диалогом "Сохранить как" вместо отображения контента файла в браузере. Большинство браузеров предложат его сохранить под именем <code>cool.html</code> (это поведение по умолчанию).</p> + +<p>Пример HTML-формы, переданной через POST с использованием формата <code>multipart/form-data</code>, который использует заголовок <code>Content-Disposition</code>:</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> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Спецификация</th> + <th scope="col">Название</th> + </tr> + <tr> + <td>{{RFC("7578")}}</td> + <td>Returning Values from Forms: multipart/form-data</td> + </tr> + <tr> + <td>{{RFC("6266")}}</td> + <td>Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)</td> + </tr> + <tr> + <td>{{RFC("2183")}}</td> + <td>Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field</td> + </tr> + </tbody> +</table> + +<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Content-Disposition")}}</p> + +<h2 id="Замечания_по_совместимости">Замечания по совместимости</h2> + +<ul> + <li>Firefox 5 обрабатывает <code>Content-Disposition заголовка</code> HTTP-ответа response более эффективно, если присутствуют оба параметра <code>filename</code> и <code>filename*</code>; он просматривает сначала все предоставленные имена <code>filename*</code>, даже есть вначале идут <code>filename</code>. Ранее использовалось первое найденное имя. See {{bug(588781)}}.</li> +</ul> + +<h2 id="Смотрите_также">Смотрите также</h2> + +<ul> + <li><a href="/en-US/docs/Web/Guide/HTML/Forms">HTML-формы</a></li> + <li>{{HTTPHeader("Content-Type")}} определяет границу для частей составного тела.</li> + <li>Интерфейс {{domxref("FormData")}} используется для обработки данных форм для использования в API {{domxref("XMLHttpRequest")}}.</li> +</ul> |