Здравствуйте, уважаемые посетители сайта ZametkiNaPolyah.ru. Продолжим знакомиться с протоколом HTTP в рубрике Серверы и протоколы и ее разделе HTTP протокол. Данная запись познакомит вас с терминами HTTP протокола, по крайней мере с теми, которые выделены в стандарте HTTP.

Для изучения HTTP стандарта нам необходимо понимать терминологию HTTP. Предлагаю сразу ознакомиться со всеми терминами HTTP, чтобы потом к ним не возвращаться, благо, терминов HTTP не так уж и много:

  • HTTP соединение (HTTP connection). Виртуальный канал транспортого уровня модели сетевого взаимодействия OSI, установленный между двумя программами с целью связи.
  • Сообщение HTTP (message HTTP). Основной модуль HTTP связи, состоящей из структурной последовательности октетов (байтов), соответствующих синтаксису HTTP и передаваемых по соединению.
  • HTTP запрос (HTTP request). Любое HTTP сообщение, содержащее запрос, запрос можно определить по наличию HTTP метода. Запрос отправляет клиентское приложение с целью получения услуги от сервера.
  • HTTP ответ (response) любое HTTP сообщение, содержащее ответ в форме, удовлетворяющей стандарт HTTP, ответ можно определить по наличию кода состояния. Ответы посылают серверные приложения, например, веб-сервер Apache, ответы содержат служебную информацию, по которой клиент вид, как сервер понял запрос, а также в ответе может присутствовать объект, в котором содержится полезная для человека информация.
  • HTTP ресурс (HTTP resource). Сетевой объект данных или сервис, который может быть идентифицирован URI (более подробно смотри запись URI в HTTP). Ресурсы могут быть доступны в нескольких представлениях (например на нескольких языках, в разных форматах данных, иметь различный размер, иметь различную разрешающую способность) или различаться по другим параметрам.
  • HTTP объект (HTTP entity). Информация, передаваемая в качестве полезной нагрузки запроса или ответа. Объект состоит из метаинформации в форме полей заголовка объекта и содержания в форме тела объекта.
  • HTTP представление (HTTP representation). Объект включенный в ответ, и подчиняющийся обсуждению содержимого (Content Negotiation). Может существовать несколько представлений, связанных со специфическими состояниями ответа.
  • Обсуждение содержимого (content negotiation). Механизм для выбора соответствующего представления во время обслуживания запроса. Представление объектов в любом ответе может быть обсуждено (включая ошибочные ответы). В процессе обсуждения клиент и сервер договариваются о том, как и в каком виде они будут обмениваться информацией друг с другом вплоть до версии HTTP протокола, которая будет использована для обмена.
  • HTTP вариант (HTTP variant). Ресурс может иметь одно, или несколько представлений, связанных с ним в данный момент. Каждое из этих представлений называется «вариант». Использование термина «вариант» не обязательно подразумевает, что ресурс подчинен обсуждению содержимого.
  • HTTP клиент (HTTP client) программа, которая устанавливает соединения с целью посылки запросов.
  • HTTP Агент пользователя (HTTP user agent). Клиент, который инициирует запрос. Как правило браузеры, редакторы, роботы (spiders), или другие инструментальные средства пользователя.
  • HTTP сервер (HTTP server). Приложение, которое слушает соединения, принимает запросы на обслуживание и посылает ответы. Любая такая программа способна быть как клиентом, так и сервером; наше использование данного термина относится скорее к роли, которую программа выполняет, создавая специфические соединения, нежели к возможностям программы вообще. Аналогично, любой сервер может действовать как первоначальный сервер, прокси-сервер, шлюз, или туннель (tunnel), изменяя поведение, основываясь на характере каждого запроса.
  • Первоначальный сервер HTTP (origin server HTTP). Сервер, на котором данный ресурс постоянно находится или должен быть создан.
  • Прокси-сервер (proxy server HTTP). Программа-посредник, которая действует и как сервер, и как клиент с целью создания запросов от имени других клиентов. Запросы обслуживаются прокси-сервером, или передаются им, возможно с изменениями. Прокси-сервер должен удовлетворять требованиям клиента и сервера, согласно этой спецификации.
  • Шлюз (gateway). Сервер, который действует как посредник для некоторого другого сервера. В отличие от прокси-сервера, шлюз получает запросы в качестве первоначального сервера для запрошенного ресурса; клиент запроса может не знать, что он соединяется со шлюзом.
  • Туннель (tunnel). Программа-посредник, которая поддерживает соединение. Один раз созданный, туннель не рассматривается как часть HTTP связи, хотя туннель, возможно, был инициализирован запросом HTTP. Туннель прекращает существовать, когда оба конца соединения закрываются.
  • Кэш (cache). Локальная память, в которой программа хранит сообщения ответов, и в которой располагается подсистема, управляющая хранением, поиском и стиранием сообщений. Кэш сохраняет ответы, которые могут быть сохранены, чтобы уменьшить время ответа и загрузку сети (траффик) при будущих эквивалентных запросах. Любой клиент или сервер может иметь кэш, но кэш не может использоваться сервером, который действует как туннель.
  • Кэшируемый (cachable). Ответ является кэшируемым, если кэшу разрешено сохранить копию ответного сообщения для использования при ответе на последующие запросы. Даже если ресурс кэшируем, могут существовать дополнительные ограничения на использование кэшем сохраненной копии для сходного запроса.
  • Непосредственный (first-hand). Ответ считается непосредственным, если он приходит непосредственно от первоначального сервера без ненужной задержки, возможно через один или несколько прокси-серверов. Ответ также является непосредственным, если его правильность только что была проверена непосредственно первоначальным сервером.
  • Точное время устаревания (explicit expiration time). Время, определенное первоначальным сервером и показывающее кэшу, когда объект больше не может быть возвращен кэшем клиенту без дополнительной проверки правильности.
  • Эвристическое время устаревания (heuristic expiration time). Время устаревания, назначенное кэшем, если не указано точное время устаревания.
  • Возраст (age). Возраст ответа — время, прошедшее с момента отсылки, или успешной проверки ответа первоначальным сервером.
  • Время жизни (freshness lifetime). Отрезок времени между порождением ответа и временем устаревания.
  • Свежий (fresh). Ответ считается свежим, если его возраст еще не превысил время жизни.
  • Просроченнный (stale). Ответ считается просроченным, если его возраст превысил время жизни.
  • Семантически прозрачный (semantically transparent). Говорят, что кэш ведет себя «семантически прозрачным» образом в отношении специфического ответа, когда использование кэша не влияет ни на клиента запроса, ни на первоначальный сервер, но повышает эффективность. Когда кэш семантически прозрачен, клиент получает точно такой же ответ (за исключением промежуточных (hop-by-hop) заголовков), который получил бы, запрашивая непосредственно первоначальный сервер, а не кэш.
  • Указатель правильности (validator). Элемент протокола (например, метка объекта или время последней модификации (Last-Modified time)), который используется, чтобы выяснить, является ли находящаяся в кэше копия эквивалентом объекта.

Мы ознакомились со всеми терминами HTTP протокола, по крайней мере с теми терминами, которые приведены в стандарте HTTP. Если в рамках изучения протокола HTTP нам будут встречаться новые термины, мы обязательно их разберем.

Не забывайте делиться своим мнением в комментариях и оставлять отзывы, это поможет сделать нашу работу лучше, с уважением ZametkiNaPolyah.ru!

Возможно, эти записи вам покажутся интересными


Выберете удобный для себя способ, чтобы оставить комментарий

This article has 1 comment

  1. Женька Reply

    Полезный справочник новичку с пояснениями, чтобы не утонуть в объеме терминов и определений, которые встречаютс в HTTP.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Loading Disqus Comments ...