tanenbaum_seti_all.pages (525408), страница 181
Текст из файла (страница 181)
После заголовков идет тело самого сообщения. Пользователь может разместить в нем все, что ему угодно. Некоторые люди завершают свои послания сложными подписями, включающими рисунки, созданные из АБСП-символов, популярными и малоизвестными цитатами, политическими заявлениями и разнообразными объявлениями (например, <Корпорация АБВ не несет ответственности за высказанное выше мнение. Собственно, она даже нс в силах постичь его»).
678 Глава 7. Прикладной уровень 2, Сообщения на языках, использующих алфавиты, отличные от латинского (например, на иврите илн русском). 3. Сообщения на языках без алфавитов (напрнмер, китайском, японском, корейском). 4, Сообщения, вообще не являющиеся текстом (например, аудио или видео). Решение было предложено в документе КРС 1341, а более новая редакция была опубликована в КРС 2045-2049. Это решение, получившее название М1МЕ (Мц)пригрозе 1пгегпес Ма!1 Ехгепз1опз, — многоцелевые расширения электронной почты в Интернете), широко применяется в настоящий момент.
Далее приведено его описание. Дополнительную информацию о наборе стандартов М1МЕ см. в КРС, Основная идея стандартов М1МŠ— продолжить использование формата КРС 822, но с добавлением структуры к телу сообщения и с определением правил кодировки не-АЗСП-сообщений, Не отклоняясь от стандарта КРС 822, М1МЕ-сообщения могут передаваться с помощью обычных почтовых программ и протоколов. Все, что нужно изменить, — это отправляющие и принимающие программы, которые пользователи могут создать для себя сами. Стандартами М1МЕ определяются пять новых заголовков сообщения, приведенных в табл. 7.6.
Первый заголовок просто информирует пользовательского агента, получающего сообщение, что тот имеет дело с сообщением М1МЕ, а так. же сообшает ему номер версии М1МЕ, используемой в этом сообщении. Если сообщение не содержит такого заголовка, то оно считается написанным на английском языке и обрабатывается соответствующим образом.
Таблица 7.8. Заголовки йгС 822, добавленные М! МЕ Заголовок Описание М1МЕ-Уегзгоп: Соптепвпезспрт~оп; Указывает версию стандартов М1МЕ Описание содержимого. Строка обычного тексте, информирующая о содержимом сообщения Уникальный идентификатор Указывает способ кодировки тела сообщения для его передачи Тип и формат содержимого сообщения Соптептдф Соптепт-тгвпз1ег-Епсосзпвл СоптепьТуре: Заголовок Сопгепг-.0езспрпоп представляет собой АЯСП-строку, информирующую о том, что находится в сообщении.
Этот заголовок позволяет пользователю принять решение о том, нужно ли ему декодировать и читать сообщение. Если в строке сказано: «Фотография тушканчика Барбарыь, а получивший это сообщение не является любителем тушканчиков, то, вероятнее всего, он сразу улалит это сообщение, а не станет перекодировать его в цветную фотографию высокого разрешения. Заголовок Сопгепг-)г) содержит идентификатор содержимого сообщения. В нем используется тот же формат, что и в стандартном заголовке Меззайе-Ис Заголовок Сопгепг-Ттапи~зт-Епсойпй сообщает о способе упаковки тела сообщения для его передачи по сети, которая может возражать против символов, отличных от букв, цифр и знаков препинания.
Разработано пять схем (имеется Электронная почта 679 возможность добавления новых схем). Простейшая из ннх заключается в передаче просто А5СП-текста. Символы А5СП используют 7 разрядов и могут передаваться напрямую протоколом электронной почты при условии, что строка не превышает 1000 символов. Следующая по простоте схема аналогична предыдущей, но использует 8-разрядные символы, то есть все значения байта от 0 до 255 включительно. Такая схема кодировки нарушает (исходный) протокол электронной почты Интернета, но используется в некоторых частях Интернета, в которых реализовано некоторое расширение исходного протокола. Хотя объявление о способе кодирования не делает его использование автоматически законным, открытое объявление может, по крайней мере, в случае чего объяснить неправильную работу почтовых агентов.
Сообщения, использующие 8-разрядную кодировку, также должны соблюдать правило о максимальной длине строки. Еще хуже обстоит дело с сообшениямн в двоичной кодировке. К ним относятся произвольные двоичные файлы, которые не только используют все 8 разрядов в байте, но еще и не соблюдают ограничение на 1000 символов в строке. К этой категории относятся исполняемые программные файлы.
Не дается никакой гарантии, что эти двоичные сообщения будут доставлены корректно, но, тем не менее, очень многие пользователи все равно пересылают их друг другу. Корректный способ кодирования двоичных сообщений состоит в использовании кодировки Ьазе64 (64-символьная кодировка), иногда называемой АЯСП аппог (А8СП-оплетка). При использовании данного метода группы по 24 бита разбиваются на четыре 6-разрядные единицы, каждая из которых посылается в виде обычного разрешенного А5СП-символа. В этой кодировке 6-разрядный символ 0 кодируется АБСП-символом «А», 1 — АБСП-символом «В» и т, д.
Затем следуют 26 строчных букв — это уже 10 разрядов, и наконец, + и / для кодирования 62 и 63 соответственно. Последовательности =- и = говорят о том, что последняя группа содержит только 8 или 16 бит соответственно. Символы перевода строки и возврата каретки игнорируются, поэтому их можно вставлять в любом месте для того, чтобы строки выглядели не слишком длинными. Таким способом можно передать любой двоичный код. Для сообщений, почти полностью состоящих из символов АБСП, но с небольшими включениями не-А5СП-символов, подобный метод несколько неэффективен.
Вместо него лучше применять кодировку г1поеед-рг1пгаЫе (цитируемое печатное кодирование), Это просто 7-битный А5СП, в котором символы, соответствующие значениям АБСП-кода свыше 127, кодируются знаком равенства, за которым следуют две шестнадцатеричных цифры — АБСП-код символа. Итак, двоичные данные следует посылать в кодировке Вазе64 или оиогед-рйпГаЫе. Когда имеются веские причины не использовать эти методы, можно указать в заголовке Сопгепг-7гапггег-Епсокйпй: свою кодировку. Последний заголовок в табл.
7.6 представляет наибольший интерес. Он указывает тип тела сообщения. В документе ВЕС 2045 определены семь типов содержимого сообщений, каждый из которых распадается на несколько подтипов. Подтип отделяется от типа косой чертой, например, Сопгепг-Туре. угйеоlпред 680 Глава 7. Прикладной уровень полтин должен быть явно указан в заголовке; подтипов по умолчанию пет. Начальный список типов и подтипов, определенный в документе КРС 2045, приведен в табл. 7.7. С тех пор к ним было добавлено много новых типов и подтипов, Этот список пополняется всякий раз при возникновении соответствующей необходимости.
Таблица 7.7. Типы стандарта М!МЕ и подтипы, определенные в ПЕС 2045 Подтип Описание Тип Тех! !глаце Аоб!о Мпво Аррйсвпоп Меззвце Мн!нрви Рассмотрим перечисленные в таблице типы сообщений. Тип гехт означает обычный текст. Комбзииация гехт//р!а!и служит для обозначения обычного текстового сообщения, которое может быть отображено на экране компьютера сразу после получения. Для этого не требуется дополнительной обработки или перекодировки. Это значение поля заголовка позволяет передавать обычные сообщения в М1МЕ с добавлением небольшого количества дополнительных заголовков.
Подтип тех~/еппс/гег/позволяет включать в текст простой язык разметки документа. Этот язык обеспечивает системно-независимый способ выделять участки текста жирным или наклонным стилями, использовать шрифты самых разных размеров и цветов, отступы, выравнивание, всрхнис и нижние индексы и формировать простой макет страницы. В основе этого языка разметки лежит язык ЗСМ1 (Бсапггагг! Сепега!ггег! Магкпр ).апйиаяе — стандартный обобщенный язык разметки), на базе которого был также создан язык НТМВ (НурегТехг Магистр ).апйиайе), применяемый в тз/'тт/тг/.
Например, сообщение <Ьо1б> Нонент </Ьо18> настал. - сказал <!та1!с> коряк </!Ьа1!с> . будет отображаться как Момент настал, — сказал лгоряк ... Р!в!и Епг!спеб Сн зр ц Ввз!с Мрец Ос!в!-зггевгп Роз!вопр! Нтс822 Рвгбв! Ектегпвг-Ьобу Ммвб Анегпвбче Рвгвзе! Р!цез! Неформатированный текст Текст с включением простык команд форматирования Неподвижное изображение в формате 6!Е Неподвижное изображение в формате дРЕВ Слышимый звук Видеофильм в формате МРЕО Неинтерпретируемвя последовательность байтов Документ для печати в формате Роз!Во/!р! Сообщение М!МЕ НЕС 822 Сообщение разбито нв части для передачи Само сообщение должно быть получено по сети Независимые части в указанном порядке То же сообщение в другом формате Части сообщения следует просматривать одновременно Кв:кдзя часть является законченным сообщением стандарта НЕС 822 Электронная почта 661 Интерпретация зависит от принимающей сообщение системы.