MIME
Multipurpose Internet Mail Extensions (MIME (произн. «майм»), англ. Multipurpose Internet Mail Extension в многоцелевое расширение интернет-почты) в стандарт, описывающий передачу различных типов данных по электронной почте, а также, шире, спецификация для кодирования информации и форматирования сообщений таким образом, чтобы их можно было пересылать по Интернету.
Содержание |
[править] Введение
MIME определяет механизмы для передачи разного рода информации внутри текстовых данных (в частности, с помощью электронной почты), а именно: текст на языках, для которых используются кодировки, отличные от ASCII, и нетекстовый контент, такой как картинки, музыка, фильмы и программы. MIME является также фундаментальным компонентом коммуникационных протоколов, таких как HTTP, которым нужно, чтобы данные передавались в контексте сообщений подобных e-mail, даже если данные реально не являются e-mail.
Основной формат электронных сообщений определен в RFC 5322, который является обновленной версией RFC 2822 (который, в свою очередь, является обновленной версией RFC 822). Эти стандарты определяют похожие форматы для текстовых e-mail-заголовков и содержимого и правил, относящихся к общеиспользуемым полям, таким как «To:», «Subject:», «From:» и «Date:». MIME определяет набор e-mail-заголовков для определения дополнительных атрибутов сообщения, включая тип контента, и определяет множество кодировок, которые могут быть использованы для представления 8-битных бинарных данных, используя символы из 7-битного ASCII множества. MIME также определяет правила для кодирования не-ASCII символов в заголовках e-mail-сообщения, таких как «Subject:».
MIME расширяем для новых типов в его определение включает метод для регистрации новых типов контента и других атрибутов.
[править] Организация данных
Формат MIME поддерживает передачу нескольких форматов данных в пределах одного сообщения. Причём данные могут передаваться не только в виде одноуровневой последовательности, но в виде иерархии с вложением элементов друг в друга. Для обозначения множественного содержимого используются медиатипы multipart/*. Работа с такими типами осуществляется по общим правилам описанным в RFC 2046 (если иное не определено конкретным медиа типом). Если получателю не известно как работать с типом, то он обрабатывает его так же как multipart/mixed.
Для передачи множественного сообщения в заголовок Content-Type добавляется параметр boundary (граница), который обозначает последовательность символов, разделяющих части сообщения. Граница может состоять из цифр, букв и символов «'()+_,-./:=?». При использовании специальных символов (не цифр и букв) значение параметра boundary следует заключать в двойные кавычки «"». Максимальная длина границы в 70 символов.
Начало каждой части сообщения обозначается строкой «--boundary». Конец последнего сообщения обозначается строкой «--boundary--». Самые первые символы переноса строки CRLF (коды 13 и 10), которыми начинаются и заканчиваются пограничные строки не входят в содержимое самой части. Если за ними следуют ещё переносы строк, то они уже принадлежат включаемой части.
Перед первой частью и после последней может быть дополнительный текст. Он называется преамбулой и эпилогом соответственно. В протоколе HTTP эти элементы игнорируются. В сообщении электронной почты преамбула может содержать текст, выводимый клиентами электронной почты, не понимающими формата MIME.
В самом начале включаемой части располагаются заголовки, описывающие её содержимое (Content-Type, Content-Length и т. п.). Перед непосредственно телом части обязательно должна быть пустая строка даже если заголовки отсутствуют. Если не определён Content-Type, то по умолчанию в text/plain.
[править] Тест Марка Криспина
Марк Криспин (Mark Crispin), основатель IMAP протокола, написал тест для проверки корректности обработки MIME.[1] Тест представляет из себя письмо в формате mbox:
Это сумасшедшее письмо! В нём около 30 вложенных друг в друга частей. Очень хороший тест
Оригинальный текст (англ.)This message is crazy! It has about 30 parts nested inside each other. A very good test
в разработчики SquirrelMail[2]
[править] Список MIME-типов
Более подробный список MIME-типов приведен в статье: Internet media type
[править] Стандарты
| RFC | Дата | Тема | Обновлено (Updated by) | Обновляет (Updates) | Obsoleted by | Делает устаревшим (Obsoletes) |
|---|---|---|---|---|---|---|
| Устаревшие | ||||||
| RFC 822 | 13 августа 1982 | STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES Формат электронной почты |
1123, 1138, 1148, 1327, 2156 | 2822 | 733 (NIC #41952) | |
| RFC 2048 | ноябрь 1996 | MIME Part Four: Registration Procedures | 3023 | в | 4288, 4289 | 1521, 1522, 1590 |
| Актуальные | ||||||
| RFC 1556 | декабрь 1993 | Handling of Bi-directional Texts in MIME Обработка двунаправленных текстов в MIME |
в | в | в | в |
| RFC 2045 | ноябрь 1996 | MIME Part One: Format of Internet Message Bodies MIME Часть первая: Формат тела сообщений |
2184, 2231, 5335 | в | в | 1521, 1522, 1590 |
| RFC 2046 | ноябрь 1996 | MIME Part Two: Media Types MIME Часть вторая: типы содержимого |
2646, 3798, 5147 | в | в | 1521, 1522, 1590 |
| RFC 2047 | ноябрь 1996 | MIME Part Three: Message Header Extensions for Non-ASCII Text MIME Часть третья: Расширения заголовка для не ASCII текста |
2184, 2231 | в | в | 1521, 1522, 1590 |
| RFC 2049 | ноябрь 1996 | MIME Part Five: Conformance Criteria and Examples MIME Часть пятая: Соответствие критериям и примеры |
в | в | в | 1521, 1522, 1590 |
| RFC 4288 | декабрь 2005 | Media Type Specifications and Registration Procedures | в | в | в | 2048 |
| RFC 4289 | декабрь 2005 | MIME Part Four: Registration Procedures | в | в | в | 2048 |
| RFC 4855 | февраль 2007 | Media Type Registration of RTP Payload Formats | в | в | в | |
[править] См. также
[править] Примечания
[править] Ссылки
- Почтовый стандарт «MIME» (RFC1521) (рус.) неполный русский перевод спецификации RFC 1521 «MIME в Multipurpose Internet Mail Extensions. Part one. Mechanismes for Specifying and Describing the Format of Internet Message Bodies», а также конспект некоторых других документов, касающихся применения стандарта MIME.
- RFC 1521. MIME в Multipurpose Internet Mail Extensions (рус.)
- Официальный список MIME-типов IANA (англ.)
- Коротко о формате почтового сообщения (из лекций Григория Масича) (рус.)
| Это заготовка статьи о компьютерах. Вы можете помочь проекту, исправив и дополнив её. Это примечание по возможности следует заменить более точным. |
| Схемы URI | |
|---|---|
| Официальные | aaa: aaas: acap: cap: cid: crid: data: dav: dict: dns: fax: file: ftp: go: gopher: h323: http: https: im: imap: ldap: mailto: mid: news: nfs: nntp: pop: pres: rtsp: sip: sips: snmp: tel: telnet: urn: wais: xmpp: |
| Неофициальные | about: aim: bolo: btc: bzr: callto: chrome: cvs: daap: ed2k: ed2kftp: feed: fish: git: gizmoproject: iax2: irc: ircs: lastfm: ldaps: magnet: mms: msnim: psyc: rsync: secondlife: skype: ssh: svn: sftp: smb: sms: soldat: steam: unreal: ut2004: view-source: vzochat: webcal: xfire: ymsgr: |