Интернет: как это работает Часть 4. Сервисы Интернета
Преимущества электронной почты
Основные функции почтовых клиентов
Почтовые клиенты на все случаи жизни
Почему письма не доходят до адресата
Передача специальных символов и вложенных сообщений
Мы продолжаем серию публикаций «Интернет: как это работает». В предлагаемой читателям статье дается обзор сервисов Интернета и подробно, на наглядных примерах рассматриваются принципы функционирования электронной почты.
Серверы и клиенты
омпьютеры, подключенные к Интернету, бывают двух типов: серверы и клиенты. Те компьютеры, которые предоставляют определенный сервис другим компьютерам, называют серверами1, а те, которые его получают, — клиентами. Более корректно говорить о клиентах и серверах на уровне программного обеспечения. Вычисления, при которых одна программа выступает как клиент, а другая как сервер, называются клиент-серверными вычислениями. Архитектура «клиент-сервер» является основой распределенных вычислений.
Следует различать компьютер-сервер и программу-сервер. Например, на одном и том же компьютере могут быть установлены как клиентские, так и серверные программы, то есть компьютер в различных процессах может одновременно выступать и клиентом, и сервером (рис. 1). Разделение программ на клиентскую и серверную части позволяет расположить эти программы на одном компьютере либо на машинах, расположенных в любых местах, связанных по Сети (рис. 2).
Клиентский компьютер, подключенный к Интернету, может обращаться к огромному количеству серверов во всем мире. Сеpвеpом может быть любой компьютер, который подключен к Сети и на котором запущены соответствующие программы, предоставляющие сервисные сетевые услуги.
Обычно компьютеры, которые выполняют роль серверов, и клиентские компьютеры различаются не только запускаемыми сервисами, но и операционными системами и, что немаловажно, аппаратной частью. Компьютеры-серверы — это, как правило, многопроцессорные системы. При этом следует учесть возможность создания кластеров из однотипных серверов, которые делят между собой нагрузку, связанную с потреблением клиентами предоставляемых ими сервисов.
Следует отметить, что на одном компьютере может быть запущено несколько разных программ-серверов, вследствие чего этот компьютер может предоставлять несколько сервисов. Например, на машине может быть установлено программное обеспечение, которое позволяет ей работать одновременно и Web-сервером, и FTP-сервером. Для каждого типа программ-серверов существует своя программа-клиент. Так, Web-браузер обращается к Web-серверу, FTP-клиент — к FTP-серверу и т.д. Очевидно, что для того, чтобы программа-клиент обратилась к программе-серверу, еще до начала этого обращения необходима готовность программы-сервера к принятию данного обращения, то есть программа-сервер должна находиться в режиме ожидания до начала взаимодействия. Клиент может обратиться к серверу в любое время, поэтому сервер обычно работает постоянно, и очень важно, чтобы он длительное время работал без сбоев. Программа-клиент формирует запрос и отправляет его в заданном направлении по Сети, получает ответ и преобразует его в понятный для пользователя вид.
Описанный подход, по сути, обеспечивает пользователю небольшого компьютера доступ с рабочего стола к ресурсам миллионов компьютеров, подключенных к Интернету. Но чтобы обратиться с клиентского компьютера к какому-либо ресурсу в Сети, необходимо знать уникальный указатель на этот ресурс.
Система адресации URL
тобы найти документ в сети Интернет, достаточно знать ссылку на него — так называемый универсальный указатель на ресурс URL (Uniform Resource Locator — унифицированный указатель ресурса), который указывает местонахождение каждого файла, хранящегося на компьютере, подключенном к Интернету.
Адрес URL является сетевым расширением понятия полного имени ресурса, например файла или приложения (пути к нему) в операционной системе. В URL, кроме имени файла и директории, где он находится, указывается сетевое имя компьютера, на котором этот ресурс расположен, и протокол доступа к ресурсу, который можно использовать для обращения к нему2.
Для того чтобы лучше разобраться с системой адресации, рассмотрим некоторый URL:
http://www.abc.msk.ru/images/ANGEL.htm.
Первая часть http:// (HyperText Transfer Protocol — протокол передачи гипертекста, по которому обеспечивается доставка документа с Web-сервера Web-браузеру) указывает программе просмотра (браузеру), что для доступа к ресурсу применяется данный сетевой протокол.
Вторая часть http://www.abc.msk.ru/ указывает на доменное имя.
Третья часть images/ANGEL.htm показывает программе-клиенту, где на данном сервере искать ресурс. В данном случае ресурсом является файл в формате html, а именно ANGEL.htm, который находится в папке images.
Обратите внимание: при написании URL важно правильно указывать верхние и нижние регистры. Дело в том, что Web-серверы функционируют под управлением разных операционных систем, а в некоторых из них имена файлов и приложений являются регистро-чувствительными.
Общий вид формата URL-адреса
В общем случае формат URL имеет вид: (протокол доступа) [://<домен>: <порт>](/<директория><имя ресурса>[/<параметры запроса>]
Первая часть URL, как уже было отмечено выше, соответствует используемому протоколу доступа, например http:// (протокол передачи гипертекста), ftp:// (File Transfer Protocol — протокол передачи файлов) и т.д.
Схема указания способа доступа перед указанием адреса наверняка вам встречалась и прежде. Например, если на визитке вы видите запись вроде: Тел.: 433 88 15. Факс: 433 88 14, то вам понятно, что по первому номеру возможен телефонный разговор, а по второму — отправка факса. Аналогично в URL сначала идет указатель на тип доступа к запрашиваемому файлу, а затем его адрес.
Вторая часть URL-адреса указывает доменное имя, а также может указывать номер порта. Любой сервер предоставляет сервис, используя нумерованные порты. При этом каждая служба имеет свой номер порта. Клиенты подключаются к сервису по уникальному IP-адресу (об IP-адресах мы рассказывали в одной из предыдущих статей данного цикла, см. КомпьютерПресс № 5’2002) и по конкретному номеру порта. Так, если на компьютере запущены Web-сервер и FTP-сервер, то обычно Web-сервер будет доступен по порту 80, а FTP-сервер — по порту 21. Каждый из распространенных сервисов имеет свой стандартный номер порта: WWW — 80, ftp — 21, echo — 7, telnet — 23, smtp — 25, gopher — 70 и т.д.
Если серверный компьютер допускает возможность соединения с портом из Интернета и при этом не защищен брандмауэром, вы можете подключиться к нему и воспользоваться той или иной услугой.
При этом следует учитывать, что если вы устанавливаете свой Web-сервер, то можно поместить его на другой свободный номер порта, например 920. В этом случае, если имя вашей машины, например, ааа.bbb.com, подключиться к вашему серверу можно по URL http://aaa.bbb.com:920. Если номер порта не указан, браузер будет по умолчанию обращаться к порту 80. В рассмотренном выше примере (http://www.abc.msk.ru/images/ANGEL.htm) мы не указали номер порта, поэтому он будет определен по умолчанию по имени используемого протокола (в данном случае HTTP).
Третья часть URL-адреса — путь доступа к файлу — аналогичен пути к файлу на клиентском компьютере. Если этот путь не указан, по умолчанию используется стандартный отклик, определяемый в настройках Web-сервера. В частности, стандартным откликом на HTTP-запрос для ряда Web-серверов служит вывод файла с именем Index.html, тогда как в Internet Information Services можно указать, к какому ресурсу произойдет обращение по умолчанию.
Отметим, что при обращении к таким ресурсам, как Web-приложения (приложения, выполняющиеся под управлением Web-сервера, либо библиотеки, которые загружаются в его адресное пространство), в состав URL могут входить различные параметры и переменные, например: http://www.abc.msk.ru/scripts/myapplication.exe/showinfo?var1=5& var2=10. В приведенном примере производится обращение к приложению myapplication.exe c параметром ShowInfo, при этом приложению передаются значения переменных var1 и var2, равные 5 и 10 соответственно.
Сервисы Интернета
режде чем мы приступим к подробному описанию различных служб Интернета, кратко рассмотрим некоторые сервисы Интернета, не вдаваясь в принципы их функционирования, а после введения ряда дополнительных понятий перейдем к детальному разбору каждой из служб.
Обычно начинающие пользователи идентифицируют Интернет со службой WWW (World Wide Web — Всемирная паутина) однако это далеко не так, ибо WWW — одна из многочисленных служб Интернета. Интернет предоставляет множество сервисов и не может отождествляться с одним из них. Пояснить данную мысль можно посредством аналогии с традиционными службами доставки. Так, существует множество почтовых служб: DHL, Fedex и т.д., каждая из которых доставляет грузы по своим правилам, но все они пользуются сетью дорожных коммуникаций, которая, в свою очередь, функционирует по своим принципам. Вполне возможно, что со временем возникнут новые службы, которые будут предоставлять новые виды сервисов на базе использования уже имеющихся транспортных магистралей. В развитие данной аналогии Интернет можно сравнить с системой транспортных магистралей, а виды сервисов Интернета — с различными службами доставки.
В число наиболее часто используемых служб Интернета входят электронная почта, Всемирная паутина (WWW), служба новостей Интернета, передача файлов по протоколу FTP, терминальный доступ по протоколу Telnet и ряд других служб.
Электронная почта является одной из самых известных служб Интернета. С ее помощью можно отправлять сообщения любому пользователю, подключенному к Интернету. World Wide Web — наиболее популярный вид Интернет-службы, представляющий собой распределенную информационную систему коллективного использования гипертекстовых документов и приложений, их генерирующих. Служба новостей Интернета позволяет размещать сообщения в электронных дискуссионных группах. FTP-протокол предоставляет доступ к файлам на удаленных компьютерах и в файловых архивах. Telnet обеспечивает терминальный доступ к удаленным компьютерам.
Существует несколько вариантов классификации служб Интернета. Например, услуги Интернета можно разделить на информационные, коммуникативные и управляющие. Следует отметить, что часть сервисов реализуют информационный обмен «человек — человек» (такие, как электронная почта), а часть — обмен «пользователь — машина» (например, Ftp). На основе другой системы классификации сервисы Интернета можно разделить на интерактивные и сервисы отложенного чтения. Примером интерактивной Интернет-услуги является служба Telnet, а типичным сервисом отложенного чтения — электронная почта. Возможность отложенного ответа позволяет подготовить ответ, не имея подключения к Интернету, а затем отправить письмо во время очередного сеанса связи с Интернетом.
Электронная почта
лектронная почта возникла раньше, чем Интернет, однако она не только не устарела, но, напротив, является наиболее массовой службой Сети и постоянно приобретает новых пользователей. Электронное письмо, как и обычное, содержит адрес отправителя и получателя. В него можно вложить графическое изображение или иной файл — точно так же, как в конверт с письмом можно положить открытку или фотографию. На него можно поставить электронную подпись, которая играет ту же роль, что и подпись в обычном письме. Однако служба е-mail давно обошла по популярности традиционную почту: ежегодно в мире рассылается более 600 млрд. электронных писем. Чем же вызвана такая популярность? Для ответа на этот вопрос перечислим достоинства электронной почты.
Преимущества электронной почты
По статистике, 70% телефонных звонков на аппараты, не имеющие автоответчиков, заканчиваются безрезультатно. Очень часто абонент отсутствует либо не располагает временем на то, чтобы вникнуть в проблему, и т.д. В отличие от телефонного звонка электронная почта может быть прочитана в удобное время, что особенно важно с учетом разницы во времени между часовыми поясами. Следует также отметить демократичность электронной почты: отправляя электронное письмо хоть самому министру, вы не рискуете отвлечь его от совещания. К удобствам электронной почты следует также отнести возможность рассылки писем сразу большому количеству получателей, высокую скорость доставки, удобство пересылки вложенных файлов. Хранение писем в базе данных почтового клиента позволяет осуществлять быстрый поиск и сортировку почтовых отправлений. Кроме того, электронная почта в несколько сот раз дешевле обычной почтовой рассылки.
Адрес электронной почты
Обычно в момент регистрации доступа в Интернет сервис-провайдер (ISP) предоставляет пользователю дисковое пространство под почтовый ящик, адрес этого почтового ящика (E-mail Account Address), имя пользователя (E-mail Account Login Name) и пароль (E-mail Account Password). Пароль для доступа предоставляется в целях предотвращения несанкционированного доступа к почте. Адрес электронной почты имеет формат: имя_пользователя@имя_домена, например Ivanov@abc.msk.ru
Часть слева от значка @ — это имя почтового ящика (E-mail Account Name) на сервере, из которого владелец этого адреса забирает письма (в данном примере — Ivanov). Как правило, имя пользователя совпадает с именем почтового ящика.
Часть справа от значка @ называется доменом и указывает на местонахождение этого почтового ящика. Нужно отметить, что носителем адреса электронной почты вовсе не является конечный пункт доставки, то есть компьютер, который стоит у вас дома. Каждый пользователь может зарегистрировать несколько адресов на разных почтовых серверах. Сегодня существуют сотни серверов, которые бесплатно предоставляют услуги электронной почты, так что пользователь может иметь несколько учетных записей. Таким образом, любой пользователь Интернета может свободно зарегистрировать почтовые ящики в разных частях света. Поэтому адрес электронной почты определяет не адрес вашего домашнего компьютера, а адрес сервера, на котором вы будете получать почту (рис. 3).
Предположим, что у некоего пользователя зарегистрировано два адреса: sasha@chicago-server.com и sasha@ moscow — server.ru. Из каждого ящика он получает письма на свой домашний компьютер, но одно он копирует с сервера в Чикаго, а другое — с сервера в Москве. В связи с этим говорят о направленной адресации электронной почты, то есть здесь определяется маршрут доставки.
В первой статье данного цикла было сказано, что, отправляя послание с помощью Интернета, мы никогда не знаем, каким маршрутом дойдет каждый из пакетов, на которые разбивается сообщение. Но мы всегда знаем, что все IP-пакеты придут на тот сервер, на котором у вас зарегистрирован почтовый ящик, и что данные будут копироваться в ваш компьютер именно с этого сервера.
Два сервиса — два протокола
Электронная почта построена по принципу клиент-серверной архитектуры. Пользователь общается с клиентской программой, которая, в свою очередь, общается с почтовым сервером.
Очевидно, что процедура отправки и получения почты в разной степени требует идентификации личности, причем и здесь просматривается полная аналогия с обычной почтой: вам необходим ключ для того, чтобы забрать письмо из своего почтового ящика. Ключ в данном случае есть средство авторизации, удостоверяющее, что вы имеете право получить почту. При отправлении письма авторизация не нужна. В связи с тем что отправка и получение требуют разной степени идентификации личности, существует и два разных протокола — на отправку и на прием писем.
Для передачи писем используются протокол SMTP (Simple Mail Transfer Protocol — простой протокол пересылки почты) и соответственно SMTP-серверы. Чаще всего отправка почты происходит с почтового сервера вашего Интернет-провайдера, хотя, в принципе, это не обязательно. Обычно SMTP-серверы не требуют идентификации, поэтому вы можете отправить письмо с любого такого сервера. По аналогии с обычной почтой это означает, что, посылая письмо из Москвы в Петербург, вы не обязаны отправлять его с ближайшего почтамта, вы можете даже поехать в Петербург и опустить письмо на местной почтовой станции — оно все равно дойдет до адресата. Для приема почтовых сообщений в настоящее время наиболее часто используется протокол POP3 (Post Office Protocol — протокол почтового офиса), который контролирует право пользователя забирать почту из ящика и поэтому требует предоставления имени пользователя и пароля.
Клиентские программы
Основные функции почтовых клиентов
Базовые функции всех почтовых клиентов — это прием сообщений, обеспечение их просмотра в автономном режиме, сортировка сообщений, автоматизация создания ответных сообщений и поддержка адресной книги.
Создание электронного письма
При подготовке электронного письма пользователь готовит текст сообщения и заполняет ряд полей: «Кому», «Копия» и т.д. Сведения о дате создания письма и адрес почтового ящика отправителя вносятся автоматически. Почтовая программа позволяет упростить процесс заполнения данных полей, если вы отвечаете на письмо. Особенно удобны, в частности, такие функции, как «Ответить», «Ответить всем» и «Перенаправить». Для создания текста электронного письма обычно предоставляется текстовый редактор, который позволяет производить операции форматирования, использовать буфер обмена для копирования фрагментов из имеющихся документов, выбирать кодировку текста. Если почтовый клиент поддерживает HTML-формат, то возможности оформления письма существенно увеличиваются: вы можете использовать встроенные мультимедийные объекты, голосовые и видеосообщения.
Сортировка сообщений
Для удобства хранения и поиска почтовый клиент обычно позволяет рассортировать сообщения по логическим папкам. Следует отметить, что это именно логические папки, а вовсе не физические папки на вашем диске. Неверно представлять себе отдельные письма в качестве отдельных файлов, поскольку физически все письма обычно хранятся как совокупность записей некоторой базы данных, содержащейся в одном или в нескольких файлах. А логические папки представляют собой фильтры, которые позволяют увидеть определенную совокупность записей. В результате вы можете сортировать ваши сообщения по отправителям, дате получения и т.д., а также осуществлять поиск сообщений по различным полям.
Получение электронных писем
Получение электронных писем — еще одна базовая функция почтового клиента. После соединения почтового клиента с сервером происходит копирование поступившей корреспонденции на локальный компьютер. Когда сообщения будут получены, сеанс подключения к Интернету может быть прекращен, а чтение писем можно продолжить в офлайновом режиме. Большинство почтовых клиентов позволяют автоматически перенаправить полученное сообщение по новому адресу.
При ответе на письмо ряд полей заполняется автоматически. В частности, нет необходимости набирать адрес получателя — достаточно нажать кнопку «Ответ».
Почтовые клиенты на все случаи жизни
Только для платформы Windows в мире существует несколько сотен почтовых клиентов. Описание функциональности конкретных программ выходит за рамки данной статьи, мы упомянем лишь самые распространенные программы и укажем адреса, где их можно получить.
Outlook Express — наиболее популярная в мире программа, входящая в состав Microsoft Office и Microsoft Internet Explorer. Программа может быть бесплатно скопирована с сервера http://www.microsoft.com/. Outlook Express обладает широким набором функциональных возможностей, поддерживает протокол IMAP3.
Для русскоязычных пользователей хотелось бы порекомендовать программу The Bat! — знаменитый продукт молдавских разработчиков, — найти которую можно по адресу http://www.ritlabs.com/ru/the_bat/. The Bat! — мощный почтовый клиент. В продукте реализована поддержка русского языка, полностью русифицирован интерфейс. Программа удобна в работе и не требовательна к ресурсам.
Как работает почта
ассмотрим конкретный пример. Пусть некий владелец электронного ящика с адресом petya@abc.ru на почтовом сервере abc.ru пишет письмо владельцу почтового ящика с адресом sasha@xyz.com на сервере xyz.com.
Для того чтобы подготовить письмо, он вызывает клиентскую программу, создает текст сообщения и в графе «Кому» указывает адрес получателя sasha@xyz.com (рис. 4). Если отправитель не имеет постоянного подключения к Интернету, то после нажатия кнопки «Отправить» он устанавливает сеанс связи с провайдером и начинает получать накопившуюся почту и отправлять подготовленные письма. Порядок приема почты обычно зависит от текущих настроек почтовой программы. Нередко письма складываются в определенную папку и отправляются другой командой после установки связи с провайдером. Процесс загрузки на локальный компьютер вновь поступивших писем и отправления новых писем на сервер называется синхронизацией учетной записи.
Отправление и доставка письма
После того как вы подключились к Интернету, клиентская программа соединяется с почтовым сервером и передает серверу почтовый адрес отправителя sasha@xyz.com и текст самого сообщения. При отправке почты клиентская программа взаимодействует с сервером исходящей почты, то есть с SMTP-сервером, по протоколу SMTP, подключаясь к порту с номером 25 (рис. 5). Процедура отправки электронной почты заключается в копировании вновь подготовленных сообщений из базы клиента в базу почтового сервера (в нашем случае — сервера abc.ru).
Маршрут продвижения письма условно представлен схемой на рис. 6.
Синим цветом показано, как письмо передается от абонента с электронным адресом petya@abc.ru на почтовый ящик абонента с адресом sasha@xyz. com, а затем на его локальный компьютер.
Рассмотрим этот процесс более подробно. После того как письмо доставлено на сервер отправителя, SMTP-сервер последнего должен связаться с сервером получателя. Для этого ему необходимо знать IP-адрес SMTP-сервера, получающего почту для адресов из домена xyz.com. Чтобы узнать этот адрес, он обращается к так называемому DNS-серверу (Domain Name Server) и задает ему вопрос: «Каков IP-адрес SMTP-сервера, получающего почту для адресов из домена xyz.com?» (работу DNS-серверов мы подробно описали в первой статье цикла в № 5’2002).
DNS-сервер выдает IP-адрес, после чего SMTP-сервер на abc.ru может соединиться с SMTP-сервером на xyz.com. Если по какой-либо причине SMTP-сервер на abc.ru не может связаться с SMTP-сервером на xyz.com, то послание встает в очередь для отправки. Обычно через каждые 15 минут производится попытка переслать послание из очереди. Через четыре часа отправителю будет послано сообщение о проблеме, а спустя пять дней большинство серверов прекращают попытки и возвращают отправителю недоставленную почту, так что бесследно ваше письмо не исчезнет.
Если посмотреть на протокол общения почтового клиента с SMTP-сервером, можно убедиться, что он достаточно прост. Здесь используются интуитивно понятные команды: типа HELO (представьтесь), MAIL FROM (определите отправителя), RCPT TO (определите получателя) и т.п.
Как только SMTP-серверу на abc.ru удается связаться с SMTP-сервером на xyz.com, он передает послание. Сервер xyz.com определяет, существует ли пользователь с именем sasha, и передает послание в ящик sasha.
После того как почта оказалась на сервере xyz.com, получатель имеет возможность скачать ее оттуда. При получении почты, накопившейся в вашем почтовом ящике, клиентская программа получателя взаимодействует с POP3-сервером по протоколу POP3. Поскольку при входе в Интернет вы уже сообщаете свой пароль и логин, то обычно при получении почты дополнительного введения этих данных не требуется4. Ваш почтовый клиент связывается с POP3-сервером и передает команды, которые определяют передачу копий посланий электронной почты на локальную машину клиента.
Как правило, после получения почты сообщения на сервере удаляются, если в почтовом клиенте не определено обратное. Как и SMTP-сервер, POP3-сервер при «разговоре» с почтовым клиентом получателя использует определенный набор интуитивно понятных команд: USER (введите ID пользователя), PASS (введите пароль), QUIT (покиньте POP3-сервер), DELE (удалите сообщение).
Следует отметить, что если SMTP-протокол весьма примитивен и всего лишь передает на сервер содержимое письма с адресами получателей, то работа с POP3-сервером гораздо более сложная, поскольку он позволяет иметь несколько папок, перемещать между ними письма, удалять их, пересылать, получать только заголовки и пр.
Для приема почты может использоваться и более современный протокол — IMAP, который дает возможность выборочно копировать пришедшие вам письма с почтового сервера на ваш компьютер.
Почему письма не доходят до адресата
Вероятно, вы встречались с ситуациями, когда электронное письмо так и не доходило до адресата. Это может произойти по нескольким причинам. Возможно, сервер получателя не принимает письма от данного отправителя. Кроме того, послание будет отправлено назад, если сервер перегружен и не может обработать запрос. Даже если письмо не отвергается сервером получателя, оно может вернуться, если, например, вы ошиблись при написании имени получателя — система сообщит, что на сервере не существует получателя с таким именем. И наконец, может возникнуть ситуация, когда получатель с указанным именем хотя и существует, но его почтовый ящик переполнен.
Передача специальных символов и вложенных сообщений
Протокол SMTP позволяет передавать не все символы ASCII, а только те из них, которые характерны для английского алфавита и определяются базовой таблицей кодирования ASCII. Как известно, ASCII определяет две таблицы кодирования: базовую семибитную (символы с номерами 0-127) и расширенную восьмибитную (128-255).
Для кодирования русских букв используется несколько различных кодировок: кириллица Windows, кириллица KOI-8 и т.д. Последняя кодировка была придумана для того, чтобы письма на русском языке оставались читаемыми при перекодировании их каким-либо сервером, встретившимся на их пути, в семибитную кодировку — значения кодов русских символов в этой таблице на 128 больше, чем значения кодов символов соответствующих им букв латинского алфавита. Символы русского алфавита относятся к расширенной таблице кодирования, и для протокола SMTP они являются специальными символами. При передаче специальных символов обычно используется стандарт кодирования MIME (Multipurpose Internet Mail Extensions — многоцелевые расширения почтового стандарта Интернета), который позволяет передавать специальные символы, а также кодировать нетекстовую информацию для передачи по электронной почте, например графики, которые вы помещаете во вложении к письму.
Изначально электронная почта не предназначалась для пересылки файлов, поэтому для того, чтобы переслать произвольный файл, необходима его перекодировка в аналог текстового сообщения. Стандарт MIME позволяет определить по заголовку файла, какой тип данных он содержит (текст, графика, музыка и т.д.), и предоставляет единый метод кодирования вложенных файлов.
Но использование MIME все же не решает всех проблем с передачей русскоязычных текстов. Если вы получаете письма на русском языке, то порой в полученном письме видна лишь нечитаемая смесь букв и знаков. При этом вы можете перебрать все доступные для почтовой программы варианты кодировки русского алфавита, но так и не получить читаемого текста. Дело в том, что при передаче кодировка письма может быть изменена, причем не всегда корректно. Иногда почтовый сервер преобразует письма в KOI8-R, считая, что они имеют кодировку Windows. Между тем возможна ситуация, когда одно из исходных писем уже было преобразовано в KOI8-R системой отправки. В результате оба письма придут в нечитаемом виде.
Таких некорректных перекодировок на пути следования письма может оказаться несколько, и чтобы наконец-то прочесть послание, используются специальные перекодировщики, например бесплатная TotRecode или платная программа «Реаниматор» (http://www.ars.ru/products/reanim/), позволяющая спасти текст, прошедший до 10 неправильных перекодировок. Используя эту программу, можно восстановить даже безнадежно испорченные письма, при пересылке которых был «потерян 8-й бит», то есть та информация, которая связана с кодами русских букв. Расшифровка в этом случае становится неоднозначной, однако на основе словаря русского языка «Реаниматор» предложит несколько вариантов для каждого из слов сообщения, из которых вы легко выберете слова, складывающиеся в осмысленные фразы.
Просьба присылать ваши замечания и комментарии по адресу alproh@aha.ru.
КомпьютерПресс 9'2002