Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Протоколы электронной почты




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

Протокол SMTP

После того как агент передачи почты пошлет сообщение в выходную очередь, за дело принимается агент доставки - МТА. Он извлекает сообщение и посылает его другому МТА. Этот процесс продолжается до тех пор, пока сообщение не достигнет компьютера - получателя. Для передачи сообщений большинство МТА пользуются протоколом SMTP. Сообщения форматированы по правилам виртуального сетевого терминала NVT. Символ в NVT состоит из семи битов набора ASCII и является буквой, цифрой или знаком пунктуации.

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

Сообщение в почтовый ящик пользователя может быть доставлено различными маршрутами. Чтобы направить почту по нужному пути, указываются промежуточные агенты-MTA. В следующем примере Student@good.edu является почтовым ящиком, a HOSTI, HOST2 и HOST3 - промежуточными агентами:

MAIL FROM:<@HOSTI, @HOST2, @HOST3: Student@good.edu >

Как правило, между двумя компьютерами находится один или несколько промежуточных агентов. Аргументом команды MAIL является обратный маршрут, включающий имя источника сообщения и имена всех промежуточных агентов. Обратный маршрут используется SMTP, когда нужно передать сообщение о случившейся ошибке или о невозможности доставить сообщение, когда оно уже прошло через промежуточный агент. По мере продвижения сообщения по Internet записи о его маршрутах изменяются.

Протокол POP3

На компьютере пользователя существуют два отдельных почтовых агента - доставки (POP) и отправки (SMTP).

Post Office Protocol (POP) - протокол доставки почты пользователю. Доставка сообщений осуществляется в почтовые ящики пользователя, расположенные на круглосуточно работающем почтовом сервере. Пользователь может получить доступ к своему почтовому РОР-серверу из любой точки доступа к Интернет. Для этого необходимо запустить почтовый агент и настроить его для работы со своим почтовым сервером.

В протоколе РОРЗ, который является более поздней версией POP, оговорены три стадии процесса получения почты: авторизация, транзакция и обновление. На стадии авторизации клиент себя идентифицирует. Если авторизация прошла успешно, сервер открывает почтовый ящик клиента и начинается стадия транзакции почты. На стадии обновления сеанс связи заканчивается.

Протокол IMAP4

Протокол IMAP4 (Internet Message Access Protocol) позволяет клиентам получать доступ и манипулировать сообщениями электронной почты на сервере. В отличие от протокола РОРЗ, IMAP4 поддерживает работу с системой каталогов удаленных сообщений, как если бы они располагались на локальном компьютере. IMAP4 позволяет клиенту создавать, удалять и переименовывать почтовые ящики, проверять наличие новых сообщений и удалять старые. Структура папок в значительной степени зависит от типа почтовой системы, но в любой системе у клиента есть специальный каталог INBOX, куда попадают поступающие клиенту сообщения. Протокол IMAP4 работает поверх транспортного протокола, который обеспечивает надежный и достоверный канал передачи данных между клиентом, и сервером IMAP4. При работе по TCP, IMAP4 использует 143-й порт. Команды и данные IMAP4 передаются по транспортному протоколу в том виде, в каком их отправляет сервер или пользователь.

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

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

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

Спецификация MIME

Существует стандарт MIME (Multipurpose Internet Mail Extensions), определяющий включение в почтовые сообщения объектов мультимедиа: текста на языках, для которых используются кодировки, отличные от ASCII, и нетекстовый контент, такой как картинки, музыка, фильмы и программы. MIME является также компонентом коммуникационных протоколов HTTP, которым нужно, чтобы данные передавались в контексте сообщений подобных e-mail, даже если данные реально не являются e-mail.

Проблемы с кодировкой

В настоящее время используется несколько кодировок кириллицы позволяяющих использовать восьмибитные коды от 0.. 255: KOI8-R, Windows 1251 и Unicode(UTF-8).

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

Компания Microsoft для работы в Интернете предложила свой стандарт Windows 1251.

Универсальный международный стандарт Unicode (UTF-8) был создан с целью объединить существующие национальные кодировки в одну. Поскольку для отображения одного символа в Unicode отводится не один байт, как это принято во всех остальных стандартах, а два, данная кодировка включает в себя 65536 знаков вместо 256. В это число входят не только буквы всех алфавитов мира, но и множество специальных символов — математических, музыкальных, физических. UTF-8 стал основным стандартом передачи гипертекстовой информации.

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

Что касается нетекстовых файлов, то проблема с ними решается путем создания почтовых вложений (присоединённых файлов). Если нужно отправить длинный документ, его упаковывают архиватором, затем создают сообщение, к которому прикрепляют документ в качестве вложения. Для пересылки хорошо подходит формат PDF. Для просмотра этого формата служит бесплатная программа Acrobate Reader.

Протокол FTP

Технология FTP была разработана еще в рамках проекта ARPA и предназначена для обмена большими объемами информации между машинами с различной архитектурой. FTP-протокол - один из старейших протоколов в Internet. Первые спецификации FTP относятся к 1971 году. Обмен данными в FTP построен на технологии “клиент-сервер” и происходит по TCP-каналу. Алгоритм работы протокола FTP состоит в следующем:

- Сервер FTP прослушивает порт 21, и находится в состоянии ожидания соединения с клиентом.

- Клиент устанавливает соединение и отправляет на сервер команды FTP.

- Клиент становится в режим ожидания открытия соединения на заданный для передачи данных порт. Активный модуль - “Программа передачи данных сервера” начинает передачу данных клиенту.

