9. Электронная почта
Электронная почта (e-mail) одна из широко распространенных служб, реализованных на базе Интернет. В эталонной модели TCP/IP она относится к прикладному уровню (рис. 10) и для ее реализации обычно используются протоколы SMTP и POP3.
Существует два широко используемых формата e-mail: основной формат электронного письма RFC 822 (табл. 3) и многоцелевое расширение электронной почты в Интернет (Multipurpose Internet Mail Extension – MIME) (табл. 4, 5).
Таблица 3
Поля формата сообщений RFC 822
Поле | Описание |
To: | Адрес (адреса) основного получателя (получателей) |
Cc: | Адрес (адреса) дополнительного получателя (получателей) |
Bcc: | Адрес «слепой» копии |
From: | Автор (авторы) сообщения |
Sender: | Адрес отправителя |
Received: | Идентификатор агента, дата, время получения и другая информация. Добавляется каждым агентом передачи на всем протяжении маршрута |
Return-Path: | Композиция всех полей Received |
В отличие от адреса дополнительного получателя (получателей) «слепая» копия позволяет скрыть от получателя факт пересылки данного сообщения так же и другим адресатам. В случае использования «обычной» копии в заголовке письма доставленного пользователю будет содержаться список всех адресов получателей данного письма.
Таблица 4
Поля стандарта MIME
Заголовок | Описание |
MIME-Version: | Версия MIME |
Content-Description: | Описание содержимого в виде простой текстовой строки |
Content-Id: | Уникальный идентификатор |
Content-Transfer-Encoding: | Способ кодировки сообщения |
Content-Type: | Тип и формат содержимого сообщения |
Таблица 5
Типы и подтипы заголовка Content-Type
Тип | Подтип | Описание |
Text | Plain Enriched | Неформатированный текст Текст с включением простых команд форматирования |
Image | Gif Jpeg | Неподвижное изображение формата GIF Неподвижное изображение формата JPEG |
Audio | Basic | Звук |
Video | Mpeg | Видео в формате MPEG |
Application | Octet-stream Postscript | Неинтерпретируемая последовательность байтов Документ для печати в формате PostScript |
Message | Rfc822 Partial External-body | Сообщение MIME RFC 822 Сообщение разбито на части для передачи Само сообщение должно быть получено по сети |
Multipart | Mixed Alternative Parallel Digest | Независимые части в указанном порядке То же сообщение в другом формате Части сообщения просматривать одновременно Каждая часть – законченное сообщение RFC 822 |
10. HTTP
HTTP (HyperText Transfer Protocol) – протокол передачи гипертекста (табл. 6). Он является главным протоколом Всемирной паутины (World Wide Web) и описывает формат сообщений, которыми могут обмениваться клиенты и серверы. HTTP определен в RFC 2616. В этом протоколе каждое взаимодействие состоит из одного ASCII-запроса, на который следует один ответ стандарта RFC 822 MIME.
Данный протокол работает на основе TCP-соединения, и хотя формально это требование не является обязательным, на практике оно почти всегда выполняется. Это обусловлено тем, что в случае использования TCP ни браузеру, ни серверу не надо беспокоиться о потерянных данных и разбиении больших сообщений на части. Все это выполнят службы TCP-протокола.
Протокол HTTP разработан таким образом, что может использоваться не только в веб-технологиях но и в других объектно-ориентированных приложениях.
Таблица 6
Встроенные методы HTTP-запросов
Метод | Описание |
GET | Прочитать веб-страницу |
HEAD | Прочитать заголовок веб-страницы |
PUT | Сохранить веб-страницу |
POST | Добавить к веб-странице |
DELETE | Удалить веб-страницу |
TRACE | Отослать назад запрос |
CONNECT | Зарезервировано для будущего использования |
OPTIONS | Отобразить параметры |
Метод GET запрашивает страницу (под страницей может подразумеваться любой объект, хотя на практике чаще всего это просто обычный файл), закодированную согласно стандарту MIME. Это наиболее часто употребляемый метод. Его структура следующая: GET имя_файла HTTP/1.1
Метод HEAD запрашивает заголовок сообщения, причем сама страница не загружается. С помощью данного метода можно, например, узнать время последнего обновления страницы, что необходимо для управления кэшированием страниц. Кроме того, с помощью этого метода можно просто проверить работоспособность данного URL.
С помощью метода PUT можно поместить страницу на сервер. Тело этого запроса содержит размещаемую страницу, которая может быть закодирована согласно MIME. Метод требует идентификации пользователя.
POST является методом, добавляющим содержимое к уже имеющейся странице. Он может использоваться, например, для добавления записи на форуме.
Метод DELETE уничтожает страницу. Как и в методе PUT здесь требуется аутентификация, подтверждающая права пользователя на данное действие.
TRACE указывает серверу отослать назад запрос и служит для отладки, позволяя узнать, не искажается ли запрос клиента, получаемый сервером.
Метод CONNECT зарезервирован и в настоящее время не используется.
При помощи OPTIONS клиент может запросить сервер о его свойствах или о свойствах какого-либо конкретного файла.
В ответ на каждый запрос сервер генерирует ответ, содержащий строку состояния, а так же, возможно, и другую информацию, например веб-страницу. Строка состояния может содержать код состояния, информирующий об успешном выполнении запроса, а в противном случае – о причине неудач. Коды разделены на пять основных групп (табл. 7).
Таблица 7
Группы кодов состояния
Группа кода | Тип | Коды |
1хх | Готовность | 100 – сервер готов обрабатывать запросы клиента |
2хх | Успех | 200 – запрос успешно обработан 204 – содержимое отсутствует |
3хх | Перенаправление | 301 – страница перемещена 304 – кэшированная страница все еще актуальна |
4хх | Ошибка клиента | 403 – ошибка доступа 404 – страница не найдена |
5хх | Ошибка сервера | 500 – внутренняя ошибка сервера 503 – указание предпринять попытку позднее |
За строкой запроса могут следовать другие строки с дополнительной информацией (заголовками запросов), а за ответами – заголовки ответов (табл. 8).
Таблица 8
Некоторые заголовки сообщений HTTP
Заголовок | Тип | Содержимое |
User-Agent | Запрос | Информация о браузере и платформе |
Accept | Запрос | Поддерживаемые клиентом типы страниц |
Accept-Charset | Запрос | Поддерживаемые клиентов наборы символов |
Accept-Encoding | Запрос | Поддерживаемые клиентом типы кодирования (методы сжатия информации) |
Accept-Language | Запрос | Естественные языки, воспринимаемые клиентом |
Host | Запрос | DNS-сервера |
Authorization | Запрос | Список идентификаторов клиента |
Cookie | Запрос | Отправка ранее принятого cookie-файла на сервер |
Date | Запрос / ответ | Дата и время отправки сообщения |
Upgrade | Запрос / ответ | Поддерживаемые протоколы. Может использоваться для перехода на будущие версии протокола HTTP, которые, возможно, будут несовместимы с предыдущими. |
Server | Ответ | Информация о сервере |
Content-Encoding | Ответ | Тип кодирования содержимого (методы сжатия информации) |
Content-Language | Ответ | Естественный язык, который используется на странице |
Content-Length | Ответ | Размер страницы в байтах |
Content-Type | Ответ | MIME-тип страницы |
Last-Modified | Ответ | Время и дата последнего обновления страницы |
Location | Ответ | Команда клиенту на перенаправление его запроса другому серверу. Используется при «переезде» страницы или использовании «зеркал», на которых хранится копия страницы |
Accept-Ranges | Ответ | Готовность сервера принимать запросы на страницы указанного размера. Это позволяет пересылать страницы по частям, что может потребоваться, если страница слишком большая и клиент не может принять сразу всю страницу целиком |
Set-Cookie | Ответ | Команда клиенту сохранить cookie |
- Введение
- 2. Основы сетевых технологий
- Применение компьютерных сетей
- Классификация компьютерных сетей
- Беспроводные сети
- Широковещательные сети и сети с передачей от узла к узлу
- Локальные сети
- Муниципальные сети
- Глобальные сети и интерсети
- 3. Принципы построения сетевых протоколов Иерархия сетевых протоколов
- Метафора «философ – переводчик – секретарь»
- Пример пятиуровневого протокола
- 4. Arpanet и возникновение интернет
- 5. Топология internet
- 6. Маршрутизация
- Маршрутизация в сетях на основе служб без установления соединения
- Маршрутизация в сетях на основе служб с установлением соединения
- 8. Служба доменных имен (dns)
- 9. Электронная почта
- 11. Введение в web-технологии
- Структура html-документа
- Теги заголовков и абзацев
- Маркированные списки
- Нумерованные списки
- Списки определений
- Вложенные списки
- Гиперссылки
- Использование рисунков в роли ссылок
- Карты изображений
- Основы JavaScript
- Управляющие структуры JavaScript
- 15. Введение в объектно-ориентированное программирование Основные понятия объектно-ориентированного программирования: инкапсуляция, наследование и полиморфизм
- Объектно-ориентированные, объектные и объектно-базированные языки программирования
- Избранная библиография по объектно-ориентрованному программированию
- Представление документа в виде древовидной структуры
- Навигация по документу
- Динамическая генерация веб-страниц средствами dhtml на основе dom
- Модель событий dom
- 17. Архитектура распределенной системы структурно-параметрического синтеза
- 18. Заключение
- Оглавление