Посмотрите наши лучшие предложения ⇛ домены со скидками... и самые дешевые домены...

HTTP

Протокол передачи гипертекста (HTTP) — это протокол переноса данных по сети. Он применяется преимущественно для того, чтобы загружать веб-страницы из всемирной паутины (интернет) в программу просмотра сети.

HTTP принадлежит к так называемому прикладному уровню учрежденных сетевых моделей. К прикладному уровню обращаются приложения, в случае HTTP — это программа просмотра сети — браузер. В модели слоев ISO/OSI прикладной уровень соответствует слоям 5–7.

HTTP — это протокол без состояния.

Благодаря расширению методов запроса, информации заголовка и кода статуса HTTP не ограничен гипертекстом, а используется все больше для обмена любыми данными. Для коммуникации HTTP предоставлен надежный транспортный протокол. Для этого почти во всех случаях используется TCP.

Протокол был разработан в 1989 году Роем Филдингом и Тимом Бернерс-Ли вместе с унифицированным локатором ресурсов и языком разметки гипертекста, после чего была создана всемирная паутина (интернет).

Строение

Коммуникационные единицы в HTTP между клиентом и сервером обозначаются как сообщения, которые бывают двух видов: запрос (engl. Request) от клиента к серверу и ответ (engl. Responce) как реакция на это от сервера к клиенту.

При этом каждое сообщение состоит из 2 частей, заголовка сообщения (engl. Message Header) и тела сообщения (engl. Message Body). Заголовок сообщения содержит информацию о теле сообщения, как например, использованные кодировки или смысловой тип, чтобы он мог правильно интерпретироваться получателем. Наконец, тело сообщения содержит полезные данные.

Принцип работы

Если на веб-странице активируется ссылка на унифицированный локатор ресурсов http://www.example.net/infotext.html, то запрос направляется к компьютеру с именем хоста www.example.net и отправляется обратно на ресурс /infotext.html.

При этом имя www.example.net благодаря протоколу сервера DNS преобразовывается в IP-адрес. Для переноса требование HTTP GET посылается через TCP на стандартный порт 80 HTTP-сервера.

Версии протоколов

На сегодняшний день используются 2 версии протокола, HTTP/1.0 и HTTP/1.1. При HTTP/1.0 новое подключение TCP формируется перед каждым запросом и снова закрывается после переноса ответа по умолчанию сервером. При HTTP/1.1 клиент дополнительным элементом заголовка (Keep-Alive) может выразить желание не прерывать подключения, чтобы оставить возможность использовать подключение снова (persistent connection). Поддержка на странице сервера однако опциональна и может создавать проблемы в сочетании с Proxies. Посредством организации конвейера HTTP в версии 1.1 могут посылаться несколько запросов и ответов за подключение TCP. Дополнительно в версии 1.1 прерванный запрос может быть возобновлен.

При HTTP информация по более ранним требованиям пропадает (протокол без состояния). Однако в Cookies в информации заголовка приложения могут реализоваться, информация статуса (элементы пользователя, корзинки товаров) может изменяться. Вследствие этого становятся возможными приложения, которые требуют свойств статуса или сеанса. Также возможна аутентификация пользователя. Обычно может читаться информация, которая запрашивается по HTTP, на всех компьютерах и трассировщиках, которые имеются в сети. Однако запрос может происходить через HTTPS закодировано.

Возможность для применения HTTP/1.1 в беседах - это применение универсального международного почтового расширения multipart/replace, у которого программа просмотра по-новому формирует содержание окна программы просмотра после передачи кода Boundary и повторного поля заголовка контента Length, а также нового поля заголовка литеры контента.

С HTTP/1.1 также возможно переносить данные сервера наряду с выборкой данных. С помощью метода PUT дизайнеры сети могут публиковать ее страницы непосредственно на сервере сети посредством WebDAV, и с методом DELETE возможно также удалять данные сервера. Кроме того, HTTP/1.1 предлагает метод TRACE, благодаря которому может быть прослежен путь к серверу сети и проверено, правильно ли переносятся туда данные.

Методы запросов HTTP

GET

Это самый употребляемый метод. С помощью GET ресурс (например, файл) требуется сервером по указанию URI. Как аргументы в URI также могут быть переданы данные на сервер. Длина URI ограничена в зависимости от сервера и должна быть не больше 255 байтов.

POST

Посылает на сервер неограниченные, в зависимости от физического оборудования используемого сервера, данные для следующей обработки. В отличие от метода GET, метод POST не считается идемпотентным, то есть многократное повторение одних и тех же запросов POST может возвращать разные результаты (например, после каждой отправки комментария будет появляться одна копия этого комментария). Сообщение ответа сервера на выполнение метода POST не кэшируется.

HEAD

Поручает серверу, чтобы он посылал те же самые заголовки HTTP как при GET, но в ответе сервера отсутствует тело. Запрос HEAD обычно применяется для извлечения метаданных, проверки наличия ресурса (валидация URL) и чтобы узнать, не изменился ли он с момента последнего обращения.

PUT

Применяется для загрузки содержимого запроса на указанный в запросе URI.

DELETE

Удаляет указанный ресурс. Сегодня это едва ли реализуется, так же, как и PUT, или выключено в стандартной конфигурации серверов сети, тем не менее, и то и другое достигает нового значения благодаря сервису RESTful и расширению HTTP WebDAV.

TRACE

Поставляет запрос назад так, как сервер принял их. Таким образом можно проверить, был ли запрос изменен на пути к серверу и каким образом -– рационально для отладки подключений.

OPTIONS

Поставляет список параметров и поддерживаемых сервером методов и функций.

CONNECT

Реализуется серверами прокси, которые могут предоставлять в распоряжение SSL.