Основные протоколы прикладного уровня. Тариф без ограничения скорости передачи данных. Способы подключения к Интернет

Протокол SMTP

SMTP (англ. Simple Mail Transfer Protocol -- простой протокол передачи почты) -- это сетевой протокол, предназначенный для передачи электронной почты в сетях TCP/IP.

SMTP используется для отправки почты от пользователей к серверам и между серверами для дальнейшей пересылки к получателю. Для приёма почты почтовый клиент должен использовать протоколы POP3 или IMAP.

Данные передаются при помощи TCP, при этом обычно используется порт 25 или 587. При передаче сообщений между серверами обычно используется порт 25.

Чтобы доставить сообщение до адресата, необходимо переслать его почтовому серверу домена, в котором находится адресат. Для этого обычно используется запись типа MX (англ. Mail eXchange -- обмен почтой) системы DNS. Если MX запись отсутствует, то для тех же целей может быть использована запись типа A. Некоторые современные реализации SMTP-серверов (например, Exim ) для определения сервера, обслуживающего почту в домене адресата, также могут задействовать SRV-запись (RFC 2782).

Сервер SMTP -- это конечный автомат с внутренним состоянием. Клиент передает на сервер строку команда<пробел>параметры<перевод строки>. Сервер отвечает на каждую команду строкой, содержащей код ответа и текстовое сообщение, отделенное пробелом. Код ответа -- число от 100 до 999, представленное в виде строки, трактующийся следующим образом:

  • · 2ХХ -- команда успешно выполнена
  • · 3XX -- ожидаются дополнительные данные от клиента
  • · 4ХХ -- временная ошибка, клиент должен произвести следующую попытку через некоторое время
  • · 5ХХ -- неустранимая ошибка

Текстовая часть ответа носит справочный характер и предназначен для человека, а не программы.

Безопасность SMTP и спам

Изначально SMTP не поддерживал единой схемы авторизации. В результате этого спам стал практически неразрешимой проблемой, так как было невозможно определить, кто на самом деле является отправителем сообщения -- фактически можно отправить письмо от имени любого человека. В настоящее время производятся попытки решить эту проблему при помощи спецификаций SPF, Sender ID, Yahoo Domain Keys. Единой спецификации на настоящий момент не существует.

Протокол POP3

POP3 (англ. Post Office Protocol Version 3 -- протокол почтового отделения, версия 3) -- это сетевой протокол, используемый для получения сообщений электронной почты с сервера. Обычно используется в паре с протоколом SMTP.

Рис. 10. Схема «Клиент-сервер по протоколу POP3»

Описание протокола РОРЗ

Рассмотрим представленную на Рис. 10. схему «Клиент-сервер по протоколу POP3». Конструкция протокола РОРЗ обеспечивает возможность пользователю обратиться к своему почтовому серверу и изъять накопившуюся для него почту. Пользователь может получить доступ к РОР-серверу из любой точки доступа к Интернет. При этом он должен запустить специальный почтовый агент (UA), работающий по протоколу РОРЗ, и настроить его для работы со своим почтовым сервером. Итак, во главе модели POP находится отдельный персональный компьютер, работающий исключительно в качестве клиента почтовой системы (сервера). Подчеркнем также, что сообщения доставляются клиенту по протоколу POP, а посылаются по-прежнему при помощи SMTP. То есть на компьютере пользователя существуют два отдельных агента-интерфейса к почтовой системе - доставки (POP) и отправки (SMTP). Разработчики протокола РОРЗ называет такую ситуацию "раздельные агенты" (split UA). Концепция раздельных агентов кратко обсуждается в спецификации РОРЗ.

В протоколе РОРЗ оговорены три стадии процесса получения почты: авторизация, транзакция и обновление. После того как сервер и клиент РОРЗ установили соединение, начинается стадия авторизации. На стадии авторизации клиент идентифицирует себя для сервера. Если авторизация прошла успешно, сервер открывает почтовый ящик клиента и начинается стадия транзакции. В ней клиент либо запрашивает у сервера информацию (например, список почтовых сообщений), либо просит его совершить определенное действие (например, выдать почтовое сообщение). Наконец, на стадии обновления сеанс связи заканчивается. Далее перечислены команды протокола РОРЗ, обязательные для работающей в Интернет реализации минимальной конфигурации.

Команды протокола POP версии 3 (для минимальной конфигурации)

USER Идентифицирует пользователя с указанным именем

PASS Указывает пароль для пары клиент-сервер

QUIT Закрывает TCP-соединение

STAT Сервер возвращает количество сообщений в почтовом ящике плюс размер почтового ящика

LIST Сервер возвращает идентификаторы сообщений вместе с размерами сообщений (параметром команды может быть идентификатор сообщения)

RETR Извлекает сообщение из почтового ящика (требуется указывать аргумент-идентификатор сообщения)

DELE Отмечает сообщение для удаления (требуется указывать аргумент - идентификатор сообщения)

NOOP Сервер возвращает положительный ответ, но не совершает никаких действий

LAST Сервер возвращает наибольший номер сообщения из тех, к которым ранее уже обращались

RSET Отменяет удаление сообщения, отмеченного ранее командой DELE

В протоколе РОРЗ определено несколько команд, но на них дается только два ответа: +ОК (позитивный, аналогичен сообщению-подтверждению АСK) и -ERR (негативный, аналогичен сообщению "не подтверждено" NAK). Оба ответа подтверждают, что обращение к серверу произошло и что он вообще отвечает на команды. Как правило, за каждым ответом следует его содержательное словесное описание. В RFC 1225 есть образцы нескольких типичных сеансов РОРЗ. Сейчас мы рассмотрим несколько из них, что даст возможность уловить последовательность команд в обмене между сервером и клиентом.

После того как программа установила TCP-соединение с портом протокола РОРЗ (официальный номер 110), необходимо послать команду USER с именем пользователя в качестве параметра. Если ответ сервера будет +ОК, нужно послать команду PASS с паролем этого пользователя:

CLIENT: USER kcope ERVER: +ОК CLIENT: PASS secret SERVER: +ОК kcope"s maildrop has 2 messages (320 octets) (В почтовом ящике kcope есть 2 сообщения (320 байтов) ...)

Транзакции РОРЗ

Команда STAT возвращает количество сообщений и количество байтов в сообщениях:

SERVER: +ОК 2 320

Команда LIST (без параметра) возвращает список сообщений в почтовом ящике и их размеры:

Команда NOOP не возвращает никакой полезной информации, за исключением позитивного ответа сервера. Однако позитивный ответ означает, что сервер находится в соединении с клиентом и ждет запросов:

Следующие примеры показывают, как сервер POP3 выполняет действия. Например, команда RETR извлекает сообщение с указанным номером и помещает его в буфер местного UA:

CLIENT: RETR 1 SERVER: +OK 120 octets SERVER: (РОРЗ-сервер высылает сообщение целиком) SERVER: . . . . . .

Команда DELE отмечает сообщение, которое нужно удалить:

SERVER: +OK message 1 deleted ... (сообщение 1 удалено) CLIENT: DELE 2 SERVER: -ERR message 2 already deleted сообщение 2 уже удалено)

Команда RSET снимает метки удаления со всех отмеченных ранее сообщений:

(в почтовом ящике 2 сообщения (320 байтов))

Как и следовало ожидать, команда QUIT закрывает соединение с сервером:

CLIENT: QUIT SERVER: +OK dewey POP3 server signing off CLIENT: QUIT SERVER: +OK dewey POP3 server signing off (maildrop empty) CLIENT: QUIT SERVER: +OK dewey POP3 server signing off (2 messages left)

Обратите внимание на то, что отмеченные для удаления сообщения на самом деле не удаляются до тех пор, пока не выдана команда QUIT и не началась стадия обновления. В любой момент в течение сеанса клиент имеет возможность выдать команду RSET, и все отмеченные для удаления сообщения будут восстановлены.

Протокол IMAP

IMAP (англ. Internet Message Access Protocol ) -- интернет-протокол прикладного уровня для доступа к электронной почте.

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

Преимущества по сравнению с POP

IMAP был разработан для замены более простого протокола POP3 и имеет следующие преимущества по сравнению с последним:

  • · Письма хранятся на сервере, а не на клиенте. Возможен доступ к одному и тому же почтовому ящику с разных клиентов. Поддерживается также одновременный доступ нескольких клиентов. В протоколе есть механизмы с помощью которых клиент может быть проинформирован об изменениях, сделанных другими клиентами.
  • · Поддержка нескольких почтовых ящиков (или папок). Клиент может создавать, удалять и переименовывать почтовые ящики на сервере, а также перемещать письма из одного почтового ящика в другой.
  • · Возможно создание общих папок, к которым могут иметь доступ несколько пользователей.
  • · Информация о состоянии писем хранится на сервере и доступна всем клиентам. Письма могут быть помечены как прочитанные, важные и т. п.
  • · Поддержка поиска на сервере. Нет необходимости скачивать с сервера множество сообщений для того чтобы найти одно нужное.
  • · Поддержка онлайн-работы. Клиент может поддерживать с сервером постоянное соединение, при этом сервер в реальном времени информирует клиента об изменениях в почтовых ящиках, в том числе о новых письмах.
  • · Предусмотрен механизм расширения возможностей протокола.

