Учебники

HTTP — Обзор

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

По сути, HTTP — это протокол связи на основе TCP / IP, который используется для доставки данных (файлы HTML, файлы изображений, результаты запросов и т. Д.) В World Wide Web. Порт по умолчанию — TCP 80, но можно использовать и другие порты. Он обеспечивает стандартизированный способ связи компьютеров друг с другом. Спецификация HTTP определяет, как данные запросов клиентов будут создаваться и отправляться на сервер, и как серверы отвечают на эти запросы.

Основные характеристики

Есть три основных функции, которые делают HTTP простым, но мощным протоколом:

  • HTTP является без установления соединения: HTTP-клиент, то есть браузер инициирует HTTP-запрос, и после того, как запрос сделан, клиент ожидает ответа. Сервер обрабатывает запрос и отправляет ответ, после чего клиент отключает соединение. Таким образом, клиент и сервер знают друг о друге только во время текущего запроса и ответа. Дальнейшие запросы сделаны на новое соединение, как клиент и сервер являются новыми друг для друга.

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

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

HTTP является без установления соединения: HTTP-клиент, то есть браузер инициирует HTTP-запрос, и после того, как запрос сделан, клиент ожидает ответа. Сервер обрабатывает запрос и отправляет ответ, после чего клиент отключает соединение. Таким образом, клиент и сервер знают друг о друге только во время текущего запроса и ответа. Дальнейшие запросы сделаны на новое соединение, как клиент и сервер являются новыми друг для друга.

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

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

HTTP / 1.0 использует новое соединение для каждого обмена запросами / ответами, где в качестве соединения HTTP / 1.1 может использоваться один или несколько обменов запросами / ответами.

Базовая Архитектура

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

Архитектура HTTP

Протокол HTTP — это протокол запроса / ответа, основанный на архитектуре клиент / сервер, где веб-браузеры, роботы, поисковые системы и т. Д. Действуют как клиенты HTTP, а веб-сервер выступает в качестве сервера.

клиент

HTTP-клиент отправляет запрос на сервер в форме метода запроса, URI и версии протокола, после чего следует сообщение, подобное MIME, содержащее модификаторы запроса, информацию о клиенте и возможный контент тела через соединение TCP / IP.

сервер

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