Прежде чем говорить, что такое HTTP, разберём наглядный пример. Представьте, что друг в любой социальной сети или мессенджере прислал ссылку. Вы нажали на неё, и браузер отобразил на экране веб-страницу, запрашиваемую вами. Всё произошло в одно мгновение. Приложение, открывшее страницу, совершило магию перед вами благодаря HTTP.
Если бы разработчики интернета не придумали HTTP-протокол, то ваш компьютер не смог бы понять, что вы хотите от него. Устройства не смогли бы общаться между собой, да и вообще не было бы привычного интернета.
Что представляет собой HTTP
Аббревиатуру HTTP расшифровывают как HyperText Transfer Protocol. В переводе с английского эти слова означают «протокол передачи гипертекста». Гипертекстовый протокол — это набор правил. Благодаря ему ПК пользователя и сервер могут взаимодействовать между собой.
Интерфейс или API большинства программных продуктов использует HTTP-стандарт для передачи данных.
История появления HTTP
Благодарить за появление функций, которые связывают современные гипертексты, нужно Тима Бернерса Ли. Он в 1991 году разрабатывал концепцию Всемирной паутины. Так появилась первая версия HTTP 0.9. Она не удовлетворяла запросам пользователей, могла пересылать только тексты и не умела проигрывать аудио- и видеофайлы.
Кстати, на тот момент в электронной почте уже можно было обмениваться аудиофайлами и фотографиями.
В 1995 появился HTTP 1.0. Эта версия также была текстовой, но уже включала в себя заголовки клиента и сервера. Как и предшественник, этот протокол работал поверх протокола TCP. Появились методы HEAD и POST, по которым компьютер понимал, что за сообщение и что с ним делать.
В 1997 году появилась экспериментальная версия HTTP NG. Усложнённая архитектура, которая была несовместима с предыдущей версией, свела эту разработку на нет. У специалистов не получилось бесшовно соединить работу веб-страниц на HTTP 1.0 и HTTP NG.
Важно! Архитектура версии гипертекстового протокола «Новое поколение» предполагала реализацию трёх протоколов: транспортного WEBMux, передачи сообщений Binary Wire, прикладного — e-commerce.
HTTP 1.1 расширил семантику предыдущих версий. Разработчики создали его в 1999 году. И уже в XXI веке, в 2015 году, появилась версия 2, потом 3 на основе UDP вместо TCP. Протокол эволюционирует, расширяется и усложняется. Но принцип работы практически остаётся неизменным.
Принцип работы гипертекстового протокола
Процесс работы HTTP:
-
Пользователь прописывает в адресной строке браузера URL (Uniform Resource Locator), на которую хочет попасть, и нажимает Enter.
-
Браузер формирует User-Agent, или строку с информацией о ОС ПК: тип устройства, язык, IP-адрес и другие данные. Он отправляет её на сервер. Отправка осуществляется другими протоколами, такими как TCP/IP.
-
Сервер получает запрос и создаёт на него ответ. Им будет сформирована стартовая строка, http-заголовки. Тело будет состоять из веб-страницы, к которой обратился пользователь.
-
Компьютер-клиент расшифровывает данные, полученные с сервера. Он отображает их на экране компьютера пользователя. Таким образом пользователь получает запрошенную готовую веб-страницу.
Сам протокол не содержит статических данных. Он не помнит, что отсылает и принимает. Поэтому для поддержки состояния сессии сервер использует HTTP-Cookie. Он отсылает клиенту фрагмент данных, который сохраняется в браузере и отправляется каждый раз по запросу сервера.
Куки прописывают в заголовке HTTP для запроса Authorization, чтобы пользователь мог входить на сайт без повторного ввода логина и пароля.
Для создания этой страницы веб-разработчик использует движки, фреймворки, HTML-язык, CSS-вёрстку.
Для чего используется HTTP
Со стороны разработчиков протокол передачи информации нужен для стандартизации. Действуя по одному стандарту, компьютеры могут расшифровывать данные и отправлять зашифрованную информацию другим электронно-вычислительным машинам. Устройства могут обмениваться понятными друг другу данными, не вызывая коллизий в трафике.
На стороне пользователей HTTP-протокол помогает компьютеру и серверу начать и завершить передачу данных между друг другом. Он даёт людям двойную пользу:
-
Компании, занимающиеся продвижением в интернете, могут создавать контент, чтобы привлечь покупателей, и заливают его на сервер.
-
Покупатели в поисковике забивают информацию о продукте, который они хотели бы купить. Браузер на ПК пользователя создаёт HTTP-запрос и получает HTTP-ответ от сервера. Пользователь сможет прочитать информацию о товаре, узнать отзывы тех, кто уже приобрёл его.
-
Запрос сразу поступает на сервер либо проходит прокси-серверы при использовании VPN.
Благодаря HTTP вы можете купить продукцию компании, которая позаботилась и создала контент, раскрывающий преимущества и пользу товара. Также компании могут зайти на наш сайт МТС Exolve и заказать какие-либо продукты.
Глаголы гипертекстового протокола
Методы, или их ещё называют иногда HTTP-глаголами, нужны для того, чтобы ПК клиента и сервер сразу могли определить суть сообщения. Существует пять популярных методов.
HTTP-глагол |
Для чего используют |
Информация внутри него и другие особенности |
GET |
Запрос информации с сервера |
Контент по запросу пользователя. Метод не изменяет данные. Запрос остаётся в истории браузера. Присылает код состояния 200, если ресурс есть, 404 — если он отсутствует по запрашиваемой ссылке |
POST |
Отправление информации на сервер. Создание или обновление запрашиваемого ресурса. Информацию для метода указывают в теле запроса |
Фоновые процессы, отчёт о результатах. Запрос не может быть сохранён в закладках |
PUT |
Отправление информации на сервер, обновление данных |
Изменение существующей записи. Не требует от сервера ответа |
PATCH |
Частичное изменение сайта |
Инструкция по обновлению сайта |
DELETE |
Запрос на удаление запрашиваемого ресурса |
Удаляет все данные |
Есть и другие HTTP-глаголы. Однако их используют не так часто. Один из примеров — OPTIONS. Этот глагол возвращает описание страницы: методы, вид данных, находящихся в ней.
Статусы, которые получает браузер пользователя от сервера:
-
200 OK — информация получена.
-
201 Created — успех запроса. Этот статус часто используют HTTP-глаголы PUT или POST.
-
300 Moved Permanently — изменённый URL-адрес.
-
400 Bad Request — информация не может быть проверена или создана в неверном формате.
-
401 Unauthorized — указывает на отсутствие авторизации.
-
404 Not Found — отсутствие страницы по этому адресу.
-
405 Forbidden — указывает на отсутствие поддержки метода для запроса.
-
409 Conflict — указывает на конфликт. Такое бывает, например, при создании двойных одинаковых данных в одном методе PUT.
-
500 Internal Server Error — указывает на ошибку на стороне сервера.
Преимущества и недостатки HTTP
Плюсы гипертекстового протокола:
-
Возможность расширения. С появления первого протокола он успел обрасти множеством методов.
-
Подробная документация, написанная на разных языках.
-
Универсальность. HTTP используют все и везде.
Из минусов отмечают:
-
Нет навигации. Нет возможности запроса всех доступных ресурсов.
-
Нет поддержки распределения. При нагрузке на сервер начинаются проблемы со скоростью ответов на запросы.
Есть ещё одна проблема — это отсутствие безопасности. Но в последние годы разработчики её решили, создав HTTPS.
Чем отличается HTTP от HTTPS
Гипертекстовый протокол не защищает информацию, которую передаёт. Например, если один из хостов (от английского host — «узел») подпадает под действия хакера, то вся информация будет перехвачена им. Поэтому разработчики создали протокол, умеющий зашифровывать данные, — HTTPS.
Все данные, отправляемые при общении двух машин друг с другом, зашифрованы сертификатом SSL/TLS. Две машины, общающиеся между собой по HTTPS, используют один общий ключ. Злоумышленник не сможет перехватить данные, так как ключ, который открывает доступ к ним, находится на сервере и хосте клиента. Эти ключи называют цифровыми сертификатами.
Цифровой сертификат идентифицирует главный компьютер, к которому обращается клиент. Сертификат находится на любом сайте, с которым клиент устанавливает защищённое соединение.
Определить такие сайты просто. Они имеют иконку замка слева в адресной строке браузера. HTTPS защищает данные от атак типа man-in-the-middle. Информацию передают через порт TCP 443.
Например, сайт МТС Exolve тоже работает по HTTPS. Вы можете увидеть замочек в адресной строке.
Это значит, что используется защищённое соединение. Все ваши данные, которые вы отправите при регистрации, будут надёжно защищены от злоумышленников.
Сегодня этот вид протокола поддерживается всеми популярными браузерами.
Заключение
Ни один сайт не будет работать без использования HTTP и HTTPS. Создавая ресурс, лучше всего использовать защищённые стандарты соединения, чтобы избежать хакерских атак. И несмотря на некоторые существенные недостатки гипертекстового протокола, замену ему пока ещё не нашли.