На первой стадии электронная почта проходит через пользовательского агента в локальный сервер. Почта, возможно, сразу не посылается на удаленный сервер, поскольку он может быть недоступен к этому моменту. Поэтому почта накапливается в локальном сервере, пока ее не удастся отправить. Пользовательский агент использует программное обеспечение SMTP-клиента, локальный сервер использует программное обеспечение SMTP-сервера.

Вторая стадия

На втором шаге электронная почта идет с помощью локального сервера, который теперь действует как клиент SMTP. Электронная почта доставляется удаленному серверу, но не к удаленному агенту пользователя. Если бы SMTP был принятым сервером, всегда можно было бы обработать прибывшую почту в любой момент времени. Однако люди часто выключают свой компьютер до конца дня, а мини-компьютер или переносные компьютеры зачастую нормально не работают. Обычно организации предназначают свой компьютер для принятия электронной почты и постоянной работы в качестве программного сервера . Электронная почта получается с помощью такого сервера и накапливается в почтовом ящике для дальнейшего использования.

Третья стадия

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

Протоколы почтового доступа

Первая и вторая стадия доставки почты используют SMTP . Однако SMTP не включен в третью стадию, потому что STMP "проталкивает" сообщение от отправителя к получателю, даже если получатель этого не желает. Работу SMTP начинает отправитель, а не получатель. С другой стороны, третья стадия нуждается в протоколе, который "притягивает" сообщение, и эта операция должна начинаться у получателя. Третья ступень использует протокол почтового доступа.

В настоящее время применяются два протокола: Post Office Protocol , Version 3 - POP3 и Internet Mail Access Protocol , Version 4 - IMAP4.

POP3

Post Office Protocol , Version 3 ( POP3 ) - протокол простой, но ограниченный функционально. Программное обеспечение клиента POP3 устанавливается в компьютере получателя; программное обеспечение POP3 -сервера устанавливается в почтовом сервере.

Почтовый доступ стартует от клиента, когда пользователю надо загрузить его электронную почту из почтового ящика в почтовый сервер. Клиент ( агент пользователя ) устанавливает с сервером порт 110 и далее посылает ему имя и пароль для доступа к почтовому ящику. Пользователь может затем перечислить и отыскать почтовые сообщения одно за другим. Рисунок 14.13. показывает пример загрузки, использующей POP3 .


Рис. 14.13. POP3

POP3 имеет два режима: режим удаления и режим сохранения. В режиме удаления почта удаляется из почтового ящика после каждого запроса. В режиме сохранения почта остается в почтовом ящике после запроса. Режим удаления обычно используют, когда пользователь постоянно работает с компьютером и может сохранить и упорядочить почту после чтения и ответа. Режим сохранения применяют, когда пользователь имеет доступ к своей почте через первичный компьютер (например, переносной компьютер). Почта читается, но сохраняется в системе для дальнейшего запроса и упорядочения.

IMAP4

Другой протокол почтового доступа к сообщениям Интернета - Internet Mail Access Protocol , Version 4 (IMAP4). IMAP4 похож на POP3 , но имеет некоторые особенности: IMAP4 более мощный и более сложный.

POP3 является несовершенным по нескольким причинам. Он не позволяет пользователю организовать почту на сервере; пользователь не может иметь различные "папки". (Конечно, пользователь может организовать папки на собственном компьютере.) В дополнение к этому, POP3 не позволяет пользователю частично проверить содержание почты перед загрузкой.

IMAP4 обеспечивает следующие дополнительные функции:

  • Пользователь может проверить заголовки электронной почты перед загрузкой.
  • Пользователь может искать содержимое электронной почты для специальных строк-символов перед загрузкой.
  • Пользователь может частично загружать электронную почту. Это полезно в специальных случаях, если ресурсы ограничены и электронная почта содержит сообщения различного типа, требующие больших ресурсов.
  • Пользователь может создавать, удалять или переименовывать почтовый ящик почтового сервера.
  • Пользователь может создавать иерархию почтовых ящиков в папке для накопления электронной почты.

Почта на основе WEB

Услуги электронной почты сегодня могут быть обеспечены для пользователей WEB-сайтов (Yahoo,Yandex и.т. д).

Идея такой связи проста: передача письма проходит с помощью протокола HTTP (см. следующие лекции). Передача сообщения от передающего сервера к входящему почтовому серверу проходит с помощью протокола SMTP . В конечном итоге, сообщение от входящего сервера (он же WEB- сервер ) достигает сервера пользователя Б, используя протокол HTTP . Если пользователь Б хочет получить это сообщение, он посылает запрос на свой WEB-сайт (например, YANDEX). WEB-сайт высылает форму, которая содержит запрос логина (зарегистрированного имени пользователя) и пароля, затем передает сообщение на компьютер пользователя Б в формате HTML .

Краткие итоги

  • Протокол, который поддерживает в сети TCP/IP электронную почту, называется Simple Mail Transfer Protocol (SMTP) - простой протокол почтовой передачи.
  • Клиент и сервер SMTP требуют установки специального программного обеспечения – агента пользователя ( USER Agent - UA) и агента передачи почты (Mail Transfer Agent – MTA ).
  • UA подготавливает сообщение, создает конверт и вкладывает сообщение в конверт.
  • Почтовый адрес содержит две части: локальный адрес (пользовательский почтовый ящик) и доменное имя. Форма localname@domainename.
  • Почтовый шлюз преобразует почтовый формат.
  • SMTP-сообщение может быть задержано на стороне отправителя и на стороне получателя или на промежуточных серверах.
  • Псевдоним позволяет одному пользователю иметь много электронных адресов или многим адресам пользователя иметь групповой доступ к одному и тому же адресу.
  • MTA преобразует почту при прохождении через Интернет.
  • Почта отправителя в общем случае использует UNIX для построения MTA .
  • SMTP использует команды и отклики, чтобы передавать сообщения между MTA клиента и MTA сервера.
  • Шаги для передачи почтовых сообщений:
  • Многоцелевое расширение почты через Интернет ( Multipurpose Internet Mail Extension – MIME) – это расширение SMTP, которое позволяет передачи мультимедийных сообщений (текст, аудио, неподвижное изображение, видео и т. д.).
  • Почтовый протокол ( Post Office Protocol , version 3 - POP3 ) и протокол доступа к почте в Интернете, версия 4 ( Internet Mail Access Protocol - IMAP4) используют с помощью почты сервера для соединения от SMTP к приемнику и удержания почты в хосте.

Задачи и упражнения

  1. Приведите пример ситуации, в которой расширитель от "одного ко многим" мог бы быть полезен. Повторите то же самое для расширителя от "многих к одному".
  2. Нужны ли сразу две команды HELLO и FROM TO? Обоснуйте ответ "да" или "нет".
  3. Почему нужно установить соединение для передачи письма, если TCP уже установил соединение?
  4. Покажите установление соединения от [email protected] к [email protected] .
  5. Покажите фазу передачи сообщения от [email protected] к [email protected] . Сообщение - "Будьте здоровы".
  6. Покажите фазу завершения соединения от [email protected] к [email protected] .
  7. Пользователь [email protected] посылает сообщение к пользователю к [email protected] , который пересылает его к [email protected] . Покажите SMTP-команды и отклики.
  8. Пользователь [email protected] посылает сообщение к пользователю к [email protected] , который отвечает ему. Покажите SMTP-команды и отклики.
  9. Если с помощью SMTP посылается сообщение из одной строки, сколько строк займут команды и отклики?
  10. Передатчик посылает неформатированный текст. Покажите заголовок MIME.
  11. Передатчик посылает JPEG-сообщение. Покажите заголовок MIME.
  12. Сообщение имеет 1000 байт в коде (не-ASCII), закодировано с помощью Base 64 . Сколько байт в кодированном сообщении? Сколько избыточных байт? Каково отношение избыточных байт к общему числу байт сообщения?
  13. Сообщение 1000 байт закодировано приспособленным к печати кодом. Сообщение содержит 90 процентов ASCII и 10 процентов не-ASCII-символов. Сколько байт в кодированном сообщении? Сколько избыточных байт? Каково отношение избыточных байт к общему числу байт сообщения?
  14. Сравните результаты упражнений12 и 13. Как увеличится эффективность, если сообщение содержит ASCII и не-ASCII-символы?
  15. Закодируйте следующее сообщение в Base 64 :

    0101 0111 0000 1111 1111 0000 1010 1111 01111 0001 0101 0100.

Дополнительный материал для прохождения тестирования к лекции, Вы можете скачать .

SMTP (англ. Simple Mail Transfer Protocol - простой протокол передачи почты) - это широко используемый сетевой протокол, предназначенный для передачи электронной почты в сетях TCP/IP.

