MIME-типы | htmlbook.ru

MIME (Multipurpose Internet Mail Extension, Многоцелевые расширения почты Интернета) — спецификация для передачи по сети файлов различного типа: изображений, музыки, текстов, видео, архивов и др. Указание MIME-типа используется в HTML обычно при передаче данных форм и вставки на страницу различных объектов.

Некоторые популярные MIME-типы и расширения файлов с ними связанных приведены в табл. 1.

Табл. 1. MIME-типы
Расширение файлаТип данных
aiapplication/postscript
aifaudio/aiff
aifaudio/x-aiff
aiffaudio/aiff
aiffaudio/x-aiff
aniapplication/x-navi-animation
aosapplication/x-nokia-9000-communicator-add-on-software
apsapplication/mime
arcapplication/octet-stream
arjapplication/arj
arjapplication/octet-stream
artimage/x-jg
asfvideo/x-ms-asf
asmtext/x-asm
asptext/asp
asxapplication/x-mplayer2
asxvideo/x-ms-asf
asxvideo/x-ms-asf-plugin
auaudio/basic
auaudio/x-au
aviapplication/x-troff-msvideo
avivideo/avi
avivideo/msvideo
avivideo/x-msvideo
binapplication/mac-binary
binapplication/macbinary
binapplication/octet-stream
binapplication/x-binary
binapplication/x-macbinary
bmimage/bmp
bmpimage/bmp
bmpimage/x-windows-bmp
booapplication/book
bookapplication/book
ctext/x-c
c++text/plain
ccadapplication/clariscad
classapplication/java
classapplication/java-byte-code
classapplication/x-java-class
comapplication/octet-stream
comtext/plain
conftext/plain
cpptext/x-c
cptapplication/mac-compactpro
cptapplication/x-compactpro
cptapplication/x-cpt
cssapplication/x-pointplus
csstext/css
dcrapplication/x-director
deftext/plain
difvideo/x-dv
dirapplication/x-director
dlvideo/dl
dlvideo/x-dl
docapplication/msword
dotapplication/msword
drwapplication/drafting
dviapplication/x-dvi
dwgapplication/acad
dwgimage/vnd. dwg
dwgimage/x-dwg
dxfapplication/dxf
dxfimage/vnd.dwg
dxfimage/x-dwg
dxrapplication/x-director
exeapplication/octet-stream
gifimage/gif
gzapplication/x-compressed
gzapplication/x-gzip
gzipapplication/x-gzip
gzipmultipart/x-gzip
htext/plain
htext/x-h
hlpapplication/hlp
hlpapplication/x-helpfile
hlpapplication/x-winhelp
htctext/x-component
htmtext/html
htmltext/html
htmlstext/html
htttext/webviewhtml
icex-conference/x-cooltalk
icoimage/x-icon
infapplication/inf
jamaudio/x-jam
javtext/plain
javtext/x-java-source
javatext/plain
javatext/x-java-source
jcmapplication/x-java-commerce
jfifimage/jpeg
jfifimage/pjpeg
jfif-tbnlimage/jpeg
jpeimage/jpeg
jpeimage/pjpeg
jpegimage/jpeg
jpegimage/pjpeg
jpgimage/jpeg
jpgimage/pjpeg
jpsimage/x-jps
jsapplication/x-javascript
jsapplication/javascript
jsapplication/ecmascript
jstext/javascript
jstext/ecmascript
latexapplication/x-latex
lhaapplication/lha
lhaapplication/octet-stream
lhaapplication/x-lha
lhxapplication/octet-stream
listtext/plain
lspapplication/x-lisp
lsptext/x-script. lisp
lsttext/plain
lzhapplication/octet-stream
lzhapplication/x-lzh
lzxapplication/lzx
lzxapplication/octet-stream
lzxapplication/x-lzx
m3uaudio/x-mpequrl
manapplication/x-troff-man
midapplication/x-midi
midaudio/midi
midaudio/x-mid
midaudio/x-midi
midmusic/crescendo
midx-music/x-midi
midiapplication/x-midi
midiaudio/midi
midiaudio/x-mid
midiaudio/x-midi
midimusic/crescendo
midix-music/x-midi
modaudio/mod
modaudio/x-mod
movvideo/quicktime
movievideo/x-sgi-movie
mp2audio/mpeg
mp2audio/x-mpeg
mp2video/mpeg
mp2video/x-mpeg
mp2video/x-mpeq2a
mp3audio/mpeg3
mp3audio/x-mpeg-3
mp3video/mpeg
mp3video/x-mpeg
mp4video/mp4
mpaaudio/mpeg
mpavideo/mpeg
mpegvideo/mpeg
mpgaudio/mpeg
mpgvideo/mpeg
mpgaaudio/mpeg
pastext/pascal
pclapplication/vnd. hp-pcl
pclapplication/x-pcl
pctimage/x-pict
pcximage/x-pcx
pdfapplication/pdf
picimage/pict
pictimage/pict
pltext/plain
pltext/x-script.perl
pmimage/x-xpixmap
pmtext/x-script.perl-module
pm4application/x-pagemaker
pm5application/x-pagemaker
pngimage/png
potapplication/mspowerpoint
potapplication/vnd.ms-powerpoint
ppaapplication/vnd.ms-powerpoint
ppsapplication/mspowerpoint
ppsapplication/vnd.ms-powerpoint
pptapplication/mspowerpoint
pptapplication/powerpoint
pptapplication/vnd. ms-powerpoint
pptapplication/x-mspowerpoint
ppzapplication/mspowerpoint
psapplication/postscript
psdapplication/octet-stream
pwzapplication/vnd.ms-powerpoint
pytext/x-script.phyton
pycapplicaiton/x-bytecode.python
qtvideo/quicktime
qtifimage/x-quicktime
raaudio/x-pn-realaudio
raaudio/x-pn-realaudio-plugin
raaudio/x-realaudio
ramaudio/x-pn-realaudio
rmapplication/vnd.rn-realmedia
rmaudio/x-pn-realaudio
rpmaudio/x-pn-realaudio-plugin
rtfapplication/rtf
rtfapplication/x-rtf
rtftext/richtext
rtxapplication/rtf
rtxtext/richtext
rvvideo/vnd. rn-realvideo
sgmltext/sgml
sgmltext/x-sgml
shapplication/x-bsh
shapplication/x-sh
shapplication/x-shar
shtext/x-script.sh
shtmltext/html
shtmltext/x-server-parsed-html
ssitext/x-server-parsed-html
tarapplication/x-tar
tclapplication/x-tcl
tcltext/x-script.tcl
textapplication/plain
texttext/plain
tgzapplication/gnutar
tgzapplication/x-compressed
tifimage/tiff
tifimage/x-tiff
tiffimage/tiff
tiffimage/x-tiff
txttext/plain
uritext/uri-list
vcdapplication/x-cdlink
vmdapplication/vocaltec-media-desc
vrmlapplication/x-vrml
vrmlmodel/vrml
vrmlx-world/x-vrml
vsdapplication/x-visio
vstapplication/x-visio
vswapplication/x-visio
wavaudio/wav
wavaudio/x-wav
wmfwindows/metafile
xlaapplication/excel
xlaapplication/x-excel
xlaapplication/x-msexcel
xlbapplication/excel
xlbapplication/vnd. ms-excel
xlbapplication/x-excel
xlcapplication/excel
xlcapplication/vnd.ms-excel
xlcapplication/x-excel
xldapplication/excel
xldapplication/x-excel
xlkapplication/excel
xlkapplication/x-excel
xllapplication/excel
xllapplication/vnd.ms-excel
xllapplication/x-excel
xlmapplication/excel
xlmapplication/vnd.ms-excel
xlmapplication/x-excel
xlsapplication/excel
xlsapplication/vnd.ms-excel
xlsapplication/x-excel
xlsapplication/x-msexcel
xltapplication/excel
xltapplication/x-excel
xlvapplication/excel
xlvapplication/x-excel
xlwapplication/excel
xlwapplication/vnd. ms-excel
xlwapplication/x-excel
xlwapplication/x-msexcel
xmaudio/xm
xmlapplication/xml
xmltext/xml
zapplication/x-compress
zapplication/x-compressed
zipapplication/x-compressed
zipapplication/x-zip-compressed
zipapplication/zip
zipmultipart/x-zip

HTML/Прагма директива content-type (Элемент meta)

Синтаксис

HTML

XHTML

<head>
  ...
  <meta http-equiv="content-type"
        content="[значение]">
  ... 
</head>

Описание

Прагма директива content-type (от англ. «content type» ‒ «тип содержимого») указывает тип и кодировку символов документа.

Примечание

В HTML5 данная прагма является альтернативной формой «charset» атрибута.


Поддержка браузерами

Chrome

Поддерж.

Firefox

Поддерж.

Opera

Поддерж.

Maxthon

Поддерж.

IExplorer

Поддерж.

Safari

Поддерж.

iOS

Поддерж.

Android

Поддерж.


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

Верс.Раздел
HTML
2.0Associated Meta-information: METAПеревод
3.2META
4.01The META element
http-equiv = name [CI]…
DTD: Transitional Strict Frameset
5.04. 2.5.3 Pragma directives
http-equiv=»content-type»…
5.14.2.5.3. Pragma directives
http-equiv=»content-type»…
XHTML
1.0Extensible HyperText Markup Language
DTD: Transitional Strict Frameset
1.1Extensible HyperText Markup Language

Значения атрибута «content»

Атрибут «content» должен иметь значение, являющееся строкой из регистронезависимых ASCII символов, которая состоит из: символьной строки «