После окончания передачи данных управляющее соединение сервера и клиента остается открытым, поэтому пользователь, не закрывая сессии FTP, может еще раз открыть канал передачи данных.

HTTP – Протокол передачи гипертекстов

HyperText Transfer Protocol (HTTP) - это протокол уровня приложений, обеспечивающий передачу гипертекстовых данных от клиента к серверу и обратно. HTTP используется проектом World Wide Web, начиная с 1990 года. В настоящее время в Веб используется версия HTTP 1.1. HTTP предоставляет открытое множество методов, которые могут быть использованы для указания целей запроса. Для указания адреса ресурса, к которому должен быть применен данный метод, используется Универсальный Идентификатор Ресурсов (Universal Resource Identifier - URI), в виде местонахождения (URL) или имени (URN). Программа - клиент устанавливает связь с обслуживающей программой- сервером и посылает серверу запрос в следующей форме:

· метод запроса,

· URI,

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

Сервер отвечает сообщением, содержащим строку статуса: версию протокола и код статуса - успех или ошибка. За ней следует сообщение, включающее в себя информацию о сервере, метаинформацию о содержании ответа, и само тело ответа.

Для WWW номер порта по умолчанию 80, но могут быть использованы и другие номера портов.

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

Транзакции HTTP

Когда браузер запрашивает Web-страницу с указанного адреса, он создает и отсылает серверу по указанному адресу запрос HTTP, заголовок которого выглядит следующим образом:

GET /my.php HTTP/1.1

Accept: image/gif, image/png, image/jpeg, */*

Accept-Language: en-us

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0;

Windows XP;.NET CLR 1.1.4322)

Host: my.com

Connection: Keep-Alive

 

Вот что эти строки значат:

GET — метод HTTP который означает: "Дай информацию, находящуюся в му.php, и вышли ее, используя протокол HTTP 1.1".

Accept — "могу понимать графическую информацию в следующих форматах".

Accept-Language — "язык, — английский, американский ".

Accept-Encoding — "можно отправлять данные в сжатом виде, поскольку я понимаю типы сжатия gzip и deflate".

User-Agent — "тип моего браузера — Microsoft Explorer 8, выполняющийся под управлением Windows XP".

Host — "доставь мне информацию /my.php с компьютера, находящегося на хосте my.com".

Connection: Keep-Alive — "держи подключение HTTP открытым, пока браузер не закроет его". Постоянное подключение повышает производительность, поскольку соединение не нужно закрывать и снова открывать для каждого подключения. Без Keep-Alive Web-страница будет иметь множество подключений

Когда Web-сервер получает подобный запрос, он должен просмотреть информацию на сервере, которая представлена /my. php. Если информация на сервере существует, сервер должен отправить клиенту (браузеру) ответ (response) в виде:

HTTP/1.1 200 OK

Date: Sun, 14 Mar 2010 21:36:39 GMT

Server: Apache/2

Last-Modified: Sat, 28 Nov 2009 03:59:01 GMT

ETag: "1387e3-5f88-479666db44b40"

Accept-Ranges: bytes

Content-Length: 24456

Vary: Accept-Encoding,User-Agent

Connection: close

Content-Type: text/html; charset=utf-8

 

<html lang="en-US" xml:lang = "en-US"> <nlns="http://www.w3.org/1999/xhtml">

<head>

<script>

HTTP-ответ состоит из двух частей. В начале идет заголовок ответа (response header). Затем идет пустая строка и далее — сама запрошенная информация. Эта вторая часть называется телом (body). Вот что означают части заголовка:

HTTP/1.1 — первая строка сообщает клиенту, что информация будет отправлена по протоколу HTTP версии 1.1. Код 200 состояния HTTP означает: "Все хорошо, документ найден и сейчас будет отправлен".

Date — сообщает клиенту дату, установленную на сервере, с которого поступает информация. Стандартный часовой пояс — GMT, то есть время по Гринвичу.

Server — каков тип сервера, предоставляющего информацию.

Connection — сообщает клиенту, что соединение будет закрыто после того, как сервер завершит отправку информации.

Content-Type — сообщает клиенту, какой тип содержимого будет отправлен. В дополнение также указывается набор символов.

Клиентские методы HTTP

В HTTP метод клиента определяет запрос, отправленный от Web-клиента, либо РНР-сценария, HTTP-серверу. Чаще всего используются три основных типа запросов:

GET-запросы. Когда вы хотите только получить информацию от источника HTTP, то можете сделать это методом GET. Получить информацию можно из файла, либо от исполняемой программы на Web-сервере с указанным URL-адресом.

POST-запросы. Когда вы хотите отправить информацию от клиента Web-серверу, то используете запрос POST. Обычно это имеет место, когда вы отправляете серверу содержимое Web-формы.

HEAD-запросы. Когда вы хотите получить информацию о запрошенном URL, но не информацию самого URL, то используете запрос HEAD.

Несмотря на то, что РНР делает определенные вещи легко, он не реализует их в полной мере. В частности, хотя средство потоков РНР Streams позволяет довольно просто получать доступ к ресурсам HTTP, как если бы они были файлами, оно не дает возможности получить доступ к метаинформации. Чтобы получить доступ к метаинформации, можно обратиться к объекту HttpClient.





Поделиться с друзьями:


Дата добавления: 2016-07-29; Мы поможем в написании ваших работ!; просмотров: 1454 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Что разум человека может постигнуть и во что он может поверить, того он способен достичь © Наполеон Хилл
==> читать все изречения...

2579 - | 2396 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.