План Теория Практика Рефераты Литература Проверка Зачет

Мультимедиатехнологии

на сайте на Народ.Ру на Яндексе


Форум Чат Альбом Ссылки Адреса Отзывы эПочта

Тема 04. Типы и форматы файлов (MIME-типы)

Тема 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").

План Теория Практика Рефераты Литература Проверка Зачет
Hosted by uCoz