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

Вы можете авторизоваться на сайте всего одним кликом:

2016-07-10
HTTP → Клиент-Серверное взаимодействие
Как работает интернет, Как работают интернет-протоколы

Что же происходит в промежутке между тем, как мы набрали адрес сайта в браузере, и моментом, когда его содержимое отобразилось на экране?

Схема клиент-серверного взаимодействия при работе браузера

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

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

После получения пакета с HTTP-запросом веб-сервер определяет, какие действия необходимы для его обработки. Если HTTP-запрос осуществляется к обычной HTML-странице, то веб-сервер просто передает ее содержимое браузеру. Если же HTTP-запрос осуществляется к какому-либо сценарию (например, PHP-сценарию), веб-сервер передает запрос на обработку соответствующей программе, отвечающей за обработку этого типа сценариев. Обработчик сценария в свою очередь может вызывать другие программы в ходе своей работы, например СУБД MySQL.

Результатом работы обработчика сценариев является HTML-код, который вебсервер посылает обратно на компьютер пользователя. Сгенерированный HTML-код веб-сервер упаковывает в HTTP-пакет, который и передается по сети обратно клиенту. Полученный HTTP-ответ попадает в браузер клиента, который извлекает из него HTML-код и генерирует на его основе графическое представление запрошенной страницы.

Протокол HTTP

Давайте дадим более четкое определение протоколу HTTP и разберемся, зачем он нужен

HTTP (HyperText Transfer Protocol, протокол передачи гипертекста) — протокол прикладного уровня передачи данных (изначально — в виде гипертекстовых документов). Основой HTTP является технология "клиент-сервер", т. е. предполагается существование потребителей (клиентов), которые инициируют соединение и посылают запрос, и поставщиков (серверов), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом. HTTP в настоящее время повсеместно используется во Всемирной паутине для получения информации с веб-сайтов.

Иными словами, HTTP — это язык, на котором общаются браузер и веб-сервер при обмене пакетами с данными. Обмен сообщениями в ходе HTTP-соединения идет по обыкновенной схеме "запрос—ответ".

Каждое HTTP-сообщение состоит из трех частей, которые передаются в указанном порядке:

  1. Стартовая строка — определяет тип сообщения.
  2. Заголовки — характеризуют тело сообщения, параметры передачи и прочие сведения.
  3. Тело сообщения — непосредственно данные сообщения. Обязательно должно отделяться от заголовков пустой строкой.

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

Стартовые строки HTTP-запросов и HTTP-ответов различны. 

Для HTTP-запроса стартовая строка имеет следующий вид:

МЕТОД URI HTTP/Версия
  1. МЕТОД — название запроса, одно слово прописными буквами. В версии HTTP 0.9 использовался только метод GET, список запросов для версии 1.1 представлен далее;
  2. URI определяет путь к запрашиваемому документу;
  3. Версия — пара разделенных точкой арабских цифр. Например: 1.0 . Определяет версию используемого HTTP-протокола. На данный момент наиболее актуальной является версия 1.1.

Для HTTP-ответа стартовая строка выглядит следующим образом:

HTTP/Версия КодСостояния Пояснение
  1. Версия — пара разделенных точкой арабских цифр как в запросе;
  2. КодСостояния — три цифры. По коду состояния определяется дальнейшее содержимое сообщения и поведение клиента;
  3. Пояснение — текстовое короткое пояснение к коду ответа для пользователя. Никак не влияет на сообщение и является необязательным.
854
0
Пожалуйста, авторизируйтесь, чтобы скачать архив с файлами урока