text/html;», за которой может следовать любое количество пробелов, за которыми указывается строка «charset=», после которой следует метка обозначающая определённую кодировку символов.

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Регистр символов: не учитывается.


Пример использования

Листинг кода

<!DOCTYPE html>
<html>
<head>
<meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″>

<title>Прагма директива content-type</title>
</head>
<body>
<h2>Пример использования прагма директивы «content-type»</h2>
<p>Данный документ использует UTF-8 в качестве кодировки символов документа.</p>
</body>
</html>

Прагма директива content-type

Тип содержимого — HTTP | MDN

Заголовок представления Content-Type используется для указания исходного типа мультимедиа ресурса (до любого кодирования контента, применяемого для отправки).

В ответах заголовок Content-Type предоставляет клиенту фактический тип возвращаемого содержимого.

Значение этого заголовка может быть проигнорировано, например, когда браузеры выполняют прослушивание MIME; установите для заголовка X-Content-Type-Options значение nosniff для предотвращения такого поведения.

В запросах (например, POST или PUT ) клиент сообщает серверу, какой тип данных фактически отправляется.

Тип коллектора Заголовок представления
Запрещенное имя заголовка нет
Заголовок ответа CORS-списка надежных отправителей да
Заголовок запроса CORS-списка надежных отправителей да, с дополнительным ограничением, что значения не могут содержать CORS-небезопасный байт заголовка запроса : 0x00-0x1F (кроме 0x09 (HT)), "():<>?@[\]{} и 0x7F (DEL).
Также необходимо иметь MIME-тип своего анализируемого значения (игнорируя параметры) либо приложение/x-www-form-urlencoded , multipart/form-data или text/plain .
 Тип содержимого: текст/html; кодировка = utf-8
Content-Type: multipart/form-data; граница = что-то
 
тип носителя

MIME-тип ресурса или данных.

кодировка

Стандарт кодировки символов. Нечувствителен к регистру, предпочтительнее нижний регистр.

граница

Для составных объектов требуется директива border . Директива состоит из 1–70 символов из набора символов (не заканчивающегося пробелом), который, как известно, очень надежен для шлюзов электронной почты. Он используется для инкапсуляции границ нескольких частей сообщения. Часто к границе заголовка добавляются два дефиса, а к последней границе добавляются два дефиса в конце.

Content-Type в HTML-формах

В запросе POST , полученном в результате отправки HTML-формы, Content-Type запроса определяется атрибутом enctype в

элемент.

 
  
  
  

 

Запрос выглядит примерно так (менее интересные заголовки здесь опущены):

 POST /foo HTTP/1.1
Длина контента: 68137
Content-Type: multipart/form-data; граница=-------------------------------------------------------974767299852498929531610575
-----------------------------974767299852498929531610575
Content-Disposition: данные формы; имя = "описание"
какой-то текст
-----------------------------974767299852498929531610575
Content-Disposition: данные формы; имя = "мой файл"; имя файла="foo.
txt" Content-Type: текстовый/обычный (содержимое загруженного файла foo.txt) -----------------------------974767299852498929531610575--
. включено. Включите JavaScript для просмотра данных.

  • Принять
  • Контент-Расположение
  • 206 Частичное содержание
  • X-Content-Type-Options

Обнаружили проблему с содержанием этой страницы?

  • Отредактируйте страницу на GitHub.
  • Сообщить о проблеме с содержимым.
  • Посмотреть исходный код на GitHub.

Хотите принять более активное участие?

Узнайте, как внести свой вклад.

Последний раз эта страница была изменена участниками MDN.

Типы MIME (типы мультимедиа IANA) — HTTP

Тип носителя (также известный как Многоцелевые расширения электронной почты Интернета или тип MIME ) указывает характер и формат документа, файла или набора байтов. Типы MIME определены и стандартизированы в IETF RFC 6838.

Управление по присвоению номеров в Интернете (IANA) отвечает за все официальные типы MIME, и вы можете найти самый последний и полный список на их странице типов носителей.

Предупреждение: Браузеры используют тип MIME, , а не расширение файла , чтобы определить, как обрабатывать URL-адрес, поэтому важно, чтобы веб-серверы отправляли правильный тип MIME в ответе Заголовок Content-Type . Если это не настроено правильно, браузеры могут неправильно интерпретировать содержимое файлов, сайты не будут работать правильно, а загруженные файлы могут быть неправильно обработаны.

Тип MIME чаще всего состоит всего из двух частей: типа и подтипа , разделенных косой чертой ( / ) без пробела между:

 тип/подтип
 

Тип представляет общую категорию, в которую попадает тип данных, например видео или текст .

Подтип идентифицирует точный тип данных указанного типа, который представляет тип MIME. Например, для MIME-типа текст подтипом может быть обычный (обычный текст), html (исходный код HTML) или

календарь (для iCalendar/ .ics ).

Каждый тип имеет собственный набор возможных подтипов. Тип MIME всегда имеет и тип, и подтип, а не только один или другой.

Можно добавить необязательный параметр для предоставления дополнительных сведений:

 тип/подтип; параметр=значение
 

Например, для любого типа MIME, основным типом которого является text , вы можете добавить необязательный параметр charset , чтобы указать набор символов, используемый для символов в данных. Если кодировка не указана, по умолчанию используется ASCII ( US-ASCII ), если это не переопределено настройками пользовательского агента. Чтобы указать текстовый файл UTF-8, тип MIME text/plain;charset=UTF-8 используется.

Типы MIME нечувствительны к регистру, но обычно пишутся строчными буквами. Значения параметров могут быть чувствительны к регистру.

Типы

Существует два класса типа: дискретный и составной . Дискретные типы — это типы, представляющие один файл или носитель, например один текстовый или музыкальный файл или одно видео. Составной тип представляет собой документ, состоящий из нескольких составных частей, каждая из которых может иметь свой собственный тип MIME; или составной тип может инкапсулировать несколько файлов, отправляемых вместе в одной транзакции. Например, составные типы MIME используются при прикреплении нескольких файлов к электронному письму.

Дискретные типы

В настоящее время в IANA зарегистрированы следующие дискретные типы:

приложение

Любые двоичные данные, которые явно не относятся ни к одному из других типов; либо данные, которые будут выполняться или интерпретироваться каким-либо образом, либо двоичные данные, для использования которых требуется определенное приложение или категория приложений. Общие двоичные данные (или двоичные данные, истинный тип которых неизвестен) — это application/octet-stream . Другие распространенные примеры включают application/pdf , application/pkcs8 и application/zip . (См. реестр типов приложений в IANA)

аудио

Аудио или музыкальные данные. Примеры включают аудио/mpeg , аудио/ворбис . (См. Реестр аудиотипов в IANA)

пример

Зарезервировано для использования в качестве заполнителя в примерах, показывающих, как использовать типы MIME. Они никогда не должны использоваться вне примеров листинга кода и документации. Пример также может использоваться как подтип; например, в примере, связанном с работой со звуком в Интернете, можно использовать MIME-тип audio/example , чтобы указать, что тип является заполнителем и должен быть заменен соответствующим при использовании кода в реальном мире. .

шрифт

Данные шрифта/начертания. Общие примеры включают font/woff , font/ttf и font/otf 9.0005 . (См. реестр типов шрифтов в IANA)

изображение

Изображения или графические данные, включая растровые и векторные неподвижные изображения, а также анимированные версии форматов неподвижных изображений, таких как анимированный GIF или APNG. Распространенными примерами являются image/jpeg , image/png и image/svg+xml . (См. реестр типов образов в IANA)

модель

Данные модели для 3D-объекта или сцены. Примеры включают модель /3mf и модель /vrml . (См. реестр типов моделей в IANA)

текст

Только текстовые данные, включая любое удобочитаемое содержимое, исходный код или текстовые данные, такие как данные в формате CSV. Примеры включают: text/plain , text/csv и text/html . (См. реестр текстовых типов в IANA)

видео

Видеоданные или файлы, такие как фильмы в формате MP4 ( видео/mp4 ). (См. реестр типов видео в IANA)

Для текстовых документов без определенного подтипа следует использовать text/plain . Точно так же для двоичных документов без конкретного или известного подтипа следует использовать application/octet-stream .

Составные типы

Составной 9Типы 0006 указывают категорию документа, разбитого на части, часто с разными типами MIME; их также можно использовать — особенно в электронной почте сценарии — для представления нескольких отдельных файлов, являющихся частью одного сделка. Они представляют составной документ .

За исключением multipart/form-data , используемого в методе POST HTML-форм, и multipart/byteranges , используемого с 206 Partial Content для отправки части документа, HTTP не обрабатывает составные части. документов особым образом: сообщение передается в браузер (который, скорее всего, показать окно «Сохранить как», если он не знает, как отобразить документ).

Существует два составных типа:

сообщение

Сообщение, которое инкапсулирует другие сообщения. Это можно использовать, например, для представления электронной почты, которая включает переадресованное сообщение как часть своих данных, или разрешить отправку очень больших сообщений кусками, как если бы это было несколько сообщений. Примеры включают message/rfc822 (для цитирования пересылаемых сообщений или ответов на них) и message/partial , позволяющие автоматически разбивать большое сообщение на более мелкие для повторной сборки получателем. (См. реестр типов сообщений в IANA)

составной

Данные, состоящие из нескольких компонентов, которые могут иметь разные типы MIME. Примеры включают multipart/form-data (для данных, созданных с использованием API FormData ) и multipart/byteranges (определено в RFC 7233, раздел 5.4.1 и используется с HTTP 206 ). Ответ «Частичное содержимое» возвращается, когда извлеченные данные являются только частью содержимого, например, доставляются с использованием Диапазон заголовка). (См. реестр составных типов в IANA)

application/octet-stream

Это значение по умолчанию для двоичных файлов. Поскольку это означает неизвестный двоичный файл , браузеры обычно не выполняют его или даже спрашивают, следует ли его выполнять. Они обрабатывают это так, как если бы заголовок Content-Disposition был установлен на вложение , и предлагают диалоговое окно «Сохранить как».

text/plain

Это значение по умолчанию для текстовых файлов. Даже если это действительно означает «неизвестный текстовый файл», браузеры предполагают, что они могут его отобразить.

Примечание: text/plain не означает «любые текстовые данные». Если они ожидают определенного типа текстовых данных, они, скорее всего, не сочтут это совпадением. В частности, если они загружают файл text/plain из элемента , объявляющего файл CSS, они не распознают его как действительный файл CSS, если представлен text/plain . Должен использоваться тип MIME CSS text/css .

текст/CSS

Файлы CSS, используемые для оформления веб-страницы , должны отправляться с text/css . Если сервер не распознает суффикс .css для файлов CSS, он может отправить их с типами text/plain или application/octet-stream MIME. Если да, то они не будут распознаны как CSS большинством браузеров и будут проигнорированы.

text/html

Весь HTML-контент следует использовать с этим типом. Альтернативные типы MIME для XHTML (например, application/xhtml+xml ) в настоящее время в основном бесполезны.

Примечание: Используйте application/xml или application/xhtml+xml , если вам нужны строгие правила синтаксического анализа XML, разделы или элементы, которые не из HTML/ Пространства имен SVG/MathML.

текст/javascript

Согласно реестру типов мультимедиа IANA, RFC 9239 и спецификации HTML, содержимое JavaScript всегда должно обслуживаться с использованием типа MIME text/javascript . Никакие другие типы MIME не считаются допустимыми для JavaScript, и использование любого типа MIME, кроме text/javascript может привести к тому, что сценарии не будут загружаться или выполняться.

Вы можете обнаружить, что некоторый контент JavaScript неправильно обслуживается с параметром charset как часть типа MIME — как попытка указать набор символов для содержимого скрипта. Этот параметр charset недействителен для контента JavaScript и в большинстве случаев приводит к сбою загрузки скрипта.

Устаревшие типы MIME JavaScript

В дополнение к text/javascript Тип MIME, по историческим причинам, стандарт прослушивания MIME (определение того, как браузеры должны интерпретировать типы MIME и отображать что делать с контентом, который не является действительным) также позволяет использовать JavaScript с использованием любого из следующих устаревших типов MIME JavaScript:

  • приложение/javascript Not for use in new websites."> Устаревший
  • приложение/ecmascript Устаревший
  • приложение/x-ecmascript Нестандартный
  • приложение/x-javascript Нестандартный
  • текст/экмаскрипт Устаревший
  • текст/javascript1.0 Нестандартный
  • текст/javascript1.1 Нестандартный
  • текст/javascript1.2 "> Нестандартный
  • текст/javascript1.3 Нестандартный
  • текст/javascript1.4 Нестандартный
  • текст/javascript1.5 Нестандартный
  • текст/jscript Нестандартный
  • текст/сценарий Нестандартный
  • текст/x-ecmascript Нестандартный
  • текст/x-javascript "> Нестандартный

Примечание: Несмотря на то, что любой данный пользовательский агент может поддерживать некоторые или все из них, вы должны использовать только text/javascript . Это единственный тип MIME, который гарантированно будет работать сейчас и в будущем.

Типы изображений

Файлы с типом MIME image содержат данные изображения. Подтип указывает, какой конкретный формат файла изображения представляют данные.

Следующие типы изображений используются достаточно часто, чтобы считаться безопасными для использования на веб-страницах:

  • image/apng : Animated Portable Network Graphics (APNG)
  • image/avif : Формат файла изображения AV1 (AVIF)
  • image/gif : Формат обмена графикой (GIF)
  • image/jpeg : Изображение Объединенной экспертной группы по фотографии (JPEG)
  • image/png : Portable Network Graphics (PNG)
  • image/svg+xml : Масштабируемая векторная графика (SVG)
  • image/webp : Формат веб-изображения (WEBP)

Руководство по типам и форматам файлов изображений содержит информацию и рекомендации о том, когда следует использовать различные форматы изображений.

Типы аудио и видео

Как и в случае с изображениями, HTML не требует, чтобы веб-браузеры поддерживали какие-либо определенные типы файлов и кодеков для элементов и , поэтому важно учитывать ваша целевая аудитория и диапазон браузеров (и версий этих браузеров), которые они могут использовать при выборе типа файла и кодеков для мультимедиа.

Наше руководство по форматам медиаконтейнеров содержит список типов файлов, которые обычно поддерживаются веб-браузерами. включая информацию о том, какими могут быть их особые варианты использования, любые недостатки, которые у них есть, и информацию о совместимости, а также другие детали.

В руководствах по аудио- и видеокодекам перечислены различные кодеки, которые часто поддерживаются веб-браузерами, а также сведения о совместимости, а также техническая информация, например, сколько аудиоканалов они поддерживают, какой тип сжатия используется, какая скорость передачи данных и т. д. они поддерживают. полезно при. Кодеки, используемые в руководстве WebRTC, расширяют это, специально охватывая кодеки, поддерживаемые основными веб-браузерами, поэтому вы можете выбрать кодеки, которые лучше всего подходят для диапазона браузеров, которые вы хотите поддерживать.

Что касается MIME-типов аудио- или видеофайлов, они обычно определяют формат контейнера (тип файла). Необязательный параметр codecs можно добавить к типу MIME, чтобы дополнительно указать, какие кодеки использовать и какие параметры использовались для кодирования мультимедиа, например профиль кодека, уровень или другую подобную информацию.

Наиболее часто используемые типы MIME, используемые для веб-контента, перечислены ниже. Однако это не полный список всех типов, которые могут быть доступны. Для этого см. руководство по форматам медиаконтейнеров.

Спецификация
HTTP Semantics
# 206
HTTP Semantics
# Field.cont.cont-Tyty-Tyt-Tyt-Tyt-Tyty-Tyt-Tyt-Tyt-Tyt-Tyt-Tyt-Tyty-Tyt-Tyty-Tyt-Tyty-Tyt-Tyt-Tyt-Tyt-Tyt-Tyt-Tyt-Tyt-Tyt-TYTY
MIME-тип Аудио или видео тип
аудио/волна , аудио/wav , аудио/x-wav , аудио/x-pn-wav Аудиофайл в формате контейнера WAVE. Аудиокодек PCM (кодек WAVE "1") часто поддерживается, но другие кодеки имеют ограниченную поддержку (если есть).
аудио/веб-сайт Аудиофайл в формате контейнера WebM. Vorbis и Opus — это кодеки, официально поддерживаемые спецификацией WebM.
видео/веб-сайт Видеофайл, возможно, со звуком, в формате контейнера WebM. VP8 и VP9 — наиболее распространенные видеокодеки; Vorbis и Opus — самые распространенные аудиокодеки.
аудио/ogg Аудиофайл в формате контейнера Ogg. Vorbis — наиболее распространенный аудиокодек, используемый в таком контейнере; однако Opus теперь поддерживается и Ogg.
видео/ogg Видеофайл, возможно, со звуком, в формате контейнера Ogg. Theora — обычный видеокодек, используемый в нем; Vorbis — обычный аудиокодек, хотя Opus становится все более распространенным.
приложение/ogg Аудио- или видеофайл, использующий формат контейнера Ogg. Theora — обычный видеокодек, используемый в нем; Vorbis — обычный аудиокодек.

multipart/form-data

9Тип 0004 multipart/form-data можно использовать при отправке значений заполненной HTML-формы из браузера на сервер.

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

 Content-Type: multipart/form-data; граница = граничная строка
(другие заголовки, связанные с составным документом в целом)
--aBoundaryString
Content-Disposition: данные формы; имя = "мой файл"; имя_файла="img.jpg"
Тип содержимого: изображение/jpeg
(данные)
--aBoundaryString
Content-Disposition: данные формы; имя = "мое поле"
(данные)
--aBoundaryString
(больше подразделов)
--aBoundaryString--
 

