HTTP tutorial provides basic and advanced concepts of HTTP (Hyper Text Transfer Protocol). Our HTTP tutorial is developed for beginners and professionals.
The Server issues an HTTP Status Code in response to a request of the client made to the server. Status code is a 3-digit integer. The first digit of status code is used to specify one of five standard classes of responses. The last two digits of status code do not have any categorization role.
HTTP status codes are extensible. The application of HTTP is not required o understand the meaning of all the registered status code. A list of all the status codes is given below:
Протокол передачи гипертекста HTTP (Hypertext Transfer Protocol) – это протокол для распределённых информационных систем. Он был создан для обмена данными по сети Интернет.
HTTP базируется на протоколе TCP/IP, который используется для передачи данных (HTML страниц, результатов запросов, изображений и т.д.) по сети Интернет. По умолчанию, TCP использует 80-й порт, другие порты могут быть настроены дополнительно. T CP предоставляет стандартизированный способ взаимосвязи компьютеров между собой. Спецификация HTTP определяет, как именно запросы клиента должны быть построены и отправлен на сервер и то, как сервер должен отвечать на эти запросы.
HTTP является простым, но в то же время сильным протоколом благодаря трем свойствам:
HTTP/1.0 использует соединение для каждого цикла “запрос/ответ”.
HTTP/1.1 может использовать один или несколько циклов “запрос-ответ” внутри одного соединения.
В крайне упрощённой форме, архитектуру HTTP можно представить следующим образом:
Протокол HTTP основан клиент-серверной архитектуре, в которой браузер, “поисковик” и т.д. действует как “клиент”, а веб-сервер – как “сервер”.
Клиент HTTP отправляет запрос на сервер в виде метода запроса, URL и версии протокола, после которых идёт MIME сообщение, которое и содержит модификаторы запроса, информацию о клиенте и, возможно контент соединения TCP/IP.
Сервер HTTP отвечает на запрос строкой статуса, которая включает в себя версию протокола и код успешного выполнения, либо ошибки, после которого идёт сообщение MIME, содержащее информацию о сервере, мета-информацию о сущности и, возможно, контент самой сущности.
На этом мы заканчиваем введение в HTTP.
В следующей статье мы рассмотрим параметры протокола HTTP.
HTTP клиент посылает запрос на сервер в форме cсообщения-запроса, которое имеет следующий формат:
Рассмотрим каждый из этих элементов по отдельности.
Строка запроса начинается с токена метода, после которого следует URI запроса и версия протокола. Элементы отделяются друг от друга пробелами:
Строка-запроса = Метод (пробел) URI запроса (пробел) версия-HTTP (следующая строка)
Рассмотрим данный элемент более подробно
Данный элемент указывает метод, который должен быть вызван на стороне сервера по указанному идентификатору URI.
В HTTP существует восемь методов:
URI (Uniform Resource Identifier) – это идентификатор ресурса на который отправляется запрос. Ниже приведён наиболее часто встречающийся формат URI:
‘*’ используется когда HTTP запрос не относится к конкретному ресурсу, но к серверу. Используется только в случае, когда метод необязательно применять к ресурсу. Например,
OPTIONS * HTTP/1.1
абсолютный URI используется, когда HTTP запрос выполняется на прокси. Прокси запрашивается для передачи запроса из доступного кэша и возвращает ответ. Например:
GET http://www.proselyte.net/tutorials HTTP/1.1
GET /tutorials HTTP/1.1
Host: www.proselyte.net
Запрос полей заголовка
Поля заголовка позволяют клиенту передать дополнительную информацию о запросе и о себе самом серверу. Эти поля действуют как модификаторы запроса.
Ниже приведён список наиболее важных полей заголовка, которые могут быть использованы:
Если мы захотим реализовать своего собственного клиента и свой собственный веб-сервер, то мы можем создавать собственные поля заголовка.
Пример HTTP запроса
На этом мы заканчиваем изучение запросов HTTP.
В следующей статье мы рассмотрим HTTP ответы.
HTTP Tutorial
The Hypertext Transfer Protocol ( HTTP) is a protocol that applies to distributed, cooperative, hypermedia information systems. This has been the basis for World Wide Web (i.e. the internet) data communication since 1990. H TTP — это универсальный протокол без сохранения состояния, который можно использовать для других целей и с модификациями методов запроса, кодов ошибок и заголовков.
В руководстве по HTTP излагаются простые и расширенные концепции HTTP (протокола передачи гипертекста). Наше руководство по HTTP создано как для новичков, так и для профессионалов.
Что такое HTTP
Без установления соединения: HTTP без установления соединения. Если браузер открывается HTTP-клиентом, окно инициирует HTTP-запрос. Клиент отключается от сервера после отправки запроса и ожидает ответа. Когда ответ готов, сервер снова сбрасывает соединение и предоставляет ответ клиенту, после чего клиент разрывает соединение.
Независимые носители: HTTP является независимым носителем. H TTP может предоставлять данные любого типа, если все компьютеры могут их читать.
Без сохранения состояния: HTTP без сохранения состояния. Только во время текущего запроса клиент и сервер просто знают друг друга. Если соединение закрывается и два компьютера снова пытаются установить связь, ссылку следует рассматривать как соединение.
Потребности HTTP
Прежде чем изучать HTTP, вы должны иметь базовые знания о веб-концепциях, веб-браузерах, веб-серверах, клиентском программном обеспечении и серверной архитектуре.
Аудитория
Наше руководство по HTTP предназначено как для новичков, так и для профессионалов.
Проблемы
Уверяем вас, что, изучив учебник по HTTP, вы не столкнетесь с какими-либо трудностями. Но если вы обнаружите какую-либо ошибку, то вы можете опубликовать ее в нашем разделе в комментариях.
HTTP/0
Использование HTTP/0.9 в настоящее время встречается исключительно редко. Иногда его можно увидеть во встроенных системах как альтернативу tftp.
Без установления соединения: HTTP не поддерживает соединение. Когда HTTP-клиент открывает браузер, браузер инициирует HTTP-запрос. После выполнения запроса клиент отключается от сервера и ждет ответа. Когда ответ готов, сервер снова устанавливает соединение и доставляет ответ клиенту, после чего клиент разрывает соединение. Таким образом, и клиент, и сервер знают друг о друге только во время текущего запроса и ответа.
Независимость от носителя: HTTP не зависит от носителя. H TTP может доставлять любые данные, если два компьютера могут их прочитать.
Без сохранения состояния: HTTP не имеет состояния. Клиент и сервер знают друг о друге только во время текущего запроса. Если соединение закрывается, и два компьютера хотят соединиться снова, им необходимо заново предоставить друг другу информацию, и соединение обрабатывается как самое первое.
HTTP/1
HTTP/1.1 первоначально был указан в 1999 году в RFC 2616 (протокол) и RFC 2617 (аутентификация), но эти документы сейчас устарели и не должны использоваться в качестве ссылки:
Не используйте RFC2616. Удалите его со своих жестких дисков, из закладок и сожгите (или ответственно утилизируйте) все распечатанные копии.
— Марк Ноттингем, председатель рабочей группы HTTP
Актуальная спецификация HTTP/1.1, соответствующая сегодняшней реализации HTTP, находится в новых RFC 723x:
Среди других функций добавлен HTTP/1.1:
HTTP/1.1 пытался внедрить конвейерную обработку, которая позволяла HTTP-клиентам сокращать задержку запроса-ответа, отправляя несколько запросов одновременно, не дожидаясь ответов. К сожалению, эта функция так и не была правильно реализована в некоторых прокси-серверах, из-за чего конвейерные соединения прерывали или меняли порядок ответов.
HTTP/2
HTTP/2 (RFC 7540) изменил формат передачи данных HTTP с простых текстовых заголовков запросов и ответов на формат двоичных данных, отправляемых в кадрах. H TTP/2 поддерживает сжатие заголовков (HPACK).
Это уменьшило накладные расходы на запросы и позволило получать несколько ответов одновременно по одному TCP/IP-соединению.
Несмотря на большие изменения в формате данных, HTTP/2 по-прежнему использует HTTP-заголовки, а запросы и ответы могут быть точно преобразованы между HTTP/1.1 и 2.
HTTP/1.0 был описан в RFC 1945.
HTTP/1.0 не имеет некоторых функций, которые сегодня де-факто требуются в Интернете, таких как заголовок Host для виртуальных хостов.
Однако HTTP-клиенты и серверы иногда по-прежнему заявляют, что используют HTTP/1.0, если у них неполная реализация протокола HTTP/1.1 (например, без фрагментарного кодирования передачи или конвейерной обработки), или совместимость считается более важной, чем производительность (например, когда подключение к локальным прокси-серверам).

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