Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. HTTP
  3. Reference
  4. Заголовки HTTP
  5. Content-Disposition

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

Content-Disposition

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨июль 2015 г.⁩.

В обычном HTTP-ответе заголовокContent-Disposition является индикатором того, что ожидаемый контент ответа будет отображаться в браузере, как веб-страница или часть веб-страницы, или же как вложение, которое затем может быть скачано и сохранено локально.

В случае, если тело HTTP-запроса типаmultipart/form-data, то общий заголовокContent-Disposition используется для каждой из составных частей multipart тела для указания дополнительных сведений по полю, к которому применён заголовок. Каждая часть отделена с помощьюграницы (boundary), определённой в заголовкеContent-Type.Content-Disposition, используемый непосредственно для всего тела HTTP-запроса, ни на что не влияет.

ЗаголовокContent-Disposition определён для более широкого контекста MIME-сообщений для e-mail, поэтому для HTTP-форм иPOST-запросов используются только несколько допустимых параметров. В контексте HTTP можно использовать только значениеform-data, а также опциональные директивыname иfilename.

Тип заголовкаЗаголовок ответа (для тела ответа простого типа)
Основной заголовок (для каждой части составного тела)
Запрещённое имя заголовканет

Синтаксис

Как заголовок ответа с обычным телом

Первым параметром в контексте HTTP должен быть илиinline (это значение по умолчанию, указывающее, что контент должен быть отображён внутри веб-страницы или как веб-страница) илиattachment (указывает на скачиваемый контент; большинство браузеров отображают диалог "Сохранить как" с заранее заполненным именем файла из параметраfilename, если он задан).

Content-Disposition: inlineContent-Disposition: attachmentContent-Disposition: attachment; filename="filename.jpg"

Как заголовок в составном теле

Первым параметром в контексте HTTP всегда являетсяform-data; дополнительные параметры регистронезависимые и могут иметь аргументы, значения которых следуют после знака'=' и берутся в кавычки. Несколько параметров разделяются через точку с запятой (';').

Content-Disposition: form-dataContent-Disposition: form-data; name="fieldName"Content-Disposition: form-data; name="fieldName"; filename="filename.jpg"

Директивы

name

За параметром следует строка с именем HTML-поля на форме, к которому относится данная часть составного тела. При работе с несколькими файлами в том же самом поле (например, атрибутыmultiple элемента<input type=file>), могут быть несколько частей с одинаковым именем.Еслиname имеет значение'_charset_', указывающее, что данная часть не является HTML-полем, то она содержит кодировку по умолчанию для всех частей, в которых явно кодировка не указана.

filename

За параметром указана строка с оригинальным именем передаваемого файла. Это имя опционально и не может слепо использоваться приложением: информация о пути должна быть очищена и должно быть сделано преобразование к файловой системе сервера. Этот параметр предоставляет в основном справочную информацию. Когда используется в комбинации сContent-Disposition: attachment, это значение будет использовано как имя файла по умолчанию для диалога "Сохранить как".

filename*

Оба параметра "filename" и "filename*" отличаются только тем, что "filename*" использует кодирование, определённое вRFC 5987. Когда присутствуют оба параметра "filename" и "filename*" в одном поле заголовке, то преимущество имеет "filename*" над "filename", но только в случае когда оба значения корректны.

Примеры

Ответ, вызывающий диалог "Сохранить как":

200 OKContent-Type: text/html; charset=utf-8Content-Disposition: attachment; filename="cool.html"Content-Length: 22<HTML>Save me!</HTML>

Простой HTML-файл будет сохранён как обычное сохранение с диалогом "Сохранить как" вместо отображения контента файла в браузере. Большинство браузеров предложат его сохранить под именемcool.html (это поведение по умолчанию).

Пример HTML-формы, переданной через POST с использованием форматаmultipart/form-data, который использует заголовокContent-Disposition:

POST /test.html HTTP/1.1Host: example.orgContent-Type: multipart/form-data;boundary="boundary"--boundaryContent-Disposition: form-data; name="field1"value1--boundaryContent-Disposition: form-data; name="field2"; filename="example.txt"value2--boundary--

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

СпецификацияНазвание
RFC 7578Returning Values from Forms: multipart/form-data
RFC 6266Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)
RFC 2183Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field

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

Замечания по совместимости

  • Firefox 5 обрабатываетContent-Disposition заголовка HTTP-ответа response более эффективно, если присутствуют оба параметраfilename иfilename*; он просматривает сначала все предоставленные именаfilename*, даже есть вначале идутfilename. Ранее использовалось первое найденное имя. SeeFirefox bug 588781.

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

  • HTML-формы
  • Content-Type определяет границу для частей составного тела.
  • ИнтерфейсFormData используется для обработки данных форм для использования в APIXMLHttpRequest.

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp