Тема CSMM04. типы и форматы файлов;
MIME - расширенная многоцелевая почта Internet -
Multipurpose Internet Mail Extensions - расширенная многоцелевая почта Internet.
многоцелевая почта multipurpose mail
- электронная почта, передающая через сеть Internet сообщения, которые содержат
текст и добавленные к нему вложения. Передача таких сообщений определяется
стандартом MIME. Перед передачей сообщения преобразуются в специальный формат
и сжимаются. После передачи происходят обратные преобразования.
Сокращение Multipurpose Internet Mail Extensions, Многоцелевые Расширения
Почты Интернет. Спецификация для форматирования не-текстовых (не-ASCII)
сообщений, чтобы их можно было пересылать по Internet. Многие почтовые
программы (e-mail client) поддерживают MIME, что позволяет отправлять и
получать графические, звуковые и видео файлы по почтовой системе Internet.
Кроме того, в спецификациях MIME заложена поддержка символьных наборов,
отличных от ASCII.
Есть много предопределенных типов MIME, таких как графические файлы GIF и
файлы PostScript. Можно также определять свои собственные типы MIME. Кроме
почтовых программ, Web-браузеры также поддерживают различные типы MIME. Это
позволяет браузеру отображать файлы, созданные в отличном от HTML формате.
Спецификации MIME определены в 1992г. комитетом Internet Engineering Task Force
(IETF) - оперативный инженерный отряд Интернет. Новая версия, называемя S/MIME,
поддерживает зашифрованные сообщения.
http://www.nsc.ru/win/docs/web/mime.html#standart
MEDIA (MIME) типы и подтипы (Содержание поля Content-Type в HTTP и SMTP)
media-типа используется для передачи сведений о формате тела сообщения в HTTP
протоколе. Клиенты (просмотрщики) используют media-типы в своих заголовках
Accept для того, чтобы сообщить, в каких форматах они предпочитают принимать
данные. Серверы используют media-типы в заголовках Content-Type, чтобы сообщить
клиенту о том, в каком формате передается прилагаемое содержимое: то ли это
HTML, который нужно форматировать, то ли это GIF или JPEG, требующий
визуализации, то ли это данные в формате PDP, для которого нужно открывать
внешнюю программу просмотра или использовать дополнительное приложение.
Media-типы Internet, используемые в HTTP, очень напоминают типы MIME.
MIME (Multipurpose Internet Mail Extension - многоцелевые расширения
электронной почты для Internet) разработаны как метод передачи присоединенных
данных по Internet средствами электронной почты. Как и MIME, media-тип
указывается в формате тип/подтип. Символ * используется как метасимвол;
например, следующий заголовок клиента означает, что принимаются документы во
всех форматах:
Accept: */*
Следующий заголовок клиента означает, что принимаются все типы формата text
независимо от подтипа:
Accept: text/*
Серверы и CGI-программы должны проверять данные о принимаемых типах,
содержащиеся в заголовке Accept, и по возможности выдавать данные соответствующего
типа. Большинство серверов определяют формат документа по суффиксу имени файла.
Например, файлы с расширениями .htm и .html - это файлы в формате HTML, поэтому
сервер посылает такой документ с типом text/html в заголовке Content-Type. При
вызове CGI-программы серверу неизвестен формат возвращаемых данных, поэтому
программа должна сообщить тип содержимого. По этой причине каждая CGI-программа
должна включать в результат своей работы заголовок Content-Type, например:
Content-Type: text/html
В следующей таблице перечислены общепринятые media-типы, а также суффиксы
имен файлов, распознаваемые большинством серверов. Большинство серверов можно
легко настроить так, чтобы они распознавали и другие суффиксы.
Ниже приведены соответствующие настройки для WEB сервера Apache.
Стандартные типы
Тип передачи данных клиенту от сервера выбирается по префиксу файла при
настройке WWW сервера. По умолчанию, если префикс файла не задан или
отсутствует принудительное указание типа файла, то задается
Content-Type: text/plain
WWW сервер при передаче файлов клиенту по умолчанию использует следующие
основные MIME типы передачи файлов (Content-Type), определяемые префиксом файла,
которые обрабатывает просмотрщик (см. полный список установок MIME-types по
умолчанию).
Замечание: Отметим, что согласно протоколу HTTP значение Content-Type,
которое выдал сервер является приоритетным по сравнению со значением,
установленным на машине клиента (хотя MSIE это замечание игнорирует).
application/activemessage
application/andrew-inset
application/applefile
application/atomicmail
application/dca-rft
application/dec-dx
application/mac-binhex40
application/macwriteii
application/msword
application/news-message-id
application/news-transmission
application/octet-stream bin
application/oda oda
application/pdf pdf
application/postscript ai eps ps
application/remote-printing
application/rtf rtf
application/slate
application/x-mif mif
application/wita
application/wordperfect5.1
application/x-csh csh
application/x-dvi dvi
application/x-hdf hdf
application/x-latex latex
application/x-netcdf nc cdf
application/x-sh sh
application/x-tcl tcl
application/x-tex tex
application/x-texinfo texinfo texi
application/x-troff t tr roff
application/x-troff-man man
application/x-troff-me me
application/x-troff-ms ms
application/x-wais-source src
application/zip zip
application/x-bcpio bcpio
application/x-cpio cpio
application/x-gtar gtar
application/x-shar shar
application/x-sv4cpio sv4cpio
application/x-sv4crc sv4crc
application/x-tar tar
application/x-ustar ustar
audio/basic au snd
audio/x-aiff aif aiff aifc
audio/x-wav wav
image/gif gif
image/ief ief
image/jpeg jpeg jpg jpe
image/tiff tiff tif
image/x-cmu-raster ras
image/x-portable-anymap pnm
image/x-portable-bitmap pbm
image/x-portable-graymap pgm
image/x-portable-pixmap ppm
image/x-rgb rgb
image/x-xbitmap xbm
image/x-xpixmap xpm
image/x-xwindowdump xwd
message/external-body
message/news
message/partial
message/rfc822
multipart/alternative
multipart/appledouble
multipart/digest
multipart/mixed
multipart/parallel
text/html html
text/plain txt
text/richtext rtx
text/tab-separated-values tsv
text/x-setext etx
video/mpeg mpeg mpg mpe
video/quicktime qt mov
video/x-msvideo avi
video/x-sgi-movie movie
Дополнительные типы
Дополнительные типы задаются исходя из возможностей сервера.
Поддержка технологии SSI
Т ехнология SSI Server Side Includes Позволяет создавать документы методом
сборки из отдельных файлов и исполняемых программ перед отправкой их клиенту.
Этот дополнительный тип передачи данных устанавливается атрибутом
Content-Type: text/x-server-parsed-html
Тип файла по умолчанию .shtml (.sht для MS Windows)
AddHandler server-parsed .shtml
или
Content-Type: text/x-server-parsed-html3
Тип файла по умолчанию .shtml3
для отработки команд Server Side Includes, которые определены в стандарте
языка HTML 3.0.
Передача запросов и ответов к активным программам
Если активная программа (CGI Script) расположена не в директории CGI_BIN, то
запрос к ней сопровождается атрибутом
Content-Type: application/x-httpd-cgi
Тип файла по умолчанию .cgi задается командой
AddHandler cgi-script .cgi
Передача запросов и ответов к активным картинкам
Обработка запросов к активным картинкам может производится как клиентом
(Client Side Image Map), так и сервером (Server Side Image Map) Запрос (если
сервер понимает эти запросы) на обработку данных сервером сопровождается
атрибутом
Content-Type: application/x-type-map
или
Content-Type: application/x-httpd-imap
В зависимости от типа передачи информации.
Cтандарт описывает, каким образом пересылать по электронной почте исполняемые,
графические, мультимедийные и смешанные данные. Типичное применения MIME -
пересылка графических изображений, аудио, документов Word, программ и даже
просто текстовых файлов - то есть когда важно, чтобы в ходе пересылки не
производилось никаких преобразований над данными. MIME также позволяет
разделять письмо на части различных типов так, чтобы получатель (почтовая
программа) мог определить, что делать с каждой из частей письма. MIME - это
фактически стандарт, но называется расширением, поскольку не противоречит
прежнему стандарту RFC-822, а дополняет его.
В MIME определено пять дополнительных полей, которые могут размещаться в
заголовке электронного сообщения.
MIME-Version: - поскольку старый стандарт RFC-822 все еще используется,
а MIME, возможно, изменится и дополнится в будущем, почтовой программе
необходимо знать, применен ли новый стандарт в конкретном письме или нет.
Поэтому в заголовок введено новое поле "MIME-Version", объявляющее версию
стандарта, в соответствии с которым написано данное письмо (например,
"MIME-Version: 1.0").
Content-Type: - назначение этого поля - наиболее полное описание данных,
содержащихся в теле письма, с тем чтобы почтовый агент (программа) получателя
мог выбрать соответствующий механизм для их обработки. Впервые это поле было
определено в RFC-1049, но имело более простой синтаксис. Стандарт MIME
определяет семь типов данных, которые можно передавать в теле письма:
текст (text); смешанный тип (multipart), почтовое сообщение (message),
графический образ (image), аудиоинформация (audio), фильм или видео (video),
приложение (application).
text - этот тип указывает на то, что в теле сообщения содержится текст. Это
значение поля - по умолчанию. Основным подтипом типа text является plain -
неразмеченный (планарный) текст (соответствует обычному неформатированному
тексту и не требует специального программного обеспечения для отображения
этого текста, за исключением поддержки национальных кодировок). Для
обозначения размеченного текста используют подтип richtext (спецификация
приведена в RFC-1341), а для обозначения гипертекста - подтип html. Для
обозначения языковой кодировки текста используется параметр "charset", для
некоторых подтипов, включая основной подтип, "text/plain". В интернетовской
почте значением Content-Type по умолчанию является следующее:
"text/plain; charset=us-ascii".
multipart - этот тип содержания тела почтового сообщения определяет смешанный
документ. Смешанный документ может состоять из фрагментов разного типа. Тип
multipart имеет ряд подтипов:
- mixed - (основной) задает сообщение, состоящее из нескольких фрагментов,
которые разделены между собой границей, задаваемой в качестве параметра подтипа;
- alternative - позволяет организовать "вариабельный" просмотр почтового
сообщения в зависимости от типа программы просмотра (например, сообщение
передается в простом и html форматах, при этом почтовая программа показывает
ту часть письма, которую она способна отобразить), то есть служит для
предоставления одних и тех же данных в разных форматах;
- parallel - предназначен для составления такого почтового сообщения, части
которого должны отображаться одновременно, что предполагает запуск сразу
нескольких программ просмотра;
- digest - если каждая из частей тела письма имеет тип "message". Этот подтип
идентичен подтипу 'multipart/mixed', но имеет другую семантику. Например, для
'digest' значением по умолчанию является не "text/plane", а "message/rfc822".
Типичное применения MIME - пересылка графических изображений, аудио, документов,
программ и даже просто текстовых файлов
MIME-совместимая почтовая программа представит Multipart-письмо в достаточно
понятном виде - например, покажет пользователю список частей, из которых оно
состоит, и предложит просмотреть (если знает, как) или сохранить в файл
содержимое каждой из них; или, если, скажем, одна из частей содержит текст,
другая - картинку, а третья - оцифрованную музыку, то некоторые почтовые
программы могут показать в одном и том же окне текст вместе с картинкой и
одновременно проиграть музыку. На интерфейс представления нет стандартов,
каждая программа делает это по-своему. Если же ваша почтовая программа не
является MIME-совместимой, то при прочтении такого письма вы увидите его
содержимое "сплошняком" - то есть почтовые заголовки, чередующиеся (в общем
случае) с кодированным содержимым частей. В этом случае рекомендуется сохранить
письмо в файл и, возможно, "разрезать" его на части, начинающиеся с заголовка
(не убирая самих заголовков, так как в них хранится информация об одержимом
типе его кодировки), так как разные части могут быть кодированы по-разному,
и для их декодирования могут потребоваться разные программы-декодеры.
- message (письмо в письме) - тело, содержащее данные типа "message", само
является письмом или частью письма, полностью отформатированного в соответствии
со стандартом RFC-822, которое, в свою очередь, может содержать свое собственное
поле заголовка "Content-Type". Данный тип предназначен для работы с обычными
почтовыми сообщениями, которые, однако, не могут быть переданы по почте по
разного рода причинам. Подтипы:
rfc822 - этот подтип указывает, что тело письма содержит вложенное письмо в
стандарте RFC-822 (для этого вложенного письма не требуется наличия полей
"From", "Subject"). Несмотря на использование числа "822", тело, имеющее подтип
"message/rfc822", может включать дополнительную информацию в соответствии со
стандартом MIME. Другими словами, письмо "message/rfc822" может быть
MIME-письмом;
partial - предназначен для передачи одного большого сообщения по частям и
последующей автоматической сборки у получателя;
external-body - позволяет ссылаться на внешние, относительно сообщения,
информационные источники. Используется, чтобы указать, что тело письма очень
большое и находится вне письма;
image - для описания графических образов. Наиболее часто используются файлы в
формате JPEG, GIF, TIF и т.д.;
audio - для описания аудиоинформации. Основные подтипы: - basic - аудиоданные,
сохраненные в 8-бит формате mu-law ISDN; - midi - аудиоданные, сохраненные в
MIDI-формате; - wav - аудиоданные, сохраненные в WAV-формате;
video - для передачи фильмов. Наиболее популярным является формат MPEG, а также
Quicktime;
application - обычно используется при передаче двоичных (бинарных) данных для
последующего промежуточного преобразования (например, при поступлении данных
application/msword, браузер спросит, нужно ли запустить Word для просмотра
документа; при отсутствии нужного приложения браузер спросит, в каком файле
сохранить данные). Подтипы: - octet-stream - основной подтип, предназначен для
неинтерпретируемых двоичных данных, для которых рекомендуемым действием является
предложение сохранить файл на диске; - PostScript - дополнительный подтип,
применяется при пересылке PostScript-документов в теле письма. Необходимо
учесть, что в будущем ожидается заметное увеличение числа регистрированных
типов и особенно подтипов содержимого писем. Если почтовая программа встретит
неизвестное ей значение поля Content-type, она должна интерпретировать
содержимое этого письма как "application/octet-stream". Часто используемый
параметр name позволяет указать имя файла. Например:
Content-Type: application/msword; name="readme.doc"
Это полезно при получении файлов через HTTP, причем этот параметр может
применяться и для других типов - таких, как image или audio. Например:
Content-Type: image/gif; name="myfoto.gif"
Content-Transfer-Encoding: - поле типа кодирования сообщения. Многие типы
данных, пересылаемых через e-mail требуют "натурального" представления, то есть
8-битный набор символов либо двоичный код (что для машины - одно и то же,
только представимо для пользователя по-разному). В таком виде данные не могут
быть переданы по 7-битным почтовым протоколам, например, RFC-821, который, к
тому же, ограничивает длину строки 1000 символами. Однако при работе в
разнородных почтовых средах необходимо определить механизм их представления в
стандартном виде (US ASCII). Для этого существуют процедуры кодирования такого
сорта данных (наиболее широко применяемая - uuencode). Поле типа кодирования
почтового сообщения введено для того, чтобы при получении данные были правильно
распакованы. Это поле может принимать, в частности, следующие значения: 7bit,
8bit, quoted-printable, base64, binary, x-типы.
Стандарт MIME определяет еще два дополнительных поля: Content-ID и
Content-Description. Первое поле определяет уникальный идентификатор содержания,
а второе служит для комментария к содержанию. Программами просмотра эти поля
обычно не отображаются.
Жизнь не стоит на месте, появляются новые типы и подтипы стандарта MIME. Для
новых, экспериментальных типов используются значения, начинающееся с "X-". Уже
зарегистрированные значения никогда не должны начинаться с префикса "X-". Новые
типы и подтипы можно зарегистрировать в организации Internet Assigned Numbers
Authority (IANA, Комитет по присвоению номеров в Интернете). Протокол MIME уже
разросся и предусматривает множество подтипов, не описанных в исходной
спецификации. Ожидается, что со временем появятся как новые подтипы, так,
возможно, и новые типы данных.
Если вы желаете узнать больше о MIME, первое, что следует сделать, - это
получить экземпляр документа RFC-1521 "MIME (Miltipurpose Internet Mail
Extensions), Part One: Mechanisms for Specifying and Desribing the Format
of Internet Message Bodies" ("Многоцелевые расширения электронной почты для
Internet, MIME, часть I: механизмы указания и описания форматов сообщений
Интернет"). В другом документе, RFC-1522, представляющем собой продолжение
RFC-1521, описывается, как использовать в заголовках электронных сообщений
символы в отличном от ASCII коде. В число других справочников, которые могут
заинтересовать вас, входят RFC-1741 ("MIME Content Type for BinHex Encoded
Files"), RFC-1740 ("MIME Encapsulation of Macintosh Files"), RFC-1563 ("The
Text/Enriched MIME Content-Type") и RFC-1344 ("Implications of MIME for
Internet Mail Gateways").
|