Тайм-ауты и повторные передачи TCP

         

Изменения в теле сообщения Многофункциональные



Изменения в теле сообщения: Многофункциональные расширения почты Internet (MIME - Multipurpose Internet Mail Extensions)

Мы говорили, что RFC 822 описывает тело сообщения как строки NVT ASCII текста, без структуры. RFC 1521 [Borenstein and Freed 1993] определяет расширения, которые позволяют вводить структуру в тело сообщения. Это называется многофункциональным расширением почты Internet (MIME - Multipurpose Internet Mail Extensions).

MIME не требует тех расширений, что мы описали ранее в этом разделе (расширенный SMTP или не-ASCII заголовки). MIME просто добавляет некоторые новые заголовки (в соответствии с RFC 822), которые сообщают получателю о структуре тела сообщения. Тело сообщения может передаваться с использованием NVT ASCII, вне зависимости от содержимого почты. Несмотря на это некоторые из расширений, которые мы только что описали, могут быть вполне уместны при использовании вместе с MIME - команда SIZE расширенного SMTP, так как MIME сообщения могут быть довольно большими, и не-ASCII заголовки, эти расширения не требуются для MIME. Все что требуется для обмена MIME сообщениями с другой стороной - необходимо, чтобы на обоих концах присутствовали пользовательские агенты, которые понимают MIME. На промежуточных MTA не требуется никаких изменений.

MIME определяет пять новых полей заголовков:

Mime-Version:
Content-Type:
Content-Transfer-Encoding:
Content-ID:
Content-Description:

В качестве примера, приведены две строки заголовка, которые могут присутствовать в почтовом сообщении Internet:

Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII

Текущая версия MIME - 1.0, в которой сообщения выглядят как простой ASCII текст, что является форматом по умолчанию для почты Internet. Слово PLAIN определяет подтип типа содержимого (TEXT), а строка charset=US-ASCII это параметр.

Text это всего лишь один из семи определенных в MIME типов содержимого. На рисунке 28.7 приводится краткое описание 16 различных типов содержимого и подтипов, определенных в RFC 1521. Для конкретных типов содержимого и подтипов может быть определено большое количество параметров.

Тип содержимого и кодирование при передаче, применяемое к телу сообщения, независимы друг от друга. Здесь указаны поле заголовка Content-Type (тип содержимого) и поле заголовка Content-Transfer-Encoding (кодирование содержимого при передаче). В RFC 1521 определено пять различных форматов кодирования.

  1. 7bit, что является NVT ASCII, по умолчанию.
  2. quoted-printable, как мы видели в примере, приведенном ранее, используется с не-ASCII заголовками. Подобный тип кодирования применим, только когда небольшое количество символов имеет установленный восьмой бит.
  3. base64, показан на рисунке 28.6.
  4. 8bit содержит строки символов, некоторые из которых не-ASCII и имеют установленный восьмой бит.
  5. binary кодирование, используется в случае 8-битных данных, которые не содержат строк.



Тип содержимого Подтип Описание
text plain Неформатированный текст.
richtext Текст с простым форматированием, как, например, выделение жирным шрифтом, курсивом, подчеркивание и так далее.
enriched Прояснение, упрощение и усовершенствование richtext.
multipart mixed Несколько частей тела сообщения обрабатываются последовательно.
parallel Несколько частей тела сообщения могут быть обработаны параллельно.
digest Краткое изложение почты.
alternative Присутствует несколько частей тела сообщения, все с идентичным семантическим содержанием.
message rfc822 Содержимое это еще одно почтовое сообщение RFC 822.
partial Содержимое это фрагмент почтового сообщения.
external-body Содержимое это указатель на реальное сообщение.
application octet-stream Произвольные двоичные данные.
postscript Программа PostScript.
image jpeg Формат ISO 10918.
gif Формат CompuServe's Graphic Interchange.
audio basic Кодирование с использованием 8-битного ISDN формата m -law.
video mpeg Формат ISO 11172.


Содержание раздела