Читаем TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) полностью

■ Неэффективный способ кодирования, который представляет двоичные данные как текст, если можно будет доставить сообщение на принимающий агент пересылки почты только таким способом.

■ Эффективный способ кодирования, когда получатель поддерживает такой способ.

Методы кодирования представлены в таблице 16.3. Если используется не обычный метод NVT USASCII, а другой, то он должен быть явным образом определен в заголовке Content-Transfer-Encoding. Например:

Content-Transfer-Encoding: base64

Content-Transfer-Encoding: Quoted-printable

Таблица 16.3 Методы копирования

МетодОписание
7bitОбычные строки текста NVT USASCII.
quoted-printableСодержимое по большей части представляет собой обычный текст ASCII, но дополнительно имеется несколько особых символов. Каждый такой символ представлен специальной последовательностью обычных текстовых символов.
base64Все содержание отображается к виду, представленному обычными символами.
8bitСообщение организовано как последовательность строк, заканчивающихся на и имеющих длину не более 1000 символов. Однако могут быть включены 8-разрядные коды.
binaryПравильное представление двоичных данных.
x-token-nameЛюбой экспериментальный метод кодирования должен иметь название, начинающееся с "х".
<p>16.13.5 Метод кодирования указанными печатными символами</p>

Метод кодирования указанными печатными символами (quoted-printable encoding method) используется для сообщений, содержащих только небольшое число символов, не принадлежащих основному множеству ASCII. Эти символы отображаются в специальные последовательности, в то время как большая часть сообщения остается в своей естественной форме. Кодирование выполняется как:

= шестнадцатеричный код для символа

Например, символ перевода формата (X'0C) будет закодирован как =0C.

<p>16.13.6 Метод кодирования Base64</p>

Метод кодирования Base64 преобразует любой тип данных к большему в 3 раза количеству текстовых символов. Данные разделяются на части по три 8-разрядных, байта. Например:

10001000 00110011 11110001

Для преобразования эта последовательность сначала разделяется на четыре 6-разрядные группы:

100010 000011 001111 110001

Каждая группа интерпретируется как число:

34 3 15 49

Полученные числа заменяются соответствующими символами из таблицы 16.4.

Таблица 16.4 Кодирование Base64

ЗначениеКодЗначениеКодЗначениеКодЗначениеКод
0A16Q32g48w
1В17R33h49X
2С18S34i50y
3D19T35j51z
4E20U36k520
5F21V37I531
6G22W38m542
7H23X39n553
8I24Y40о564
9J25Z41p575
10К26a42q586
11L27b43r597
12M28с44s608
13N29d45t619
14О30e46u62+
15P31f47V63/

Если общее число октетов не кратно трем, то в конце сообщения останутся 1 или 2 октета. Они дополняются нулевыми битами и кодируются. 1 октет транслируется в 2 символа со следующими далее двумя знаками равенства (==), 2 октета — в 3 символа со следующим далее одним знаком равенства (=).

<p>16.14 Протокол POP</p>

Протокол почтового офиса (Post Office Protocol — POP) применяется для пересылки сообщений с почтового сервера на настольную или переносную компьютерную систему.

Спецификация POP определяет множество различных функций, например возможность просмотра списка поступивших сообщений (и их размеров) для извлечения или удаления некоторых из них. Однако многие реализации обычно просто пересылают всю поступившую почту на систему пользователя, которому предоставляется возможность сохранить копии всех сообщений на сервере или удалить их после загрузки на свою систему.

Настольные системы используют POP для загрузки почты, a SMTP для ее отправки. В большинстве случаев сервер загрузки почты одновременно является и входным почтовым шлюзом (см. рис. 16.8). Однако клиентское приложение позволяет применять различные системы для сервера POP и входного шлюза.

Рис. 16.8. Комбинация сервера POP и системы почтового шлюза

<p>16.15 Другие почтовые приложения</p>
Перейти на страницу:

Похожие книги