Первая страница

HTTP

коротко о протоколе
Онлайн: РИСОВАЛКИ | ИГРЫ | РЕЛАКС программы

Анатолий Опарин / апрель, 2018

Раньше, когда интернет был еще медленным, в адресной строке браузеров пользователь мог видеть аббревиатуру http, предваряющую адрес сайта. Сейчас большинство браузеров эту приставку скрывают, но это не значит, что ее нет. Есть даже https. Что же это такое?

Что и для чего

HTTP (англ. HyperText Transfer Protocol) – это протокол передачи гипертекста семейства протоколов TCP/IP. Другими словами, это соглашение между клиентом и сервером по формату запроса и ответа при обмене информацией и данными. Под клиентом, как правило, выступает обычный пользователь, а точнее его браузер. Под сервером, как правило, выступает сайт, а точнее программа-сервер, работающая на компьютере-сервере и принимающая запросы от клиентов.

Клиент обращается к серверу по URI (Uniform Resource Identifier). Это адрес файла на сервере. Это может быть также логический или абстрактный ресурс.

HTTP – протокол самого верхнего прикладного уровня согласно сетевой модели OSI (open systems interconnection basic reference model). Протокол для работы приложений.

Программное обеспечение

ПО для работы с HTTP разделяется на три класса программ:

  • Серверы. Принимают, обрабатывают запросы и отвечают на них. Основные приложения: Apache, Internet Information Services (IIS), nginx.
  • Клиенты. Отсылают запросы и интерпретируют ответы для пользователей. Основное приложение – это браузер. Также это могут быть менеджеры закачек, интернет-боты, ГИС…
  • Посредники (прокси). Они просто пропускают через себя трафик. Представители: Squid, UserGate, Multiproxy, Naviscope, nginx.
  • Структура протокола

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

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

    Пример стартовой строки (starting line) запроса:

    GET /wiki/HTTP HTTP/1.0

    Здесь указаны метод запроса, URI (адрес страницы, который указывается ниже в заголовке), протокол и его версия. Пример стартовой строки ответа:

    HTTP/1.0 200 OK

    Здесь указывается протокол, его версия и код состояния HTTP. Кодов много. Они делятся на 5 категорий: 1XX – для информации; 2XX – для указания успешного соединения; 3XX – для перенаправления; 4XX – для указания ошибки клиента; 5XX – для указания ошибки сервера.

    Заголовки

    Заголовки HTTP (headers) – это строки, содержащие разделенную двоеточием пару параметр-значение. В них может указываться самая разная информация, относящаяся к запрашиваемому ресурсу. Все заголовки разделяются на четыре основных группы:

  • Основные заголовки – должны включаться в любое сообщение клиента и сервера.
  • Заголовки запроса – используются только в запросах клиента.
  • Заголовки ответа – только для ответов от сервера.
  • Заголовки сущности – сопровождают каждую сущность сообщения.
  • Тело сообщения

    Тело HTTP-сообщения (message-body), если оно присутствует, используется для передачи тела объекта, связанного с запросом или ответом. В теле могут передаваться сущности разных форматов (текст, графика, видео…) как вместе, так и по отдельности. Так как HTTP-сообщение – это текст, то бинарные файлы передаются в закодированном виде.

    Сессии

    HTTP устанавливает отдельную TCP-сессию на каждый запрос. В более поздних версиях HTTP было разрешено делать несколько запросов в ходе одной TCP-сессии, но браузеры обычно запрашивают только страницу и включенные в нее сущности, а затем сразу разрывают TCP-сессию.

    Для сохранения данных предыдущей сессии при новом соединении клиента с сервером существуют механизмы, которые могут сохранять данные сессии или на стороне клиента, или на стороне сервера. В случае клиентского хранения браузер может их прочитать и передать на сервер в составе HTTP-запроса. Чтобы эти данные нельзя было подменить по пути к серверу, совместно с HTTP используется протокол SSL (Secure Sockets Layer) и это расширение HTTP уже называется HTTPS (HyperText Transfer Protocol Secure).

    Анатолий Опарин (по мотивам Википедии)

    Оглавление:

    Новости

    Объявление
    # графические редакторы онлайн - Аватан, Фотошоп...
    Творческой личности
    домой | живопись | графика | компьютерная графика | поделки | юные художники | темы | комментарии | перлы
    конкурсы | игры | релакс | рисовалки | учиться рисовать | детские карты Москвы | детские стихи | статьи | видео | поиск | обратная связь