Сравнение SMTP и HTTP
Теперь настало время сравнить два важных Интернет-протокола: HTTP и SMTP. Оба они предназначены для передачи файлов между хостами, при этом HTTP организует передачу объектов между web-клиентом (который обычно представляет собой браузер) и web-сервером, a SMTP — передачу электронных сообщений между двумя почтовыми серверами. Как HTTP, так и SMTP используют постоянные соединения. Тем не менее, наряду с описанными сходствами, протоколы обладают и различиями.
Во-первых, HTTP представляет собой протокол получения (pull protocol), то есть некто загружает на web-сервер нужную информацию, которую пользователи с помощью протокола HTTP получают с сервера в удобное для себя время. Как правило, TCP-соединение устанавливается компьютером, инициирующим получение файла. SMTP, напротив, является протоколом отправки (push protocol), то есть передающий почтовый сервер отправляет файл принимающему почтовому серверу. Как правило, TCP-соединение устанавливается компьютером, инициирующим отправку файла.
Во-вторых, как уже упоминалось ранее, SMTP требует 7-разрядной кодировки ASCII для символов в заголовке и теле каждого сообщения. Если сообщение содержит символы расширенной кодировки ASCII (например, символы национальных алфавитов) или бинарные данные, требуется преобразование таких данных в 7-разрядную кодировку ASCII. Протокол HTTP не накладывает подобных ограничений на сообщения.
В-третьих, протоколы SMTP и HTTP поддерживают разные способы обработки документов, содержащих текстовую и графическую (или мультимедийную) информацию. Как упоминалось в разделе «Web и НТТР», протокол HTTP пересылает каждый объект в отдельном ответном сообщении; SMTP, напротив, помещает все объекты в одно сообщение.