Следующие <форма> :

 <форма
  действие = "http://локальный: 8000/"
  метод = "пост"
  enctype="multipart/form-data">
  
  
  <метка>
    Загрузить файл:  txt" />
  
  

 

отправит это сообщение:

 POST / HTTP/1.1
Хост: локальный: 8000
Агент пользователя: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
Принять: текст/html, приложение/xhtml+xml, приложение/xml; q = 0,9, */*; q = 0,8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Соединение: Keep-alive
Обновить-небезопасные-запросы: 1
Content-Type: multipart/form-data; граница=--------------------------------------------------------8721656041911415653955004498
Длина контента: 465
-----------------------------8721656041911415653955004498
Content-Disposition: данные формы; имя = "мое текстовое поле"
Тест
-----------------------------8721656041911415653955004498
Content-Disposition: данные формы; имя = "мой флажок"
на
-----------------------------8721656041911415653955004498
Content-Disposition: данные формы; имя = "мой файл"; имя файла="test.txt"
Content-Type: текстовый/обычный
Простой файл. 
-----------------------------8721656041911415653955004498--
 

multipart/byteranges

Тип multipart/byteranges MIME используется для отправки частичных ответов в браузер.

Когда отправляется код состояния 206 Partial Content , этот тип MIME указывает, что документ состоит из нескольких частей, по одной для каждой из запрошенные диапазоны. Как и другие составные типы, Content-Type использует границу для разделения частей. Каждая часть имеет заголовок Content-Type с его фактическим типом и Content-Range диапазона, который он представляет.

 HTTP/1.1 206 Частичное содержимое
Допустимые диапазоны: байты
Content-Type: multipart/byteranges; граница=3d6b6a416f9b5
Длина контента: 385
--3d6b6a416f9b5
Тип содержимого: текст/html
Content-Range: байты 100-200/1270
eta http-equiv="Content-type" content="text/html; charset=utf-8" />
    Содержимое 

Большинство веб-серверов отправляют нераспознанные ресурсы в виде MIME-типа application/octet-stream . Из соображений безопасности большинство браузеров не позволяют устанавливать пользовательское действие по умолчанию для таких ресурсов, вынуждая пользователя сохранять его на диск, чтобы использовать его.

Некоторые распространенные неверные конфигурации сервера:

  • RAR-сжатые файлы. В этом случае идеальным будет истинный тип исходных файлов; часто это невозможно, так как файлы .RAR могут содержать несколько ресурсов разных типов. В этом случае настройте сервер на отправку application/x-rar-compressed .
  • Аудио и видео. Только ресурсы с правильным типом MIME будут воспроизводиться в или элементов. Обязательно укажите правильный тип носителя для аудио и видео.
  • Собственные типы файлов. Избегайте использования application/octet-stream , поскольку большинство браузеров не позволяют определять поведение по умолчанию (например, «Открыть в Word») для этого универсального типа MIME. Специальный тип, такой как application/vnd.mspowerpoint , позволяет пользователям автоматически открывать такие файлы в программном обеспечении для презентаций по своему выбору.

При отсутствии типа MIME или в некоторых случаях, когда браузеры считают, что они неверны, браузеры могут выполнять Анализ MIME — угадывание правильного типа MIME по байтам ресурса.

Каждый браузер выполняет сниффинг MIME по-разному и при разных обстоятельствах. (Например, Safari будет смотреть на расширение файла в URL-адресе, если отправленный тип MIME не подходит.) Существуют проблемы с безопасностью, поскольку некоторые типы MIME представляют исполняемый контент. Серверы могут предотвратить прослушивание MIME, отправив заголовок X-Content-Type-Options .

Типы MIME — не единственный способ передать информацию о типе документа:

  • Иногда используются суффиксы имен файлов, особенно в Microsoft Windows. Не все операционные системы считают эти суффиксы значимыми (например, Linux и macOS), и нет гарантии, что они верны.