SMTP впервые был описан в RFC 821 (1982 год); последнее обновление в RFC 5321 (2008) включает масштабируемое расширение - ESMTP (англ. Extended SMTP). В настоящее время под «протоколом SMTP», как правило, подразумевают и его расширения. Протокол SMTP предназначен для передачи исходящей почты с использованием порта TCP 25.

В то время, как электронные почтовые серверы и другие агенты пересылки сообщений используют SMTP для отправки и получения почтовых сообщений, работающие на пользовательском уровне клиентские почтовые приложения обычно используют SMTP только для отправки сообщений на почтовый сервер для ретрансляции. Для получения сообщений клиентские приложения обычно используют либо POP (англ. Post Office Protocol - протокол почтового отделения), либо IMAP (англ. Internet Message Access Protocol), либо проприетарные протоколы (такие как Microsoft Exchange и Lotus Notes/Domino) для доступа к учетной записи своего почтового ящика на сервере.

POP3

POP3 (англ. Post Office Protocol Version 3 - протокол почтового отделения, версия 3) - стандартный Интернет-протокол прикладного уровня, используемый клиентами электронной почты для получения почты с удаленного сервера по TCP/IP-соединению.

Стандартный порт РОP3 - 110.

POP и IMAP (Internet Message Access Protocol) - наиболее распространенные Интернет-протоколы для извлечения почты. Практически все современные клиенты и серверы электронной почты поддерживают оба стандарта. Протокол POP был разработан в нескольких версиях, нынешним стандартом является третья версия (POP3). Большинство поставщиков услуг электронной почты (такие как Hotmail, Gmail и Yahoo! Mail) также поддерживают IMAP и POP3. Предыдущие версии протокола (POP, POP2) устарели.

Альтернативным протоколом для сбора сообщений с почтового сервера является IMAP.

IMAP

IMAP (англ. Internet Message Access Protocol) - протокол прикладного уровня для доступа к электронной почте.

Базируется на транспортном протоколе TCP и использует порт 143.

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

Наибольший интерес для пользователя представляет прикладной информационный уровень, т.к. пользователь непосредственно работает с объектами, относящимися именно к этому уровню.

Существующие на настоящий момент прикладные ресурсы Internet и соответствующие им протоколы можно свести в следующую таблицу (Таблица 1.3).

Таблица 1.3

В настоящее время e-mail и WWW почти вытеснили остальные сервисы, так что, например, Gopher и WAIS используются очень редко, а FTP постепенно ассимилируется Web’ом.

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

Электронная почта

Это один из двух наиболее распространенных в настоящее время прикладных ресурсов.

Электронная почта – это прикладной ресурс Internet, имеющий дело с данными в виде прикладных пакетов и работающий в рамках почтовых протоколов (например, ESMTP/POP3).

Электронная почта предназначена для передачи информации от одного пользователя сети к другому. Этим она отличается от большинства других сервисов. Если главная задача других сервисов - запросить и получить информацию, то электронная почта позволяет эту информацию переслать и записать на компьютер другого пользователя.

Как и любой другой прикладной ресурс, электронная почта использует системный уровень, т.е. TCP/IP протокол. На системном уровне процесс отправки/получения сообщения сводится к созданию набора датаграмм, передаче их через Internet и последующей сборке.



На прикладном уровне действуют почтовые протоколы.

SMTP - Simple Mail Transfer Protocol,

ESMTP - Extended Simple Mail Transfer Protocol и

POP 3 - Post Office Protocol.

Кроме программы Outlook Express существует несколько распространенных программ-клиентов для работы с электронной почтой. Это, например:

Почтовый блок программы Netscape Navigator.

Каждая из этих программ делает практически то же самое, что и Outlook Express и обладает таким же интерфейсом.

Структура адреса электронной почты

Для того, чтобы абоненты могли обмениваться сообщениями через электронную почту, у каждого из них должен быть уникальный адрес. Структура адреса электронной почты (e-mail – адреса) имеет вид, приведенный в Таблице 1.4.

Таблица 1.4.

К большинству других прикладных ресурсов (к Web-страницам, к файлам на FTP-серверах и др.) можно обратиться по универсальному URL-адресу (о нем будет сказано позже). Электронная почта с точки зрения структуры адресов стоит особняком, e-mail–адреса отличаются от URL-адресов. Это связано с историческими причинами. Адреса e-mail появились значительно раньше URL-адресов.

Электронная почта через Web

Существует возможность использовать электронную почту в рамках прикладного ресурса World Wide Web по протоколу НТТР.

В Internet есть Web-серверы, работающие как почтовые серверы – Web / Mail серверы . На таких серверах формируются Web-страницы, выполняющие функции простых почтовых программ-клиентов. Загружая такую страницу, пользователь, по сути дела, загружает программу-клиент электронной почты, аналогичную программе Outlook Express, хотя и обладающую более скромными возможностями.

Если Пользователь 1 зарегистрировал почтовый ящик на Web/Mail сервере, а Пользователь 2 работает с электронной почтой стандартным образом – через Почтовый сервер 2 и протоколы POP 3 и ESMTP, то общение между такими пользователями происходит следующим образом (Рис. 1.8).



При отправке сообщения от Пользователя 1 Пользователю 2 сообщение сначала пересылается на Web / Mail сервер по протоколу HTTP. Затем Web / Mail сервер осуществляет его отправку Почтовому серверу 2 по протоколу ESMTP. После получения сообщения Почтовым сервером 2 Пользователь 2 получает доступ к нему по протоколу POP 3. При отправке сообщения от Пользователя 2 Пользователю 1 реализуется обратный процесс: сначала сообщение отправляется Web / Mail серверу по протоколам POP 3 и ESMTP, после чего Пользователь 1 получает доступ к сообщению по протоколу HTTP.

Регистрация почтового ящика на Web / Mail серверах, как правило, бесплатна. Для того, чтобы зарегистрировать свой почтовый ящик в такой электронной почте, необходимо зайти на такой сервер по его адресу.

Главное преимущество Web-почты заключается в том, что обычная электронная почта доступна только с одного личного компьютера, подключенного к почтовому серверу провайдера через POP 3 - протокол. Web-почта доступна с любого компьютера, подключенного к Internet.

Среди недостатков Web-почты по сравнению с обычной почтой можно выделить следующие 3 недостатка.

1. Более скромный сервис, чем в специализированных почтовых клиентах типа Outlook Express.

2. Ограниченный объем почтового ящика, выделяемый каждому пользователю.

3. Менее надежная защита информации, чем на сервере провайдера или в локальной сети.

Тем не менее, Web-почта развивается весьма бурными темпами, и сейчас уровень сервиса и объем предоставляемых ресурсов у крупнейших поставщиков услуг Web-почты (например, у mail.ru) не уступают обычной почте. Уровень защиты Web-почты у таких поставщиков (включая антивирусную, антиспамовую и антихакерскую защиты) также неуклонно растет. Кроме того, развиваются технологии доступа к Web-почте с помощью почтовых программ-клиентов типа Outlook Express. Вполне возможно, что в ближайшем будущем Web-почта вытеснит традиционную электронную почту.

Ресурс WWW

Подавляющее число пользователей Internet работает с прикладным ресурсом World Wide Web (или сокращенно WWW), который по-русски называют Всемирной паутиной.

Ресурс WWW был разработан в Центре ядерных исследований в Женеве группой физиков. В его основу была положена технология обмена гипертекстом, разработанная английским физиком Тимом Бернером Ли, который за изобретение этой технологии был удостоен в 2004 г. премии "Выдающиеся достижения тысячелетия" (Millennium Technology Prize). Тима Бернера Ли иногда по ошибке называют создателем сети Internet. На самом деле он изобретатель одного из прикладных ресурсов сети Internet – Всемирной Паутины WWW. Впервые этот ресурс появился в Internet в 1990 г., а к концу 1994 г. практически завоевал Сеть, вытеснив все основные, использовавшиеся до этого, ресурсы.

Ресурс WWW основан на протоколе прикладного уровня HTTP - Hyper Text Transfer Protocol и на языке HTML - Hyper Text Markup Language. В его основе также лежат такие понятия, как: HTML-документ, гипертекст, Web-страница, сайт.

Рассмотрим основные определения и элементы ресурса WWW.

Гипертекстовый документ или HTML-документ – это файл, состоящий из фрагментов текста и элементов языка HTML.

Можно также сказать, что такой документ состоит из гипертекста. HTML -документ хранится в виде файла с расширением html или htm.

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

Web-страница – это HTML документ, который расположен вместе со своими внутренними ссылками на сервере Internet. Он может передаваться другим узлам Internet по протоколу HTTP.

Сайт – это блок из Web‑страниц, связанных между собой гиперссылками, содержащих информацию на определенную тему и принадлежащих одному владельцу.

Броузер – это программа-клиент прикладного уровня, основным назначением которой является запрос, получение и отображение Web-страниц. Примером программы-броузера является Internet Explorer.

World Wide Web (WWW ) – это прикладной ресурс Internet, работающий по протоколу HTTP. Данные в WWW представляются в виде совокупности Web-страниц и сайтов, связанных между собой гиперссылками.

