Каждый раз, когда вы посещаете страницу в интернете, ваш компьютер использует протокол передачи гипертекста (HTTP) для загрузки этой страницы. HTTP — это набор правил для передачи файлов: текста, изображений, звука, видео и других мультимедиа. HTTP работает поверх набора протоколов TCP/IP, которые составляют основу интернета.
Содержание:
1. Составляющие HTTP
2. Клиент
3. Веб-сервер
4. Прокси
5. Как работает HTTP-протокол
6. Основные характеристики HTTP-протокола
7. HTTP-протокол — простой, но многофункциональный
В HTTP-протоколе есть две разные роли: сервер и клиент. Запрос всегда инициирует клиент, а сервер на него отвечает. Клиентом может быть как браузер, так и, к примеру, поисковый робот, который просматривает страницы в интернете и индексирует их согласно релевантности ключевого запроса. HTTP основан на тексте — сообщения между клиентом и сервером по сути представляют собой фрагменты текста, хотя в теле сообщения могут быть другие элементы: видео, фото, аудио и т.д.
Каждый отдельный запрос отправляется на сервер, который обрабатывает его и предоставляет ответ. Между клиентом и сервером существует множество объектов, которые называются прокси-серверами. Они обеспечивают различные уровни функциональности, безопасности и конфиденциальности в зависимости от ваших потребностей или политики компании.
Итак, мы выяснили, что HTTP содержит три основных элемента:
Рассмотрим подробнее, что это такое и как они работают.
Клиент — это любой инструмент, который действует от имени пользователя. В основном эту роль выполняет веб-браузер, но помимо браузера это быть программы, используемые инженерами или веб-разработчиками для отладки своих приложений. Клиент всегда инициирует запрос, это никогда не делает сервер.
На другой стороне канала связи находится сервер, который обслуживает документ по запросу клиента. Хотя для пользователя сервер выглядит как одна виртуальная машина, на самом деле это может быть набор серверов, разделяющих нагрузку. С другой стороны, несколько серверов могут быть расположены на одной и той же машине. При HTTP/1.1 и заголовке Host они могут даже использовать один и тот же IP-адрес.
Прокси-серверы — это серверы, компьютеры или другие машины уровня приложений, которые находятся между клиентским устройством и непосредственно сервером. Они ретранслируют HTTP-запросы и ответы. Обычно для каждого взаимодействия клиент-сервер используется один или несколько прокси.
Веб-разработчики могут использовать прокси для следующих целей:
Шаг первый: направляем URL в браузер.
Когда мы хотим посмотреть веб-страницу, мы можем использовать разные типы девайсов: ноутбук, стационарный компьютер или телефон. Главное, чтобы на устройстве было приложение браузера. Пользователь либо вводит унифицированный указатель ресурса (URL) в поисковую строку браузера, либо переходит по ссылке с уже открытой страницы:
URL-адрес начинается с HTTP. Это сигнал браузеру, что ему необходимо использовать HTTP-протокол для получения документа по этому адресу.
Шаг второй: браузер ищет нужный IP-адрес.
Обычно IP-адреса содержат удобные и читабельные для человека названия доменов, например «highload.tech» или «wikipedia.org». Браузер использует преобразователь DNS для сопоставления домена с IP-адресом.
Шаг третий: браузер посылает HTTP-запрос.
Как только браузер определяет IP-адрес компьютера, на котором размещен запрошенный URL, он отправляет HTTP-запрос.
HTTP-запрос может состоять всего из двух строк текста:
GET/index.html HTTP/1.1 Host: www.example.com
Первое слово — это GET
. С его помощью мы показываем, что хотим получить информацию. Следующая часть указывает путь: /index.html
. Главный компьютер хранит содержимое всего веб-сайта, поэтому необходимо прописать, какую именно страницу нужно загрузить. Последняя часть первой строки указывает протокол и версию протокола: «HTTP/ 1.1». Во второй строке указывается домен запрошенного URL.
Кроме GET
в HTTP-протоколе существует еще два вида запросов. Разберем их отличия:
GET
. Сообщения, отправленные на сервер, содержат только URL-адрес. В конец URL-адреса можно добавить несколько дополнительных параметров данных. Сервер обрабатывает необязательную часть данных URL-адреса, если она есть, и возвращает результат (веб-страницу или элемент веб-страницы) в браузер.POST
. Сообщения помещают любые необязательные параметры данных в тело сообщения запроса, а не добавляют их в конец URL-адреса.HEAD
. Запросы работают так же, как и в случае GET
. Но вместо ответа с полным содержимым URL-адреса сервер отправляет обратно только информацию заголовка, которая находится в разделе HTML.Шаг четвертый: сервер отправляет HTTP-ответ.
Как только хост-компьютер получает HTTP-запрос, он отправляет клиенту ответ с содержанием и метаданными.
HTTP-ответ начинается аналогично запросу:
HTTP/1.1 200 ОК
Ответ начинается с указания версии HTTP-протокола — 1.1. Следующее число — это код статуса HTTP, в примере это число 200. Этот код значит, что запрашиваемый документ был успешно извлечен.
Следующая часть ответа HTTP — это заголовки. Они предоставляют браузеру дополнительные сведения и помогают ему отображать контент. Эти два заголовка являются общими для большинства запросов:
Content-Type: text/html; charset=UTF-8 Content-Length: 208
Content-type
сообщает браузеру, какой тип документа он отправляет обратно. Самый распространенный тип документа в интернете — это text/html
, потому что все веб-страницы представляют собой текстовые файлы HTML. Но есть и другие типы, например, изображения, видео, скрипты и все остальное, что можно загрузить в браузер.
Content-length
показывает длину документа в байтах, что помогает браузеру узнать, сколько времени потребуется для загрузки файла.
Кроме кода 200, в случае если загрузка страницы прошла успешно, есть еще несколько статусов:
PUT
или POST
.POST
и PUT
, когда данные не проходят проверку или имеют неправильный формат.PUT
для создания одного и того же ресурса дважды.Шаг пятый: отображается нужная веб-страница. После выполнения всех шагов, браузер получает всю необходимую информацию, для отображения запрошенного документа.
Есть три основные особенности, которые делают HTTP простым, но мощным протоколом.
HTTP — это основа всего интернета. Он быстрый, легкий и многофункциональный. Подводя итоги, рассмотрим преимущества и особенности HTTP-протокола.
Для закрепления материала можно посмотреть эти два образовательные видео:
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…