Э. Таненбаум - Компьютерные сети. (4-е издание) (DJVU) (1130092), страница 182
Текст из файла (страница 182)
Если сообщение не содержит такого заголовка, то оно считается написанным на английском языке и обрабатывается соответствующим образом. Электронная почта 679 возможность добавления новых схем). Простейшая из ннх заключается в передаче просто А5СП-текста. Символы АБСП используют 7 разрядов и могут передаваться напрямую протоколом электронной почты при условии, что строка не превышает 1000 символов. Следующая по простоте схема аналогична предыдущей, но использует 8-разрядные символы, то есть все значения байта от 0 до 255 включительно. Такая схема кодировки нарушает (исходный) протокол электронной почты Интернета, но используется в некоторых частях Интернета, в которых реализовано некоторое расширение исходного протокола.
Хотя объявление о способе кодирования не делает его использование автоматически законным, открытое объявление может, по крайней мере, в случае чего объяснить неправильную работу почтовых агентов. Сообщения, использующие 8-разрядную кодировку, также должны соблюдать правило о максимальной длине строки. Еще хуже обстоит дело с сообщениями в двоичной кодировке.
К ним относятся произвольные двоичные файлы, которые не только используют все 8 разрядов в байте, но еще и не соблюдают ограничение на 1000 символов в строке. К этой категории относятся исполняемые программные файлы. Не дается никакой гарантии, что эти двоичные сообщения будут доставлены корректно, но, тем не менее, очень многие пользователи все равно пересылают их друг другу. Корректный способ кодирования двоичных сообщений состоит в использовании кодировки Ьазе64 (64-символьная кодировка), иногда называемой АБСП аппог (АЗСП-оплетка).
При использовании данного метода группы по 24 бита разбиваются на четыре 6-разрядные единицы, каждая из которых посылается в виде обычного разрешенного АБСП-символа. В этой кодировке 6-разрядный символ 0 кодируется АЯСП-символом «А», 1 — АЯСП-символом «В» и т. д. Затем следуют 26 строчных букв — это уже 10 разрядов, и наконец, + и / для кодирования 62 и 63 соответственно. Последовательности = и = говорят о том, что последняя группа содержит только 8 или 16 бит соответственно.
Символы перевода строки и возврата каретки игнорируются, поэтому их можно вставлять в любом месте для того, чтобы строки выглядели не слишком длинными. Таким способом можно передать любой двоичный код. Для сообщений, почти полностью состоящих из символов АВСП, но с небольшими включениями не-АВСП-символов, подобный метод несколько неэффективен. Вместо него лучше применять кодировку цпосек?-рИпсаЫе (цитируемое печатное кодирование). Это просто 7-битный АВС?1, в котором символы, соответствующие значениям АВСП-кода свыше 127, кодируются знаком равенства, за которым следуют две шестнадцатеричных цифры — АБСП-код символа. Итак, двоичные данные следует посылать в кодировке Вазе64 или оиогеб-рг?пГаЫе. Когда имеются веские причины не использовать эти методы, можно указать в заголовке Соп~епг-?попашет-Епсойпд: свою кодировку.
Последний заголовок в табл. 7.6 представляет наибольший интерес. Он указывает тип тела сообщения. В документе КГС 2045 определены семь типов содержимого сообщений, каждый из которых распадается на несколько подтипов. Подтип отделяется от типа косой чертой, например, Солгелъ-Туре: »1оео~аред бВО Глава 7. Прикладной уровень Таблица 7.7.
Типы стандарта МЧМЕ и подтипы, определенные в ВЕС 2045 Полтин Описание Тип НеФорматированный арекет Текст с включением простых команд форматирования Неподвижное изображение в формате 61Р Неподвижное изображение в формате ЗРЕО Слышимый звук Видеофильм в формате МРЕО Неинтерпретируемвя последовательность байтов Документ для печати в формате Ров18спрЧ Сообщение М1МЕ ВЕС 822 Сообщение разбито нв части для передачи Само сообщение должно быть получено по сети Независимые части в указанном порядке То же сообщение в другом формате Части сообщения следует просматривать одновременно Каждая часть является законченным сообщением стандарта ВЕС 822 Р1а~п Техт Епг!спео Вй зрей Ввз1с 1гпвйе Асею Чмео АРР11свт1оп Мред Остет-зтгевгп Роз1зспрг Вгс822 Рвгбв1 Ечоегпе1-Ьосу М1хег1 Аиегпвбуе Рвгв11е1 Меззвйе Ми1брвгт 01йевЧ Рассмотрим перечисленные в таблице типы сообщений.
Тип гехт означает обычный текст. Комбинация Чеху 'р1агп служит для обозначения обычного текстового сообщения, которое может быть отображено на экране компьютера сразу после получения. Для этого не требуется дополнительной обработки или перекодировки.
Это значение поля заголовка позволяет передавать обычные сообщения в М1МЕ с добавлением небольшого количества дополнительных заголовков. Нодтип гех~Гепгтс1тес( позволяет включать в текст простой язык разметки документа. Этот язык обеспечивает системно-независимый способ выделять участки текста жирным или наклонным стилями, использовать шрифты самых разных размеров и цветов, отступы, выравнивание, верхние и нижние индексы и формировать простой макет страницы.
В основе этого языка разметки лежит язык ЯСМ1. (5гапг1агч( Сепега!12ег( Маг1чпр 1.апяцаяе — стандартный обобщенный язык разметки), на базе которого был также создан язык НТМ1. (НурегТехг Маг)чцр 1.апяпаяе), применяемый в ччЧЧЪ"Ж Например, сообщение <Ьо1б> Ноиеит <!ЬЬ1б> настал, - сказал <Чча11с> иорхк </1Ча11с>,, будет отображаться как Момент настал, — сказал моряк ... Подтип долткен быть явно указан в заголовке; подтипов по умолчанию нет.
Начальный список типов и подтипов, определенный в документе ЙРС 2045, приведен в табл. 7.7. С тех пор к ним было добавлено много новых типов и подтипов, Этот список пополняется всякий раз при возникновении соответствующей необходимости. Электронная почта 661 Интерпретация зависит от принимающей сообщение системы.
Если стили «жирный» и чкурсивь доступны, они булут применены. Если нет, для выделения можно использовать подчеркивание, мигание, инверсную печать, выделение другим цветом и т. д. Разные системы могут применять и применяют свои стили, Когда веб-технологии стали популярны, бьш добавлен (в КГС 2854) новый тип тех~/Ьгт1 который позволил пересылать веб-страницы в теле письма КГС 822.
В ЕГС 3023 определен подтип для расширяемого языка разметки страниц, ГехГГхтб Далее в этой главе мы рассмотрим НТМ1. и ХМ1.. Следуюшим типом М1МЕ является (та8е. Он используется для передачи неподвижных изображений. На сегодняшний день существует множество различных форматов хранения и передачи изображений, как с использованием сжатия, так и без него. Два формата — С1Г и )РЕС вЂ” встроены практически во все браузеры, однако существует еще множество других, которые, надо полагать, вскоре дополнят этот список, Типы аийо и оЫео предназначены, соответственно, для передачи звука и двигающегося изображения. Обратите внимание на то, что подтип шг(ео включает только визуальную информацию, а не звуковую дорожку.
Если необходимо передать по электронной почте видеофильм со звуком, то, возможно, придется посылать видеоряд и звуковую дорожку отдельно друг от друга. Это зависит от системы кодирования. Первым видеоформатом, который был определен стандартом М1МЕ, стал формат со скромным названием МРЕС (Мойоп Р(сгцгез Ехреггз Сгоцр — экспертная группа по вопросам движущегося изображения). Тип арр!(сайоп (приложение) предназначен для всех форматов, требующих внешней обработки, не обеспечиваемой ни одним из других типов. Тип осгегзггеат (байтовый поток) представляет собой просто последовательность никак не обрабатываемых байтов, Получив такой поток, пользовательский агент должен, вероятно, предложить пользователю сохранить его в виде файла и запросить для этого файла имя.
Последующая обработка файла целиком зависит от пользователя. Подтип розгзсирг означает язык Розг8спрц созданный компанией АбоЪе БузГешз и широко используемый для описания страниц, предназначенных для печати. Многие принтеры имеют встроенные интерпретаторы языка РозгЗспрп Хотя пользовательский агент может для отображения полученных РозгЯсг(рГ-файлов просто вызвать внешний интерпретатор языка Розс8спрц подобные действия, вообще говоря, небезопасны.
Розг8спрг является полноценным языком программирования. При достаточном количестве свободного времени и некоторой склонности к самоистязанию на языке РозгЯсг(рг можно написать компилятор языка С или систему управления базами данных. Отображение документа на языке РозгБсг(рг осуществляется программой на языке Розг8спрц содержащейся в этом сообщении.