Протокол HTTP (Hypertext Transfer Protocol) – это протокол Прикладного уровня, доставляющий информацию между различными гипермедийными системами. Под понятием гипермедийной системы понимается компьютерное представление системы данных, элементы которой представляются в различных форматах (гипертекст, графические изображения, видеоизображения, звук и т.д.) и обеспечивается автоматическая поддержка смысловых связей между представлениями элементов.
Протокол HTTP применяется в Internet с 1990 года. В настоящее время широкое распространение имеет версия HTTP 1.0, описанная в документе RFC 1945. Разработана новая версия HTTP 1.1 (документ RFC 2616), но пока она находится в стадии предложенного стандарта.
По умолчанию HTTP использует порт 80 и предназначен для построения систем архитектуры клиент-сервер. Запросы клиентов содержат URI (Uniform Resource Identifier) - универсальный идентификатор ресурса, позволяющий определить у сервера затребованный ресурс. URI представляет собой сочетание URL (Uniform Resource Locator) и URN (Uniform Resource Name). URL – унифицированный адресатор ресурсов: предназначен для указания места нахождения ресурса в сети. URN – унифицированное имя ресурса: идентифицирует ресурс, по указанному месту его нахождения (подразумевается, что по данному адресу может быть представлено несколько различных ресурсов).
HTTP (англ. HyperText Transfer Protocol — «протокол передачи гипертекста») — протокол прикладного уровня передачи данных (изначально — в виде гипертекстовых документов).
Основой HTTP является технология «клиент-сервер», то есть предполагается существование потребителей (клиентов), которые инициируют соединение и посылают запрос, и поставщиков (серверов), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом.
HTTP в настоящее время повсеместно используется во Всемирной паутине для получения информации с веб-сайтов.
Достоинства HTTP:
• Простота
• Расширяемость
• Распространённость
Недостатки HTTP:
• Большой размер сообщений
• Отсутствие «навигации»
• Нет поддержки распределённости
Всё программное обеспечение для работы с протоколом HTTP разделяется на три больших категории:
· Серверы как основные поставщики услуг хранения и обработки информации (обработка запросов).
· Клиенты — конечные потребители услуг сервера (отправка запроса).
· Прокси для выполнения транспортных служб.
Каждое HTTP-сообщение состоит из трёх частей, которые передаются в указанном порядке:
1. Стартовая строка (англ. Starting line) — определяет тип сообщения;
2. Заголовки (англ. Headers) — характеризуют тело сообщения, параметры передачи и прочие сведения;
3. Тело сообщения (англ. Message Body) — непосредственно данные сообщения. Обязательно должно отделяться от заголовков пустой строкой.
Заголовки и тело сообщения могут отсутствовать, но стартовая строка является обязательным элементом, так как указывает на тип запроса/ответа. Исключением является версия 0.9 протокола, у которой сообщение запроса содержит только стартовую строку, а сообщения ответа только тело сообщения.
Стартовые строки различаются для запроса и ответа. Строка запроса выглядит так:
- GET URI — для версии протокола 0.9.
- Метод URI HTTP/Версия — для остальных версий.
Здесь:
· Метод (англ. Method) — название запроса, одно слово заглавными буквами. В версии HTTP 0.9 использовался только метод GET, список запросов для версии 1.1 представлен ниже.
· URI определяет путь к запрашиваемому документу.
· Версия (англ. Version) — пара разделённых точкой арабских цифр. Например: 1.0.
Для запроса страницы, клиент должен передать строку: