- •Введение
- •Зачем нужна эта книга
- •Для кого предназначена эта книга
- •Что вы найдете в этой книге
- •Об описаниях программ
- •О терминологии
- •Персональные компьютеры
- •Чем плох одинокий компьютер?
- •Так как же их соединить?
- •Окно в мир
- •Досетевая эпоха
- •Великое объединение
- •Калейдоскоп возможностей
- •Телекоммуникации и бизнес
- •Аналоговые и цифровые сигналы
- •Данные
- •Кодировки кириллицы
- •Передача данных
- •Асинхронная и синхронная свяэь
- •Как работает модем
- •Модуляция и демодуляция
- •Обнаружение и коррекция ошибок
- •Протоколы
- •Мир стандартов
- •Коммуникационные параметры
- •Управление потоком
- •Протоколы связи
- •Установление соединения
- •Протоколы коррекции ошибок
- •Протоколы передачи файлов
- •Эмуляция терминала
- •Мой первый модем
- •Выбор
- •Скорости и протоколы
- •Внутренние и внешние
- •Покупка
- •Продавцы и производители
- •Гарантия и сервис
- •Установка
- •Внутренние модемы
- •Внешние модемы
- •Соединение с телефонной линией
- •Что умеют коммуникационные программы
- •Режим терминала (terminal mode)
- •Автоматическая настройка (automate setup)
- •Набор номера (dialing)
- •Захват (capturing)
- •Пересылка файлов (file transfer)
- •Сценарии (scripts)
- •Режим хоста (host mode)
- •Многозадачность (multitaskms)
- •Удаленный контроль (remote control)
- •Работа с факсами
- •Выбор программ
- •Основы работы с коммуникационными программами
- •Инсталляция
- •Установка параметров
- •Настройка модема в Windows 95
- •Проверка взаимодействия программы и модема
- •Первый звонок
- •Прием звонка
- •Работа с Winfax
- •Настройка модема и коммуникационной программы
- •Программирование модема
- •Управление скоростью и параметрами соединения
- •Коммуникационный драйвер Windows 3.1
- •Визит на BBS
- •Списки и расписания
- •Знакомство
- •Последние известия
- •Регистрация
- •Уровень доступа
- •Статистика
- •Помощь от машины и человека
- •Файловое меню
- •Меню сообщений
- •Сеть Фидо
- •Адреса в сети Фидо
- •Глобальные сети
- •Как устроен Интернет
- •Программы
- •Адреса в сети
- •Безопасность и надежность
- •Интернет в России
- •Цены
- •Другие сети
- •Почтовые службы
- •Электронная почта и не только
- •Как устроено письмо
- •Как писать электронные письма
- •Подпись
- •Набор символов
- •Посылка бинарных файлов
- •Возвраты и подтверждения о доставке
- •Рассылка по списку
- •Телеконференции
- •Как читать конференции: почтовое подключение
- •Как писать в конференции
- •Правила вежливости
- •Почтовые серверы
- •Выход на другие средства связи
- •Как искать людей
- •Методы подключения
- •Инструментарий
- •Telnet
- •Gopher
- •World Wide Web
- •Гипертекст и гипермедиа
- •Адреса документов
- •Что есть в WWW
Content Transfer Encoding: quoted printable то
тело письма будет выглядеть так:
=D5=EF=FO=FE=E2 =F2=F4=EA=FE=E5=E6'=OA=
=ОА= ,
=СС=Е2=ЕС =FE=EA=E4=EA=F9=FB, =EE=EF=E5 =E6=E2=EC=FO=EB =
=F5=F2^FO=F5=FO=F7 =FO=F7=FC»E5=EF=EA=F3
К этому методу шифровки приложимо все то, что сказано выше о base64: если программа получателя поддерживает MIME, то письмо будет раскодировано автоматически и получатель смо жет прочесть его, даже не подозревая о подвохе. Если же поддержки MIME в почтовой программе нет (а таких программ еще немало), то добраться до текста письма вашему адресату бу дет более чем затруднительно. К счастью, обычно почтовые программы позволяют отключать для отправляемых писем этот способ шифровки; соответствующая опция чаще всего так и называется — «Quoted Printable».
Подробное описание процесса русификации множества почтовых программ для разных операционных систем, а также ссылки на всевозможные утилиты перекодировки, шрифты и драйверы клавиатуры вы найдете в Интернете по адресу http:// www. nagual.pp.ru/ache/koiS/html (если у вас нет прямого подключения, на стр. 261 вы узнаете, как можно получить WWW документ, зная его адрес, по почте).
Посылка бинарных файлов
К проблеме кодировок кириллицы близко примыкает проблема пересылки по почте бинарных файлов, содержащих непечатаемые символы ASCII. По техническим причинам система электронной почты может без искажений передавать только тексты. — т. е. наборы только печатаемых символов ASCII, в которых к тому же достаточно часто встречаются символы новой строки (т. е. строки по длине не превышают некоторой разумной величины). Архивы или исполняемые файлы программ не удовлетворяют ни первому, ни второму из этих условий.
И решается эта проблема сходными методами. Если почтовая программа поддерживает упоминавшийся уже стандарт MIME (Multipurpose Internet Mail Extensions, «Многоцелевое расширение интернетовской почты»), она, скорее всего, воспользуется алгоритмом base64 — одним из тех алгоритмов, которые можно было бы назвать «архиваторами наоборот». И в самом деле, если архиватор преобразует текстовые файлы — так, что они занимают меньше места, — за счет использования непечатаемых символов ASCII, то алгоритмы типа base64, наоборот, «излагают содержа
ние» исходного файла только печатаемыми символами, попутно увеличивая его объем.
Однако поддержка MIME не ограничивается использованием base64. Закодировав подлежащий отправке бинарный файл, почтовая программа должна занести соответствующую информацию в поля заголовка, чтобы программа получателя смогла без труда раскодировать файл и знала, что с ним после этого следует делать. Поле Content Transfer Encoding при этом указывает на метод кодирования (base64), а поле Content Type содержит информацию о типе закодированного файла (а для многих типов — и некоторую служебную информацию, например имя файла). Так, если вы посылаете в письме изображение в формате GIF, в заголовке будет стоять:
Content Type: image/gif; name="logo.gif"
Content Transfer Encoding: base64
Теперь программа получателя не только сможет рас кодировать пришедший файл, вернув его в исходную бинарную форму, но и будет знать, под каким именем его записать и даже
— какую программу вызвать на обработку этого файла (если у пользователя в настройках операционной системы записано, что файлы формата GIF обрабатываются, к примеру, программой Photoshop).
Именно номенклатура типов данных и составляет основное содержание стандарта MIME. Так, как в нашем примере, программа сможет указывать только зарегистрированные MIME ТИПЫ, из которых, помимо image/gif, мы уже знакомы с типом text/plain, применяющимся для простых ASCII текстов (стр. 230). Если же тип отправляемого файла не относится к зарегистрированным, программа поставит в заголовке «applica tion/octet stream», что означает «просто какой то набор байтов».
Разобранный выше пример предполагает, что в теле письма не содержится ничего, кроме столбца букв и цифр, представ ляющего собой закодированный по base64 бинарный файл. Но что делать, если вы хотите сопроводить посылаемый файл собственноручной припиской? На этот случай MIME предусматривает возможность создания «составных» писем из нескольких частей. При этом в заголовке письма стоит следующее:
Content Type: multipart/mixed; boundary= 4Е611А4Е6А69"
чти в переводе на русский язык означает: письмо состоит из нескольких частей разных типов, причем границы («boundary») между частями помечены строками символов "———— 4Е611А4Е6А69". Вот как будет выглядеть тело такого письма:
This is a multi part message in MIME format.
4Е611А4Е6А69
Content Type: text/plain; charset=koi8 r
Content Transfer Encoding: 8bit
Привет! Вот тебе обещанный логотип.
dk
„ „ 4Е611А4Е6А69
Content Type: image/gif; name^'logo.gif" Content Transfer Encoding: base64 Content Disposition: inline; filename^'logo.gif"
R01GODdhxgHtAfcAAP////z19vr6/Pr6+/nr7Pbg4/'X2+PTW2vHx9fHM OfOx907Cx+2t8ezs 8eu4vuittefo7ufo7eWj q+OZoulj 6uGTneCPmd3f593f5t2FkNp6htna49j a49dwfdTW4NRm dNPV39Jca8/R3M9SYcxHWMrN2crM2crM2Mk9T8YzRcXI1sXI1cXH lcMpPMHDOsEfM8DDOsDD
Первая фраза, «This is a multi part message...», вставляется' почтовой программой отправителя на тот случай, если программа получателя не будет знакома с MIME и покажет своему пользователю текст письма «как есть» — т. е. ровно в том же виде, что и на этой странице книги. Если же программа чтения почты поддерживает MIME, она проигнорирует все вплоть до первого вхождения строки разделителя.
Сразу после разделителя, открывающего очередную часть, располагаются «локальные» MIME заголовки, указывающие на тип каждой части письма. Согласно этим сведениям, первая часть письма в нашем примере содержит русский текст в кодировке КОИ8, а вторая — изображение.в формате GIF из файла logo.gif. То же самое письмо в окне почтовой программы, поддерживающей MIME и умеющей к тому же выводить на экран изображения из GIF файлов, показано на рис. 30.
До того как стандарт MIME получил широкое распространение, вместо base64 употреблялся другой похожий алгоритм, называе мый uuencode/uudecode. Достоинство uuencode — то, что этот метод приводит к менее значительному увеличению размера кодируемого файла, чем base64, а главный недостаток — то, что он не включен в стандарт MIME и потому не может работать пол ностью автоматически. Если закодировать по uuencode и вставить в письмо бинарный файл некоторые почтовые программы могут почти автоматически, то, чтобы извлечь его оттуда, вам придется как минимум показать программе место, откуда начинать раскодировать (а поскольку большие бинарные файлы при кодировке часто разбиваются на части, то вам придется еще потрудиться, собирая эти части воедино). Вот как выглядит начало бинарного файла, закодированного по алгоритму uuencode:
begin 644 BOOK.ARJ
M8.HH' 'Xld'O'O' • )==75®P'@' •••"•••"• ......... .$)/3TLN05).' • «2G
M<0'M' • '@ZBO' '@4'•'•' ' C1'4,>2E$" ,R\' ' ••<WIO]' "»• • " . 2U65»' '5 MX VES»' •
•'BtWB^ Qa+OJZSSZF^RO.YROZ'^UZISD'^PXCS'IOA M<V= )'NPW=9%Q.8@?2=(F
\XX"7>%RE767]E_7=U59"ttEU59>YFEX\OS????4
M__ZJN6V.X1R$>1(A"_«[W:UMIN[W</__3SZ;N:JN:B R>FNF:J?HGTOQ34F
Методом uuencode следует пользоваться, когда вы подо зреваете, что почтовая программа получателя не поддерживает MIME. К сожалению, этот метод нельзя рекомендовать на все случаи жизни, так как многие программы с поддержкой MIME, наоборот, не имеют никакого представления об uuencode. (Если вы пользуетесь такой программой, существуют отдельные ути литы для шифровки/расшифровки файлов по uuencode.) А лучше всего в любом случае, прежде чем посылать кому то бинарный файл, выяснить, с каким алгоритмом шифрования может работать почтовая программа вашего адресата.
Размер закодированного файла больше размера исходного примерно на 30% в случае uuencode и 40% в случае base64. Поэтому, когда вы посылаете хоть сколько нибудь сжимаемые бинарные файлы (например, ехе программы), желательно перед обработкой кодировщиком их заархивировать, чтобы уменьшить размер письма. Более того, даже для посылки обычного текста большого объема имеет смысл файл с этим текстом заархивировать, а затем закодировать — размер письма будет меньше, чем объем исходного текста. (Конечно, вы должны быть уверены, что получатель письма сможет произвести обратные действия — декодирование и разархивирование.)
Uudecode для бедных
Отдельные утилиты и целые почтовые программы, поддерживающие как uuencode/uudecode, так и base64, совсем несложно