![](https://prime-ltd.su/wp-content/uploads/2020/12/0_LomlN9X9qOodvrqj-1024x530.jpg)
Аббревиатура HTTP с английского языка переводится как протокол, который нужен для передачи гипертекста. Именно его мы часто встречаем в интернет-адресах, и его наличие уже стало для нас привычным. Ранее им пользовались для того, чтобы принимать и отправлять документы, находящиеся внутри ссылок (с которых переходили на другие сайты и ресурсы).
На основании классификации OSI протокол HTTP относится к прикладному уровню.
![](https://prime-ltd.su/wp-content/uploads/2020/12/Bez-imeni-1-2.jpg)
Для лучшего понимания назначения HTTP и его роли для передачи данных следует разобрать простой пример.
Давайте представим, что вы в Интернете общаетесь с человеком из другой страны. Он будет отправлять вам сообщения на французском, но вы не сможете их понять – у вас недостаточный уровень владения языком. Для перевода вы используете словарь. Поняв смысл его сообщение, вы составляете от себя ответ и отправляете его уже на русском. Ваш собеседник получает его, но русским языком он не владеет также, как и вы французским. Что он делает? Правильно, тоже берет словарь и переводит ваше сообщение.
В Интернете протокол HTTP имеет схожую функцию, что и словарь в нашем примере. Он переводит содержимое страниц на сайтах и отображает их в символах, понятных пользователю.
Зачем нужен протокол HTTP
С помощью HTTP можно обмениваться информацией, используя модель клиент-сервер. Сначала клиент создает запрос, потом отправляет его к серверу. Сервер уже проводит обработку и анализ, формирует ответ и направляет его клиенту. Далее создается новая команда и круг начинается заново.
Протокол HTTP нужен для того, чтобы с его помощью информация перемещалась от пользователя к веб-ресурсам (браузерам). Именно на HTTP сегодня держится вся сеть. Он обеспечивает поток информации в нижние уровни (к SOAP и WebDAV) и он же задействован в качестве транспортирующего инструмента во многих программах. С его помощью данные могут передаваться в разных форматах (XML или JSON).
По умолчанию для отправки данных ПО клиента использует порт 80 TCP. HTTP может также работать через IP соединение (его можно задать вручную) и с другими портами, которые тоже иногда используются.
HTTP обязательно использует шифрование данных. Это симметричная схема, криптосистемы которой шифруют и расшифровывают информацию с помощью одного ключа.
Отличия от HTTPS
HTTPS является протоколом защиты, а не для передачи. То есть, HTTP – это самостоятельная система, а HTTPS дополняет ее для более безопасного использования (буква S в аббревиатуре означает safety). В HTTP передача данных остается незащищенной, поэтому он подойдет не для всех сайтов. Например, опасно использовать его для ресурсов, где размещаются платежные системы или большое количество персональных данных пользователей.
Передавать информацию без защиты HTTPS не всегда разумно. Злоумышленниками могут использоваться специальные программы для передачи данных, которые должны быть скрыты от несанкционированного доступа. Именно HTTPS обеспечивает надежную защиту информации от перехватывающего хакерского ПО. HTTPS работает с 443 портом – это еще одно его отличие от HTTP.
![](https://prime-ltd.su/wp-content/uploads/2020/12/http-vs-https-1024x613.jpg)
HTTP нужен для обработки и передачи данных, а HTTPS – для безопасности и шифрования. С помощью HTTPS делается авторизация на сайтах, где требуется высокий уровень защиты персональных данных.
Функциональность
У HTTP достаточно много функций, которые позволяют использовать протокол с разными расширениями. Сейчас используется спецификация 1.1: через нее создается заголовок Upgrade, позволяющий переключаться через различные протоколы при обмене информацией. Чтобы это сделать, пользователь отправляет на сервер сообщение с заголовком Upgrade. Когда серверу требуется переход на другой протокол, клиенту от него отправляется существующий запрос со специальным статусом.
Такая функция нужна для того, чтобы, например, делать обмен данных в WebSocket, где лишние HTTP-запросы исключены. Это значение должно быть отправлено пользователем в своем запросе серверу, и после получения соответствующего ответа информация идет уже через WebSocket.
![](https://prime-ltd.su/wp-content/uploads/2020/12/WebSockets2.jpg)