Работа ресурса WWW осуществляется следующим образом.

Если загрузить какую-нибудь Web‑страницу в броузер, например в Internet Explorer, то отображение этой страницы появится на экране в виде текста и рисунков, причем некоторые фрагменты текста и/или элементы изображений будут гиперссылками - щелчок по ним приведет к загрузке другой страницы, которая также будет содержать свои гиперссылки и т.д. Таким образом, различные Web-страницы оказываются связанными между собой гиперссылками. Любая Web-страница может указывать на любую другую, независимо от того, где она находится - в той же сети, в другом городе или в другой стране. Из-за этого структура гипертекстовых связей между Web-страницами оказывается весьма хаотичной и запутанной (Рис. 1.9).


Рис. 1.9. Структура гипертекстовых связей между Web-страницами

Изображенная на Рис. 1.9 структура ресурса WWW очень похожа на структуру самой сети Internet (Рис. 1.2). Сеть Internet состоит из миллионов связанных между собой компьютеров, причем связи эти весьма причудливы и хаотичны. Точно также WWW состоит из весьма хаотично связанных Web‑страниц. Однако, между этими структурами есть существенная разница. Сеть Internet состоит из компьютеров и других устройств, соединенных физическими связями (телефонными линиями, кабелями, эфирной связью и т.д.), а WWW состоит из Web-страниц, связанных логическими связями (гиперссылками). Структура логических связей не имеет никакого отношения к физической структуре сети.

Несмотря на указанную разницу, топологическое сходство между логической структурой WWW и физической структурой сети Internet обеспечивает очень органичное встраивание ресурса WWW в Internet. Этим, по-видимому, и объясняется такое бурное развитие ресурса WWW и ассимиляция им всех остальных ресурсов.

Структура URL - адреса

Для вызова элемента прикладного ресурса нужно обратиться к тому серверу, на котором этот элемент расположен. Сервер является узлом Internet, и к нему можно обратиться по доменному имени или IP-адресу. Однако указать только адрес сервера недостаточно. Предположим, например, что необходимо загрузить Web-страницу. В этом случае, кроме адреса Web-сервера необходимо указать, что это именно Web-страница, а не, например, файл, загружаемый по FTP протоколу. Кроме того, нужно указать, какую именно страницу из десятков или сотен тысяч Web-страниц, размещенных на этом сервере, необходимо загрузить. Возможно, также, что загрузить эту Web-страницу нужно в каком-либо особом режиме (например, в режиме быстрого просмотра, без графики, или в защищенном режиме, без активных компонентов). Это также необходимо указать.

Таким образом, для того, чтобы обратиться к элементу прикладного ресурса, необходимо указать адрес этого элемента, который может содержать большое количество разнообразной информации.

В Internet в основном используется универсальный формат адресов прикладных ресурсов, так называемый URL – Uniform Resource Locator.

Если пользователь знает URL-адрес информации, он может запросить необходимые данные у какой-либо сервисной системы. Обычно это WWW, но может быть и FTP, Gopher, WAIS и т.д.

Структура URL-адреса показана в следующей таблице (Таблица 1.5).

Не все компоненты URL-адреса являются обязательными, некоторые могут не задаваться - в этом случае используются значения таких компонент, установленные по умолчанию.

Таблица 1.5.

Первый компонент – протокол – указывает на прикладной ресурс, которому принадлежит запрашиваемый элемент. Например, протокол http указывает на ресурс WWW, протокол ftp указывает на ресурс FTP и т.д. Возможно также специальное значение file, которое соответствует файлу на том же локальном компьютере, или в той же локальной сети, где работает программа-клиент (а, следовательно, и пользователь, работающий с этой программой). Протокол, вообще говоря, должен быть задан в URL-адресе, однако, некоторые программы-клиенты (например, Internet Explorer) допускают отсутствие этого компонента, считая, что по умолчанию задан протокол http. Первый компонент URL-адреса отделяется от следующего компонента комбинацией из трех знаков - двоеточия и двух слешей:// .

Второй компонент URL-адреса задает узел Internet и должен присутствовать обязательно, если не задан протокол file. Если же задан протокол file, то компонент "узел" должен обязательно отсутствовать, т.к. протоколом уже определено, что узлом является текущий локальный компьютер.

Третий компонент – адрес порта - существенен, если на сервере есть несколько аппаратных портов (входных каналов) и необходимо указать через какой из них информация должна водиться. В настоящее время входной поток разделяется обычно не по аппаратным, а по программным каналам. В этом случае адрес порта просто дублирует содержащееся в первом элементе URL-адреса (в протоколе) указание на прикладную программу-сервер. Так что, как правило, этот компонент URL-адреса необязателен. Между адресом узла и адресом порта ставится двоеточие: .

Четвертый компонент – командная строка – указывает файл и какие-либо дополнительные параметры. Этот компонент является необязательным. Если в запросе, поступившем от программы-клиента, командная строка отсутствует, то программа-сервер отправляет файл, ссылка на который установлена по умолчанию. У Web-серверов это обычно файл с именем index.html, называемый заглавной страницей и содержащий каталог всей информации, находящейся на сервере.

Возможность опустить командную строку в URL-адресе часто позволяет обратиться к ресурсам, которые были перемещены или переименованы. Так, если вызывается URL-адрес несуществующего файла на сервере, то всегда можно сократить URL-адрес, убрав командную строку, и таким образом обратиться к заглавной странице сервера, а затем найти нужную информацию по каталогу.

Командная строка, как видно из таблицы, состоит из пути к файлу (полного имени файла) и параметров. Для разделения каталогов и подкаталогов (вложенных папок) используется слеш / , в отличие от аналогичной записи в OS Windows, где используется обратный слеш \ . Internet Explorer допускает любой из этих двух разделителей. Имя файла и параметры в командной строке разделяются знаком? . Для каждого параметра задается его имя и значение. Параметры отделяются друг от друга знаком & . Для присваивания параметру значения используется знак = . Если в параметре необходимо указать символы, код которых выходит за рамки основной кодовой таблицы ASCII, т.е. символы, коды которых не попадают в диапазон 32:127, то используется запись, состоящая из значка % и шестнадцатеричного значения кода символа.

Таким образом, в структуру URL-адреса могут входить 6 специальных символов: / , : , ? , & , = и % .

Примеры URL –адресов.

Http://www.ibm.com - обращение к заглавной странице сервера IBM.

Http://www.mfua.ru - обращение к заглавной странице сайта МФЮА.

Http://market.yandex.ru/search.xml?text=%EA%E8%E9&nl=0 - обращение к поисковой системе Яндекса для поиска товара "кий" ("EA", "E8" и "E9" - это шестнадцатеричные коды букв "к", "и", "й" соответственно.

Http://yandex.ru:8081 - то же, что и http://yandex.ru или http://yandex.ru/index.html.

Ftp://ftp.ipswitch.com/ipswitch/product_downloads - обращение к каталогу ftp-сервера.

Адрес электронной почты можно задать в формате URL, используя имя протокола mailto. В отличие от обычного формата URL-адреса двойной слеш после имени протокола не ставится. Запись выглядит следующим образом.

Mailto: Пользователь@почтовый сервер.

Компьютерные вирусы

Повышение ценности информации в современном мире, естественно, привело к появлению угрозы разрушения информации со стороны злоумышленников. Компьютерные данные могут быть:

1) рассекречены, т.е. доведены до сведения тех, кому они не были предназначены;

2) частично или полностью изменены вопреки желанию их владельца;

3) частично или полностью уничтожены, что сделает невозможной их дальнейшую обработку.

К проблеме третьего типа относится также нарушение идентификации пользователя путём удаления файлов, утраты или подмены пароля, преднамеренного разрушения жёсткого диска.

Иногда опасности для сохранения компьютерных данных связаны со случайными сбоями и нарушениями режима работы технических средств. Их называют случайными угрозами .

Нарушения функционирования компьютерных систем, связанные с преднамеренными действиями злоумышленников, называются умышленными угрозами .

Для реализации умышленных угроз могут применяться самые разнообразные средства: агентурная работа; визуальное наблюдение; перехват электромагнитного излучения, возникающего при работе; подслушивание телефонных переговоров; радиозакладки; физическое разрушение аппаратуры; несанкционированный доступ к информации.

Среди угроз случайного характера можно выделить:

1) ошибки операторов;

2) потери информации, вызванные её неправильным хранением;

3) случайные ошибки, повлёкшие уничтожение или изменение данных;

4) сбои и отказы аппаратных средств;

5) нарушения электропитания;

6) сбои в работе программных средств;

7) случайное заражение системы компьютерными вирусами.

Компьютерные вирусы существуют в самых разных видах, но единой классификации для них пока не создано.

Устоялось определение, согласно которому вирусом называют вредоносные программы, способные к саморазмножению , т. е. к созданию собственной копии и к внедрению её в тело файла пользователя или в системную область диска.

Программы или отдельные модули программ, которые могут нарушать целостность, доступность или конфиденциальность данных, называются программными закладками . Программные закладки делятся на программы-шпионы (Spy Ware) и логические бомбы . Программы-шпионы выполняют вредоносные функции до тех пор, пока присутствуют в компьютере. К ним относятся также программы Ad Ware, включающие дополнительный код и выводящие на экран «всплывающие окна» с рекламной информацией. Иногда они отслеживают личные данные пользователя (адреса электронной почты, выбор Web-сайтов, возраст и т.п.) для передачи в источник распространения Ad Ware.

Разновидность вируса, которая распространяется вместе с вложением к электронным письмам, называется почтовым червем (mail worms) . Распространяются эти вирусы по адресам рассылки, указанным в адресной книге пользователя. Некоторые черви способны генерировать текст отправляемого письма и наименование темы, а вирус прикрепляется к письму как вложение. За редким исключением черви не уничтожают локальные данные.

Одна из возможных классификаций вирусов включает следующие признаки для деления на классы.

  1. Среда обитания.
  2. Способ заражения.
  3. Разрушающие способности.
  4. Характеристики алгоритма вирусной программы.

По среде обитания вирусы делятся на загрузочные вирусы, файловые и сетевые.

Загрузочные вирусы инфицируют загрузочный (boot) сектор диска или сектор, в котором расположен системный загрузчик винчестера.

Файловые вирусы заражают файлы с расширением.com, .bat, .exe. Такие вирусы можно писать на языке Visual Basic Application, или в виде скриптов, входящих в HTML страницы (VBScript, Java Script). Их называют сценарными или скриптовыми.

Сетевые вирусы распространяются по компьютерным сетям и могут принудительно выполнять свой код на любом удалённом компьютере.

Возможны комбинированные варианты вирусов.

По способу заражения вирусы делятся на резидентные вирусы и нерезидентные.

Резидентный вирус инфицирует компьютер и вставляет в оперативную память резидентную часть, которая заражает те объекты, к которым обращается операционная система. Резидентные вирусы активны до выключения или перезагрузки компьютера. Макросы относятся к резидентным вирусам, так как присутствуют в памяти компьютера вместе с работающим приложением.

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

По разрушающим способностям вирусы делятся на безвредные вирусы, неопасные, опасные и очень опасные.

Безвредные вирусы проявляются через уменьшение свободной памяти на диске.

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

Опасные вирусы вызывают серьёзные нарушения в работе компьютера, уничтожают программы, данные, могут разрушить BIOS.

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

Алгоритмы работы программы вируса можно разделить на следующие разновидности:

1) с использованием стеллс-алгоритмов;

2) с включением самошифрования и полиморфизма;

3) с применением нестандартных приёмов.

Программы-шпионы внедряются через файлы аналогично вирусам.

Часто они сопровождают дистрибутивы полезных программ и устанавливаются на компьютер с соблюдением всех существующих правил. Антишпионские базы данных содержат сведения о более чем 300 Spy Ware.

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

Для защиты от вредоносных программ создаются программы контроля целостности данных, антивирусные программы, средства контроля и разграничения доступа, средства сетевой защиты, криптографической защиты, программы для работы с жёсткими дисками и сменными носителями, имеющие защитные функции.

За время борьбы с вредоносными программами создано большое количество антивирусных средств. Они значительно различаются и по цене, и по выполняемым функциям. Рассмотрим наиболее интересные с точки зрения индивидуального пользователя антивирусные программы. К наиболее эффективным антивирусным пакетам можно отнести Doctor Web (компания «Диалог-Наука»), антивирус Касперского AVP («Лаборатория Касперского»), Norton AntiVirus (корпорация Symantec), McAfeeVirus Scan (компания Network Associates), Panda Antivirus.

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

Антивирусные сканеры просматривают оперативную память, загрузочные секторы дисков и файлы, разыскивая уникальные программные коды вирусов (вирусные маски). Возможности этих алгоритмов ограничены тем, что они выявляют только известные коды вирусов и не способны бороться с полиморфными вирусами, которые изменяют свой код при копировании.

Мониторы имеют тот же образ действия, что и сканеры. Работают как резидентные программы. Они позволяют избежать запуска заражённых программ и предотвратить распространение вируса. Обычно мониторы устанавливаются в процессе инсталляции антивирусного пакета. Они лечат файл, перемещают заражённые файлы в «карантин» или удаляют согласно начальным настройкам. Мониторы специализируются как файловые, мониторы почтовых программ, мониторы специальных приложений.

Ревизоры изменений выполняют контрольные вычисления, называемые контрольными свёртками (CRC), для файлов, системных секторов и системного реестра. Эти значения сохраняются в базе данных и сравниваются при следующем запуске программы с текущими значениями. Лечение основано на представлении об исходном файле. Любые отклонения от исходного файла выявляются при проверке. Ревизоры не определяют вирусы в новых файлах до определения CRC и не выявляют вирусы в момент появления до заражения файлов компьютера.

Иммунизаторы или вакцины делятся на информирующие вакцины и блокирующие. Информирующие вакцины записываются в конце файла и проверяют при запуске, не изменился ли файл. Вирусы-невидимки они не выявляют. Блокирующие иммунизаторы добавляют в файл метки, определённые для известных вирусов. При появлении вируса файл не заражается, т.к. вирус считает его заражённым. Большого распространения иммунизаторы не получили.

Поведенческие блокираторы выполняют эвристический анализ программ на основе базы знаний. Их можно применять как против вирусов, так и против программ-шпионов. Удаление вирусов они не выполняют и должны сопровождаться антивирусным сканированием для уничтожения выявленных вирусов.

Работа в сети и интенсивное использование Internet-а повышают опасность заражения компьютера. Среди средств сетевой защиты наибольшее внимание уделяется предупредительным средствам, т.е. препятствующим инфицированию компьютера. Они делятся на межсетевые экраны, системы обнаружения атак, сетевые сканеры, «антиспамеры».

Межсетевые экраны или брандмауэры (fire wall ) представляют собой аппаратно-программную систему, разбивающую вычислительную сеть на части и устанавливающую жёсткие правила прохождения информационных пакетов из одной части в другую.

В состав Windows XP входит персональный брандмауэр ICF (Internet Connection Firewall), предназначенный для защиты отдельного компьютера. Он позволяет настроить параметры защиты для каждого сетевого подключения в отдельности. Для включения функционирования ICF необходимо в меню Пуск выбрать через пункт Настройка/Сетевые подключения нужное сетевое подключение, щёлкнуть на его имени правой кнопкой мыши. В контекстном меню подключения выбрать пункт Свойства . Перейти на вкладку Дополнительно и включить опцию «Защитить моё подключение к Internet-у».

Включённый межсетевой экран проверяет пакеты на соответствие записям в Nat-таблице потоков (Network Address Translation). Пакет пропускается, если задано разрешение. Список разрешений можно открыть через окно настроек на вкладке Параметры . Затем необходимо нажать на кнопку ICMP. В других персональных брандмауэрах можно найти и другие возможности. Например, брандмауэр Agnitum Outpost Firewall (Agnitum Ltd.) контролирует входящий и исходящий трафики на основе правил, заданных заранее или установленных в процессе обучения. Он способен работать в режиме невидимки (Stealth), блокировать загружаемые Web-страницы по HTML коду, блокировать загружаемые Web-сайты по адресам, блокировать активные элементы Web-страниц, такие как сценарии, Java-апплеты, элементы ActivX, запоминать серверы DNS для ускорения запуска Web-страниц при последующем подключении.

Системы обнаружения атак (IDE – Intrusion Detection System ) обнаруживают некорректную деятельность, выраженную в увеличении интенсивности поступления пакетов данных, поступающих извне или циркулирующих в локальной сети. Основная цель таких атак обычно скрыта. Это может быть исчерпание ресурсов, приводящее к тому, что атакуемый компьютер перестаёт обслуживать обычные запросы (DoS – Denied of Service), поиск незащищённых точек входа в систему, анализ сетевого трафика и т.п.

Для обнаружения атак выявляют аномальное поведение (anomaly detection) или злоупотребления (misuse detection), которые определяют в виде шаблонов по описанию в сетевом трафике или журнале регистрации.

В составе брандмауэров присутствуют модули, выполняющие обнаружение атак. Например, в Agnitum Outpost Firewall функционирует модуль Детектор атак, который обнаруживает атаки. Существует, кроме того, ряд специализированных пакетов.

Сетевые сканеры просматривают узлы в сети и формируют рекомендации по изменению параметров защиты. При обнаружении незарегистрированных устройств сообщают администратору сети.

«Антиспамеры » фильтруют сообщения, поступающие по электронной почте, для отсечения писем, исходящих с серверов, замеченных в распространении спама.

Тема 2. Работа с браузером

Начало работы в Internet

После установления связи пользовательского компьютера с сетью Internet любым из перечисленных выше способов, для путешествия по Internet необходимо запустить специальную клиентскую программу-проводник. Эти программы называют броузерами (от англ. browse – листать, просматривать) или обозревателями. Наиболее широко распространены броузеры Netscape Communicator , Microsoft Internet Explorer , Opera , Firefox , Mozilla . Эти программы разработаны фирмами-конкурентами, но имеют много общего.

Броузеры позволяют просматривать гипертексты, получаемые из Internet по указанным пользователем адресам. Гипертекст, как было сказано ранее, – это текст, содержащий гиперссылки. Попадая на гиперссылку, указатель мыши превращается в изображение кисти руки человека с вытянутым указательным пальцем.

Гипертекстовое содержимое WWW создается с помощью языка разметки гипертекстовых документов – HTML (HyperText Markup Language).

Окно броузера содержит ряд кнопок, приведённых в Таблице 2.1. Пример окна броузера показан на Рис. 2.2.

Полезную информацию при работе с броузером пользователь может получить из строки состояния, которая находится в нижней части окна. Профессиональная работа с Netscape Communicator и Internet Explorer обязательно включает в себя умение разбираться в надписях, появляющихся на этой строке. В процессе работы с Интернетом в строку состояния периодически выводятся сообщения об адресах источников информации, режиме ожидания, готовности запрошенного документа и ряд других полезных сведений.

Таблица 2.1.

Кнопка Название, назначение
1 «Назад » и «Впере д» – позволяют перемещаться по просмотренным документам.
2 «Обновить » – дает возможность пользователю повторить попытку получения документа.
3 «Домой » – возвращает пользователя на страницу браузера, зарегистрированную как стартовую при загрузке браузера.
4 «Поиск » - открывает стандартное окно в Windows для поиска текстовой строки в текущем документе.
5 «Печать » – позволяет напечатать текущую страницу на принтере.
6 «Избранное » – позволяет перейти к создаваемому пользователем списку адресов.
7 «Журнал » – дает возможность просмотреть список ссылок на те страницы, которые были просмотрены ранее и быстро перейти на любую страницу.
8 «Останов » (или клавиша ESC) – прерывает загрузку документа.

Для изменения начальной страницы необходимо найти страницу, которая станет начальной. Затем вызвать последовательно Меню à Сервис à Свойства обозревателя . В окне Свойства обозревателя щелкнуть по вкладке Общие .В разделе Домашняя страница щелкнуть по кнопке С текущей . Адрес, который был в окне, изменится на адрес отображаемой страницы. Затем нажать кнопку ОК .

Меню любого Web-броузера и, в частности, Internet Explorer-а содержит раздел Справка . При вызове справки Internet Explorer-а появляется диалоговая панель, разделённая на две части. В левой части предусмотрены 3 кнопки: Содержание , Указатель , Поиск . После нажатия на кнопку Содержание появляется список, в котором перечислены все разделы справочного файла.

В правой части диалоговой панели отображается содержание раздела справки с подробными пояснениями и необходимыми гиперссылками.

После нажатия на кнопку Указатель в левой части диалоговой панели появляется перечень основных действий, для которых в справке предусмотрены пояснения.

После нажатия на кнопку Поиск в левой части диалоговой панели появляется окно для ввода ключевых слов. После ввода ключевых слов можно нажать на кнопку Разделы , и в нижнем окне левой части диалоговой панели появляется список разделов Справки , в которых встречаются указанные ключевые слова. После выбора раздела и нажатия на кнопку Показать в правой части диалоговой панели появляется содержание выбранного раздела справки.

При необходимости в разделе Меню Вид можно изменить параметры просмотра Web-страницы. При искажении текста необходимо выбрать строку Кодировка . Появится перечень возможных вариантов кодировок. Для русскоязычных страниц выбирается Кириллица (Windows) , для Web-страниц, созданных на других языках, выбираются другие варианты. В строке Размер шрифта можно установить размер шрифта на странице от Самый крупный до Самый мелкий . Строка Во весь экран позволяет убрать панели инструментов и увеличить размер изображения. Строка Просмотр HTML-кода демонстрирует текст страницы в исходном виде (на языке HTML).

Объем Web-страницы (в байтах) определяется в первую очередь графическими и другими мультимедийными элементами. Если страница содержит много таких элементов, то на ее загрузку будет тратиться много времени и расходоваться большой объем трафика. Для уменьшения времени загрузки и экономии объема трафика можно отказаться от загрузки графических элементов. Для этого необходимо в Меню выбрать Свойства обозревателя à Дополнительно . В окне Параметры убрать флажок Отображать рисунки и нажать OK . Аналогично можно отключить загрузку звуковых элементов (убрать флажок Воспроизводить звуки на Веб-страницах ) и видеоклипов (убрать флажок Воспроизводить видео на Веб-страницах ).

Протоколы Интернет прикладного уровня

Самый верхний уровень в иерархии протоколов Интернет занимают следующие протоколы прикладного уровня:

  • DNS - распределенная система доменных имен, которая по запросу, содержащему доменное имя хоста сообщает IP адрес;
  • HTTP - протокол передачи гипертекста в Интернет;
  • HTTPS - расширение протокола HTTP, поддерживающее шифрование;
  • FTP (File Transfer Protocol - RFC 959) - протокол, предназначенный для передачи файлов в компьютерных сетях;
  • Telnet (TELecommunication NETwork - RFC 854) - сетевой протокол для реализации текстового интерфейса по сети;
  • SSH (Secure Shell - RFC 4251) - протокол прикладного, позволяющий производить удаленное управление операционной системой и передачу файлов. В отличие от Telnet шифрует весь трафик;
  • POP3 – протокол почтового клиента, который используется почтовым клиентом для получения сообщений электронной почты с сервера;
  • IMAP - протокол доступа к электронной почте в Интернет;
  • SMTP – протокол, который используется для отправки почты от пользователей к серверам и между серверами для дальнейшей пересылки к получателю;
  • LDAP - протокол для доступа к службе каталогов X.500, является широко используемым стандартом доступа к службам каталогов;
  • XMPP (Jabber) - основанный на XML расширяемый протокол для мгновенного обмена сообщениями в почти реальном времени;
  • SNMP - базовый протокол управления сети Internet.

Рассмотрим более подробно некоторые из этих протоколов.

FTP позволяет подключаться к серверам FTP, просматривать содержимое каталогов и загружать файлы с сервера или на сервер; кроме того, возможен режим передачи файлов между серверам; FTP позволяет обмениваться файлами и выполнять операции над ними через TCP-сети. Данный протокол работает независимо от операционных систем. Исторически протокол FTP предложил открытую функциональность, обеспечивая прозрачный перенос файлов с одного компьютера на другой по сети. Это не так тривиально, как может показаться, так как у разнотипных компьютеров могут различаться размеры слов, биты в словах могут храниться в неодинаковом порядке или использоваться разные форматы слов.

  1. Telnet

Название "telnet" имеют также некоторые утилиты, реализующие клиентскую часть протокола. Протокол telnet работает в соответствии с принципами архитектуры "клиент-сервер" и обеспечивает эмуляцию алфавитно-цифрового терминала, ограничивая пользователя режимом командной строки. Приложение telnet предоставило язык для общения терминалов с удаленными компьютерами. Когда появилась сеть ARPANET, для каждой компьютерной системы требовались собственные терминалы. Приложение telnet стало общим знаменателем для терминалов. Достаточно было написать для каждого компьютера программное обеспечение, поддерживающее "терминал telnet ", чтобы один терминал мог взаимодействовать с компьютерами всех типов.

Сходен по функциональности с протоколами telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. SSH-клиенты и SSH-серверы имеются для большинства операционных систем.

  1. Почтовые протоколы .

Хотя telnet и FTP были (и остаются) полезными, первым приложением, совершившим переворот в сознании пользователей компьютеров сети ARPANET, стала электронная почта. До сети ARPANET существовали системы электронной почты, но все они были однокомпьютерными системами. В 1972 г. Рэй Томлинсон (Ray Tomlinson) из компании BBN написал первый пакет, предоставляющий распределенные почтовые услуги в компьютерной сети из нескольких компьютеров. Уже к 1973 г. исследования управления ARPA показали, что три четверти всего трафика сети ARPANET составляла электронная почта. Польза электронной почты оказалась столь велика, что все больше пользователей стремилось подключиться к сети ARPANET, в результате чего возрастала потребность в добавлении новых узлов и использовании высокоскоростных линий. Таким образом, появилась тенденция, сохраняющаяся и по сей день.

  • POP3 (Post Office Protocol Version 3 - RFC 1939) - протокол, который используется почтовым клиентом для получения сообщений электронной почты с почтового сервера;
  • IMAP (Internet Message Access Protocol - RFC 3501) - протокол доступа к электронной почте. Аналогичен POP3, однако предоставляет пользователю богатые возможности для работы с почтовыми ящиками, находящимися на центральном сервере. Электронными письмами можно манипулировать с компьютера пользователя (клиента) без необходимости постоянной пересылки с сервера и обратно файлов с полным содержанием писем.
  • SMTP (Simple Mail Transfer Protocol - RFC 2821) - протокол, предназначенный для передачи электронной почты. Используется для отправки почты от пользователей к серверам и между серверами для дальнейшей пересылки к получателю. Для приема почты почтовый клиент должен использовать протоколы POP3 или IMAP.

Базовым протоколом сети гипертекстовых ресурсов Веб является протокол HTTP. В его основу положено взаимодействие "клиент-сервер ", то есть предполагается, что:

  1. Потребитель-клиент инициировав соединение с поставщиком-сервером посылает ему запрос;
  2. Поставщик-сервер , получив запрос, производит необходимые действия и возвращает обратно клиенту ответ с результатом.

При этом возможны два способа организации работы компьютера-клиента:

  • Тонкий клиент - это компьютер-клиент, который переносит все задачи по обработке информации на сервер. Примером тонкого клиента может служить компьютер с браузером, использующийся для работы с веб-приложениями.
  • Толстый клиент , напротив, производит обработку информации независимо от сервера , использует последний в основном лишь для хранения данных.

Прежде чем перейти к конкретным клиент-серверным веб-технологиям, рассмотрим основные принципы и структуру базового протокола HTTP.

Протокол HTTP

HTTP (HyperText Transfer Protocol - RFC 1945, RFC 2616) - протокол прикладного уровня для передачи гипертекста.

Центральным объектом в HTTP является ресурс , на который указывает URI в запросе клиента. Обычно такими ресурсами являются хранящиеся на сервере файлы. Особенностью протокола HTTP является возможность указать в запросе и ответе способ представления одного и того же ресурса по различным параметрам: формату, кодировке, языку и т. д. Именно благодаря возможности указания способа кодирования сообщения клиент и сервер могут обмениваться двоичными данными, хотя изначально данный протокол предназначен для передачи символьной информации. На первый взгляд это может показаться излишней тратой ресурсов. Действительно, данные в символьном виде занимают больше памяти, сообщения создают дополнительную нагрузку на каналы связи, однако подобный формат имеет много преимуществ. Сообщения, передаваемые по сети, удобочитаемы, и, проанализировав полученные данные, системный администратор может легко найти ошибку и устранить ее. При необходимости роль одного из взаимодействующих приложений может выполнять человек, вручную вводя сообщения в требуемом формате.



В отличие от многих других протоколов, HTTP является протоколом без памяти. Это означает, что протокол не хранит информацию о предыдущих запросах клиентов и ответах сервера. Компоненты, использующие HTTP, могут самостоятельно осуществлять сохранение информации о состоянии, связанной с последними запросами и ответами. Например, клиентское веб-приложение, посылающее запросы, может отслеживать задержки ответов, а веб-сервер может хранить IP-адреса и заголовки запросов последних клиентов.

Все программное обеспечение для работы с протоколом HTTP разделяется на три основные категории:

  • Серверы - поставщики услуг хранения и обработки информации (обработка запросов).
  • Клиенты - конечные потребители услуг сервера (отправка запросов).
  • Прокси-серверы для поддержки работы транспортных служб.

Основными клиентами являются браузеры например: InternetExplorer, Opera, MozillaFirefox, NetscapeNavigator и другие. Наиболее популярными реализациями веб-серверов являются: InternetInformationServices (IIS), Apache, lighttpd, nginx. Наиболее известные реализации прокси-серверов: Squid, UserGate, Multiproxy, Naviscope.

"Классическая" схема HTTP-сеанса выглядит так.

  1. Установление TCP-соединения.
  2. Запрос клиента.
  3. Ответ сервера.
  4. Разрыв TCP-соединения.

Таким образом, клиент посылает серверу запрос, получает от него ответ, после чего взаимодействие прекращается. Обычно запрос клиента представляет собой требование передать HTML-документ или какой-нибудь другой ресурс, а ответ сервера содержит код этого ресурса.

В состав HTTP-запроса, передаваемого клиентом серверу, входят следующие компоненты.

  • Строка состояния (иногда для ее обозначения используют также термины строка-статус, или строка запроса).
  • Поля заголовка.
  • Пустая строка.
  • Тело запроса.

Строку состояния вместе с полями заголовка иногда называют также заголовком запроса .

Рис. 2.1. Структура запроса клиента.

Строка состояния имеет следующий формат:

метод_запроса URL_pecypca версия_протокола_НТТР

Рассмотрим компоненты строки состояния, при этом особое внимание уделим методам запроса.

Метод , указанный в строке состояния, определяет способ воздействия на ресурс, URL которого задан в той же строке. Метод может принимать значения GET, POST, HEAD, PUT, DELETE и т.д. Несмотря на обилие методов, для веб-программиста по-настоящему важны лишь два из них: GET и POST.

  • GET. Согласно формальному определению, метод GET предназначается для получения ресурса с указанным URL. Получив запрос GET, сервер должен прочитать указанный ресурс и включить код ресурса в состав ответа клиенту. Ресурс, URL которого передается в составе запроса, не обязательно должен представлять собой HTML-страницу, файл с изображением или другие данные. URL ресурса может указывать на исполняемый код программы, который, при соблюдении определенных условий, должен быть запущен на сервере. В этом случае клиенту возвращается не код программы, а данные, сгенерированные в процессе ее выполнения. Несмотря на то что, по определению, метод GET предназначен для получения информации, он может применяться и в других целях. Метод GET вполне подходит для передачи небольших фрагментов данных на сервер.
  • POST. Согласно тому же формальному определению, основное назначение метода POST - передача данных на сервер. Однако, подобно методу GET, метод POST может применяться по-разному и нередко используется для получения информации с сервера. Как и в случае с методом GET, URL, заданный в строке состояния, указывает на конкретный ресурс. Метод POST также может использоваться для запуска процесса.
  • Методы HEAD и PUT являются модификациями методов GET и POST.

Версия протокола HTTP, как правило, задается в следующем формате:

HTTP/версия.модификация

Поля заголовка , следующие за строкой состояния, позволяют уточнять запрос, т.е. передавать серверу дополнительную информацию. Поле заголовка имеет следующий формат:

Имя_поля: Значение

Назначение поля определяется его именем, которое отделяется от значения двоеточием.

Имена некоторых наиболее часто встречающихся в запросе клиента полей заголовка и их назначение приведены в таблице 2.1 .

Таблица 2.1. Поля заголовка запроса HTTP.
Поля заголовка HTTP-запроса Значение
Host Доменное имя или IP-адрес узла, к которому обращается клиент
Referer URL документа, который ссылается на ресурс, указанный в строке состояния
From Адрес электронной почты пользователя, работающего с клиентом
Accept MIME-типы данных, обрабатываемых клиентом. Это поле может иметь несколько значений, отделяемых одно от другого запятыми. Часто поле заголовка Accept используется для того, чтобы сообщить серверу о том, какие типы графических файлов поддерживает клиент
Accept-Language Набор двухсимвольных идентификаторов, разделенных запятыми, которые обозначают языки, поддерживаемые клиентом
Accept-Charset Перечень поддерживаемых наборов символов
Content-Type MIME-тип данных, содержащихся в теле запроса (если запрос не состоит из одного заголовка)
Content-Length Число символов, содержащихся в теле запроса (если запрос не состоит из одного заголовка)
Range Присутствует в том случае, если клиент запрашивает не весь документ, а лишь его часть
Connection Используется для управления TCP-соединением. Если в поле содержится Close, это означает, что после обработки запроса сервер должен закрыть соединение. Значение Keep-Alive предлагает не закрывать TCP-соединение, чтобы оно могло быть использовано для последующих запросов
User-Agent Информация о клиенте

Во многих случаях при работе в Веб тело запроса отсутствует. При запуске CGI-сценариев данные, передаваемые для них в запросе, могут размещаться в теле запроса.

Ниже представлен пример HTML-запроса, сгенерированного браузером

GET http://oak.oakland.edu/ HTTP/1.0

Connection: Keep-Alive

User-Agent: Mozilla/4.04 (Win95; I)

Host: oak.oakland.edu

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*

Accept-Language: en

Accept-Charset: iso-8859-l,*,utf-8

Получив от клиента запрос, сервер должен ответить ему. Знание структуры ответа сервера необходимо разработчику веб-приложений, так как программы, которые выполняются на сервере, должны самостоятельно формировать ответ клиенту.

Подобно запросу клиента, ответ сервера также состоит из четырех перечисленных ниже компонентов.

  • Строка состояния.
  • Поля заголовка.
  • Пустая строка.
  • Тело ответа.

Ответ сервера клиенту начинается со строки состояния, которая имеет следующий формат:

Версия_протокола Код_ответа Пояснительное_сообщение

  • Версия_протокола задается в том же формате, что и в запросе клиента, и имеет тот же смысл.
  • Код_ответа - это трехзначное десятичное число, представляющее в закодированном виде результат обслуживания запроса сервером .
  • Пояснительное_сообщение дублирует код ответа в символьном виде. Это строка символов, которая не обрабатывается клиентом. Она предназначена для системного администратора или оператора, занимающегося обслуживанием системы, и является расшифровкой кода ответа.

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

HТТР/1.0 200 ОК

Как видно, за версией протокола HTTP 1.0 следует код 200. В этом коде символ 2 означает успешную обработку запроса клиента, а остальные две цифры (00) - номер данного сообщения.

В используемых в настоящее время реализациях протокола HTTP первая цифра не может быть больше 5 и определяет следующие классы ответов.

  • 1 - специальный класс сообщений, называемых информационными. Код ответа, начинающийся с 1, означает, что сервер продолжает обработку запроса. При обмене данными между HTTP-клиентом и HTTP-сервером сообщения этого класса используются достаточно редко.
  • 2 - успешная обработка запроса клиента.
  • 3 - перенаправление запроса. Чтобы запрос был обслужен, необходимо предпринять дополнительные действия.
  • 4 - ошибка клиента. Как правило, код ответа, начинающийся с цифры 4, возвращается в том случае, если в запросе клиента встретилась синтаксическая ошибка.
  • 5 - ошибка сервера. По тем или иным причинам сервер не в состоянии выполнить запрос.

Примеры кодов ответов, которые клиент может получить от сервера, и поясняющие сообщения приведены в таблице 2.2 .

Таблица 2.2. Классы кодов ответа сервера.
Код Расшифровка Интерпретация
Continue Часть запроса принята, и сервер ожидает от клиента продолжения запроса
OK Запрос успешно обработан, и в ответе клиента передаются данные, указанные в запросе
Created В результате обработки запроса был создан новый ресурс
Accepted Запрос принят сервером, но обработка его не окончена. Данный код ответа не гарантирует, что запрос будет обработан без ошибок.
Partial Content Сервер возвращает часть ресурса в ответ на запрос, содержавший поле заголовка Range
Multiple Choice Запрос указывает более чем на один ресурс. В теле ответа могут содержаться указания на то, как правильно идентифицировать запрашиваемый ресурс
Moved Permanently Затребованный ресурс больше не располагается на сервере
Moved Temporarily Затребованный ресурс временно изменил свой адрес
Bad Request В запросе клиента обнаружена синтаксическая ошибка
Forbidden Имеющийся на сервере ресурс недоступен для данного пользователя
Not Found Ресурс, указанный клиентом, на сервере отсутствует
Method Not Allowed Сервер не поддерживает метод, указанный в запросе
Internal Server Error Один из компонентов сервера работает некорректно
Not Implemented Функциональных возможностей сервера недостаточно, чтобы выполнить запрос клиента
Service Unavailable Служба временно недоступна
HTTP Version not Supported Версия HTTP, указанная в запросе, не поддерживается сервером

В ответе используется такая же структура полей заголовка, как и в запросе клиента. Поля заголовка предназначены для того, чтобы уточнить ответ сервера клиенту. Описание некоторых из полей, которые можно встретить в заголовке ответа сервера, приведено в таблице 2.3 .

Таблица 2.3. Поля заголовка ответа веб-сервера.
Имя поля Описание содержимого
Server Имя и номер версии сервера
Age Время в секундах, прошедшее с момента создания ресурса
Allow Список методов, допустимых для данного ресурса
Content-Language Языки, которые должен поддерживать клиент для того, чтобы корректно отобразить передаваемый ресурс
Content-Type MIME-тип данных, содержащихся в теле ответа сервера
Content-Length Число символов, содержащихся в теле ответа сервера
Last-Modified Дата и время последнего изменения ресурса
Date Дата и время, определяющие момент генерации ответа
Expires Дата и время, определяющие момент, после которого информация, переданная клиенту, считается устаревшей
Location В этом поле указывается реальное расположение ресурса. Оно используется для перенаправления запроса
Cache-Control Директивы управления кэшированием. Например, no- cache означает, что данные не должны кэшироваться

В теле ответа содержится код ресурса, передаваемого клиенту в ответ на запрос. Это не обязательно должен быть HTML-текст веб-страницы. В составе ответа могут передаваться изображение, аудио-файл, фрагмент видеоинформации, а также любой другой тип данных, поддерживаемых клиентом. О том, как следует обрабатывать полученный ресурс, клиенту сообщает содержимое поля заголовка Content- type.

Ниже представлен пример ответа сервера на запрос, приведенный в предыдущем разделе. В теле ответа содержится исходный текст HTML-документа.

Server: Microsoft-IIS/5.1

X-Powered-By: ASP.NET

Content-Type: text/html

Accept-Ranges: bytes

ETag: "b66a667f948c92:8a5"

Content-Length: 426

Operand1:

Operand2:

Operation:

Поля заголовка и тело сообщения могут отсутствовать, но строка состояния является обязательным элементом, так как указывает на тип запроса/ответа.

Поле с именем Content-type может встречаться как в запросе клиента, так и в ответе сервера. В качестве значения этого поля указывается MIME-тип содержимого запроса или ответа. MIME-тип также передается в поле заголовка Accept, присутствующего в запросе.

Спецификация MIME (Multipurpose Internet Mail Extension - многоцелевое почтовое расширение Internet) первоначально была разработана для того, чтобы обеспечить передачу различных форматов данных в составе электронных писем. Однако применение MIME не исчерпывается электронной почтой. Средства MIME успешно используются в WWW и, по сути, стали неотъемлемой частью этой системы.

Стандарт MIME разработан как расширяемая спецификация, в которой подразумевается, что число типов данных будет расти по мере развития форм представления данных. Каждый новый тип в обязательном порядке должен быть зарегистрирован в IANA (Internet Assigned Numbers Authority).

До появления MIME компьютеры, взаимодействующие по протоколу HTTP, обменивались исключительно текстовой информацией. Для передачи изображений, как и для передачи любых других двоичных файлов, приходилось пользоваться протоколом FTP.

В соответствии со спецификацией MIME, для описания формата данных используются тип и подтип . Тип определяет, к какому классу относится формат содержимого HTTP-запроса или HTTP-ответа. Подтип уточняет формат. Тип и подтип отделяются друг от друга косой чертой:

тип/подтип

Поскольку в подавляющем большинстве случаев в ответ на запрос клиента сервер возвращает исходный текст HTML-документа, то в поле Content-type ответа обычно содержится значение text/html. Здесь идентификатор text описывает тип, сообщая, что клиенту передается символьная информация, а идентификатор html описывает подтип, т.е. указывает на то, что последовательность символов, содержащаяся в теле ответа, представляет собой описание документа на языке HTML.

Перечень типов и подтипов MIME достаточно велик. В таблице 2.4 приведены примеры MIME-типов, наиболее часто встречающиеся в заголовках HTML-запросов и ответов.

Таблица 2.4. MIME типы данных.
Тип/подтип Расширение файла Описание
application/pdf .pdf Документ, предназначенный для обработки Acrobat Reader
application/msexcel .xls Документ в формате Microsoft Excel
application/postscript .ps, .eps Документ в формате PostScript
application/x-tex .tex Документ в формате ТеХ
application/msword .doc Документ в формате Microsoft Word
application/rtf .rtf Документ в формате RTF, отображаемый с помощью Microsoft Word
image/gif .gif Изображение в формате GIF
image/ jpeg .jpeg, .jpg, Изображение в формате JPEG
image/tiff .tiff, .tif Изображение в формате TIFF
image/x-xbitmap .xbm Изображение в формате XBitmap
text/plain .txt ASCII-текст
text/html . html , . htm Документ в формате HTML
audio/midi .midi, .mid Аудиофайл в формате MIDI
audio/x-wav .wav Аудиофайл в формате WAV
message/rfc822 Почтовое сообщение
message/news Сообщение в группы новостей
video /mpeg .mpeg, .mpg, .mpe Видеофрагмент в формате MPEG
video/avi .avi Видеофрагмент в формате AVI

Для однозначной идентификации ресурсов в сети Веб используются уникальные идентификаторы URL.

Единообразный идентификатор ресурса URI (Uniform Resource Identifier) представляет собой короткую последовательность символов, идентифицирующую абстрактный или физический ресурс. URI не указывает на то, как получить ресурс, а только идентифицирует его. Это дает возможность описывать с помощью RDF (Resource Description Framework) ресурсы, которые не могут быть получены через Интернет (имена, названия и т.п.). Самые известные примеры URI - это URL и URN.

  • URL (Uniform Resource Locator) - это URI, который, помимо идентификации ресурса, предоставляет еще и информацию о местонахождении этого ресурса.
  • URN (Uniform Resource Name) - это URI, который идентифицирует ресурс в определенном пространстве имен, но, в отличие от URL, URN не указывает на местонахождение этого ресурса.

URL имеет следующую структуру:

<схема>://<логин>:<пароль>@<хост>:<порт>/

  • схема - схема обращения к ресурсу (обычно сетевой протокол);
  • логин - имя пользователя, используемое для доступа к ресурсу;
  • пароль - пароль, ассоциированный с указанным именем пользователя;
  • хост - полностью прописанное доменное имя хоста в системе DNS или IP-адрес хоста;
  • порт - порт хоста для подключения;
  • URL-путь - уточняющая информация о месте нахождения ресурса.

Общепринятые схемы (протоколы) URL включают протоколы: ftp, http, https, telnet , а также.