Незащищенный протокол нттр что это
Незащищенный протокол HTTP – что значит и как исправить
Пользователи, выходящие в интернет через Яндекс браузер начали замечать значок, при наведении на который выскакивает надпись – На сайте используется незащищенный протокол HTTP. Отображается оповещение в красном предупреждающем треугольнике рядом с адресной строкой. Понять чем грозит переход на такой веб-ресурс и что делать рассмотрим в статье.
Что значит “на сайте используется незащищенный протокол HTTP”
Незащищенный протокол HTTP означает, что данные на сайте передаются без шифрования и не имеют защиты от действия третьих лиц. HTTP это устаревший протокол передачи данных, не так давно им пользовалось большинство веб-ресурсов. Необходимость же в разработке улучшенного протокола HTTPS возникла в связи с выросшим уровнем хакерских атак. Использование HTTPS необходимо при ведении расчетов через мобильный банк, совершении покупок онлайн, пользовании социальной сетью. Иными словами на всех интернет-площадках, где Вы оставляете свои данные.
Предупреждение об использовании сайтом HTTP выводится с помощью функции защиты Protect, находящейся в Яндекс браузере.
– контролирует безопасность активных на ПК и телефоне Wi-Fi сетей;
– проверяет скачанные из сети файлы;
– защищает в сети Ваши логин-пароли, платежи, мобильный банкинг;
– блокирует доступ рекламы с шокирующим контентом и спамом
Опасно ли заходить на сайт с незащищенным протоколом
Если Вы просто просматриваете там информацию, например читаете посты и не вводите свои личные данные (номер телефона, e-mail, не осуществляете оплату) опасности нет.
Как исправить в Яндекс браузере
Убрать значок “незащищенный протокол” нельзя. На сайтах, использующих устаревший http он так и будет отображаться. Убрать его может только владелец сайта. Для этого ему нужно уточнить у своего хостинга условия установки SSL-сертификата. Какой движок использовался при создании сайта роли не играет, значок может появляться на сайтах, сделанных и на wordpress, и на tilda, и на любых других.
Иногда Яндекс браузер может полностью блокировать возможность перейти на сайт. Открытие такой небезопасной страницы возможно после отключения опций в Protect.
Чтобы зайти в настройки Протекта пишем в адресную строку: browser://protect/
Открывается страница – снимаем все галочки и перезагружаем Яндекс браузер.
Все же подумайте хорошо, прежде чем сделать это. Отключением опций безопасности Вы подвергаете свои данные потенциальной угрозе.
Бывает, что все сайты помечаются значком незащищенного протокола. Причиной могут быть вирусы внутри компьютера или неправильная настройка даты/времени.
Откройте настройку даты и времени в Windows и проверьте правильный ли часовой пояс там выставлен.
Затем просканируйте ПК антивирусом.
Для достижения максимального результата можно еще сбросить настройки Яндекс браузера.
Незащищенный протокол HTTP как исправить
Некогда современный протокол HTTP уже давно не является безопасным и не способен предотвратить участившиеся случаи перехвата данных пользователей оставлявших свои данные на сайтах с этим протоколом. Почему незащищенный протокол http устарел и как это исправить.
Протокол HTTP выполняет функцию обмена данными между ПК или мобильными гаджетами пользователей и сервером. Он напрямую связан с загрузкой страниц в браузере. Что это такое, легко понять на простом примере. При отправке сообщений в социальных сетях, включении видео или просто при загрузке любого сайта, компьютер пользователя направляет запрос серверу и принимает от него ответ. Обмен сведениями как раз и осуществляется с помощью протокола HTTP.
Но при всей востребованности и удобстве использования, у протокола есть существенный недостаток:
данные перенаправляются в открытом и незащищенном виде. Обмен информацией выполняется через промежуточные соединения и если даже одно из них используется сторонним пользователем, то сведения могут быть перехвачены и задействованы в противоправных целях. Как исправить незащищенный протокол HTTP, расскажу дальше.
Разновидности протоколов
Прежде чем приступить и исправить незащищенный протокол HTTP нужно понять, какие разновидности существуют. Действующий HTTP 1.1. используется с 1999 года и в сегодняшних условиях уже не может обеспечивать высокую скорость обмена.
Современные сайты используют множество элементов: скрипты на Javascript, стили на CSS, flash-анимацию и т.д. Для передачи таких данных создается несколько соединений, что замедляет скорость выполнения операций.
Решение проблемы – переход на новый протокол HTTP/2, ускоряющий загрузку ресурсов за счет нескольких особенностей:
Что такое протокол HTTPS?
Исправить незащищенный протокол HTTP можно с помощью расширения S, которое делает весь пересылаемый массив сведений недоступным для сторонних лиц. Защиту пересылки данных по HTTPS обеспечивает протокол SSL/TLS, кодирующий все сведения.
Особенности протокола:
В ходе формирования соединения через HTTPS создается ключ, известный только компьютеру пользователя и интересуемому серверу. Так зашифровываются все данные. Доступ к ним практически невозможен, т.к. ключ состоит из более 100 символов.
Платный и бесплатный ssl сертификат для сайта
Платные варианты ssl сертификата
Прежде всего, нужно выбрать SSL-сертификат. Он бывает 2-х видов. Domain Validation SSL активируется после того как пользователь подтвердит владение доменом через электронный адрес, запись в DNS или хэш-файл. Такой вариант оптимально подходит для личного блога или небольшого оффлайнового бизнеса.
Business Validation –более надежный тип, поскольку клиент подтверждает факт связи организации с сайтом. Для этого в верификационный центр направляется пакет бумаг, а проверка осуществляться с помощью звонка на личный мобильный номер телефона пользователя.
Бесплатно
SSL-сертификат, выдаваемый центром сертификации Let`s Encrypt, партнерами или посредниками. И такими посредниками сейчас выступают многие хостинг-провайдеры.
На хостинге, услугами которого пользуюсь я бесплатные сертификаты можно устанавливать путем нажатия одной кнопки.
Как получить платный ssl сертификат
Отвечая на вопрос, как исправить незащищенный протокол HTTP, пользователю нужно сделать запрос CSR на получение сертификата и его активации.
Для этого необходимо указать:
Запрос CSR направляется в центр верификации. В итоге пользователь получает SSL и файл с персональным ключом. Его нельзя передавать сторонним лицам и выкладывать в сеть.
Для получения бесплатного ssl сертификата на своем хостинге, никаких данных не нужно.
Как исправить ошибки после перехода с http на https
При установке любого сертификата на уже работающий сайт, следует учесть что все существующие ссылки будут не действительны. Как на существующие посты и картинки, так и на ссылки ведущие на сторонние ресурсы. И как следствие, мы получаем ошибку 404, что плохо сказывается на SEO.
На блоге я уже публиковал материал по данной теме и чтобы не было дублирования контента, рекомендую посмотреть практическое видео по исправлению ошибок протокола https на блоговом движке wordpress.
Для других cms-систем opencart, joomla и прочих, так же видео будет полезно.
Незащищенный протокол HTTP — что это, как исправить в Яндекс Браузере
С недавнего времени, при посещении некоторых сайтов через Яндекс Браузер, пользователи начали наблюдать довольно странное предупреждение — «На сайте используется незащищенный протокол HTTP» которое выскакивает в красном предупреждающем треугольнике. Многие пользователи воспринимают это уведомление как проблему в их браузере или даже компьютере. Однако, это не совсем так.
В статье мы расскажем, почему Яндекс Браузер предупреждает о незащищенном протоколе HTTP и что это означает для вебмастеров и посетителей сайтов. Также мы подскажем, каким образом убрать эту отметку.
Предупреждение о незащищенном протоколе HTTP в Яндекс Браузере
Что значит незащищенный протокол HTTP?
Незащищенный протокол HTTP — это особое предупреждение, которое говорит пользователю, что передача данных на этом сайте не имеет шифрования и не защищена от действия третьих лиц. Уведомление выводится из-за активной опции Protect (Защиты), которая вшита в Яндекс Браузер по умолчанию.
Основная цель технологии Protect — защитить весь процесс вашего серфинга в интернете. Защитная технология от Яндекса сканирует посещаемый вами сайт и если на нем обнаруживаются фатальные проблемы (например, вирусные скрипты) — блокирует к нему доступ. Конечно же, Протект объяснит вам суть выявленной опасности. Помимо этого, такая защита контролирует следующие аспекты:
Но давайте поговорим о незащищенных протоколах, которые могут испугать неосведомленных пользователей. Вы должны понимать, когда HTTP опасен, а когда в нем нет особой нужды.
Итак, HTTP это устаревший протокол передачи данных, который до недавнего времени активно использовали большинство web-порталов. Но с ростом технологий стал активно расти и уровень хакерских атак, которые теперь без особых проблем могли перехватить ваши данные. Перехват информации осуществлялся в момент передачи от пользователя к серверу. В связи с этим, был разработан более улучшенный протокол HTTPS.
Защищенный протокол HTTPS имеет ряд преимуществ перед HTTP
Улучшенный HTTPS имеет несколько уровней безопасности и в обязательном порядке шифрует весь передаваемый трафик от клиента к серверу. Такое шифрование (TSL/SSL) играет важнейшую роль при пользовании мобильным банком, онлайн-магазином или той же социальной сетью. Вообщем — все ресурсы, на которых вы вводите свои данные, должны иметь HTTPS (он обозначается зеленым замком).
Яндекс и Google являются самыми крупными игроками в Рунете, поэтому они первыми порекомендовали владельцам сайтов переходить на шифрованный протокол. Для страниц, где требуется ввод ваших данных, рекомендации имеют обязательный характер. Для остальных же сайтов пока нет четких правил и настоятельных требований убрать устаревший протокол. Однако Яндекс Браузер ввел для отстающих сайтов предупреждение, которое выливается в то самое «На сайте используется незащищенный протокол HTTP».
Опасно ли заходить на такой сайт?
Если вы посещаете обычный статейник или блог, в поисках ответа на актуальный вопрос — то никакой опасности для вас там не имеется. По факту, все выглядит так: вы зашли, просмотрели нужную вам информацию и закрыли страницу. Если же вы открываете условный онлайн-магазин, где будете вносить свои телефоны, e-mail или проводить оплату, а на нем нет значка HTTPS (обозначается замочком в адресной строке) — вы находитесь на потенциально опасной странице. Лучше не посещать эту страницу.
Как убрать незащищенный протокол в Яндекс Браузере?
К сожалению, по умолчанию нельзя отключить предупреждение о незащищенном протоколе — красный треугольник со знаком будет висеть на всех сайтах, использующих устаревший HTTP. В такой ситуации переживать уже нужно владельцу сайта, ведь такое предупреждение отпугнет многих читателей или клиентов. Вебмастеру нужно обратиться к своему хостингу и узнать там об условиях установки SSL-сертификата.
Конечно же, в некоторых случаях посетителю могут полностью блокировать переход. В таком случае, что бы открыть страницу (на свой страх и риск), нужно отключить все опции в технологии Protect:
Для отключения Protect нужно снять все галочки в пункте защита от угроз
Есть и другой момент — у вас все сайты обозначаются незащищенным протоколом. Такое может возникнуть из-за вирусных атак в самом ПК или неверной настройке даты/времени. Советую открыть настройку даты и времени в Windows с верить точное время и главное — поставить правильный часовой пояс.
Проверьте правильность даты/времени и часового пояса на устройстве
Также нужно прогнать саму систему через антивирусные сканеры, типа Kaspersky Removal Tool, Malwarebytes, Dr.Web CureIt!. Для пущего эффекта лучше сбросить и настройки самой программы Яндекс Браузер. Имейте ввиду: современные вирусы, проникшие в систему, могут натворить много бед — поэтому обнаруживать и избавляться от них нужно сразу.
Заключение
Теперь вы понимаете, что означает предупреждение о незащищенном протоколе HTTP в Яндекс Браузере и о чем именно вас информируют в момент перехода. Еще раз напомню — убрать красный значок не получится, этим должен заняться хозяин ресурса. Старайтесь посещать сайты, которые в поиске отмечены зеленым значком «закрытый замочек». Если остались вопросы — пишите в комментариях.
Способы устранения ошибки, связанной с незащищенным соединением
Интернет – главный рассадник компьютерных вирусов. Именно поэтому разработчики браузеров встраивают в свои продукты различные продукты, которые стараются не допускать проникновения на компьютер вирусной угрозы или получения мошенниками конфиденциальной информации, например, данных банковских карт. В связи с этим пользователи различных браузеров могут периодически сталкиваться с сообщением о незащищенном соединении.
Ошибка, сообщающая о незащищенном соединении появляется на экранах компьютеров пользователей в тех случаях, когда пользователь пытается перейти на защищенный сайт, но браузер не смог проверить сертификаты безопасности данного веб-ресурса. Подобная проблема может возникнуть не только из-за возможной небезопасности сайта, но и из-за того, что различные факторы не дали выполнить проверку сертификатов.
Способы устранения ошибки незащищенного соединения
Ниже мы рассмотрим максимальное количество способов, которые могут помочь с решением проблемы незащищенного соединения (причем неважно каким веб-обозревателем вы пользуетесь).
Способ 1: установка правильных даты и времени
Сертификаты безопасности имеют строго ограниченные сроки, поэтому, если на вашем компьютере установлены неправильные дата и время, браузер не смог удостовериться в безопасности сайта, из-за чего и блокировал переход на него.
Способ 2: отключение работы антивируса
Некоторые антивирусные программы, слишком сильно уделяя внимание безопасности пользователя в интернете, могут повлиять и на работу браузера, блокируя переход на, как ему кажется, опасные сайты.
В данном случае, чтобы подтвердить или исключить данную вероятность неполадки, вам потребуется полностью отключить на время работу антивируса. Как только это будет сделано, попробуйте перейти на проблемный сайт – если неполадка исчезла, значит, мы лишь подтвердили нашу догадку.
После этого, чтобы не лишаться антивируса, вам потребуется пройти в его настройки и попробовать определить, какие именно параметры блокирую переход на защищенные сайты. Вполне возможно, что вам следует отключить сетевое или SSL-сканирование (это может быть настройка, связанная с проверкой интернета).
Способ 3: устранение вирусной активности
Если проблема наблюдается далеко не для одного сайта, можно подумать о том, что на вашем компьютере поселилась вирусная активность, которая и блокирует нормальную работу браузера.
В данном случае вам стоит проверить свой компьютер на наличие любых типов угроз. Для этого вы можете использовать как средство сканирования системы на вашем компьютере, так и специально разработанное для этого программное обеспечение, например, утилиту Dr.Web CureIt, или любую ей подобную.
Если в результате сканирования вы все-таки обнаружили на компьютере вирусы, обязательно устраните их, а затем выполните перезагрузку компьютера. Вполне вероятно, что после этого браузер так и не заработает нормально, поскольку его корректное функционирование уже было нарушено, а значит, вам сможет помочь следующий способ нашей статьи.
Способ 4: переустановка браузера
Многие неполадки в работе любых программ можно устранить, если выполнить процедуру переустановки. Это мы и хотим сделать по отношению к веб-обозревателю.
Способ 5: восстановление системы
Если проблема с незащищенным соединением стала беспокоить вас недавно, тогда можно попробовать выполнить процесс восстановления системы, который заключается в том, что функционирование компьютера будет возвращено к тому моменту, когда все было в порядке.
Как только система завершит восстановление, проверьте работу браузера.
Способ 6: деактивация брандмауэра Windows
В более редких случаях на ошибку может повлиять и встроенное защитное средство компьютера – брандмауэр Windows. В данном методе вам стоит попробовать отключить его на некоторое время, чтобы проверить, это ли стало причиной ошибки.
Простым языком об HTTP
Вашему вниманию предлагается описание основных аспектов протокола HTTP — сетевого протокола, с начала 90-х и по сей день позволяющего вашему браузеру загружать веб-страницы. Данная статья написана для тех, кто только начинает работать с компьютерными сетями и заниматься разработкой сетевых приложений, и кому пока что сложно самостоятельно читать официальные спецификации.
HTTP — широко распространённый протокол передачи данных, изначально предназначенный для передачи гипертекстовых документов (то есть документов, которые могут содержать ссылки, позволяющие организовать переход к другим документам).
Аббревиатура HTTP расшифровывается как HyperText Transfer Protocol, «протокол передачи гипертекста». В соответствии со спецификацией OSI, HTTP является протоколом прикладного (верхнего, 7-го) уровня. Актуальная на данный момент версия протокола, HTTP 1.1, описана в спецификации RFC 2616.
Протокол HTTP предполагает использование клиент-серверной структуры передачи данных. Клиентское приложение формирует запрос и отправляет его на сервер, после чего серверное программное обеспечение обрабатывает данный запрос, формирует ответ и передаёт его обратно клиенту. После этого клиентское приложение может продолжить отправлять другие запросы, которые будут обработаны аналогичным образом.
Задача, которая традиционно решается с помощью протокола HTTP — обмен данными между пользовательским приложением, осуществляющим доступ к веб-ресурсам (обычно это веб-браузер) и веб-сервером. На данный момент именно благодаря протоколу HTTP обеспечивается работа Всемирной паутины.
Также HTTP часто используется как протокол передачи информации для других протоколов прикладного уровня, таких как SOAP, XML-RPC и WebDAV. В таком случае говорят, что протокол HTTP используется как «транспорт».
API многих программных продуктов также подразумевает использование HTTP для передачи данных — сами данные при этом могут иметь любой формат, например, XML или JSON.
Как правило, передача данных по протоколу HTTP осуществляется через TCP/IP-соединения. Серверное программное обеспечение при этом обычно использует TCP-порт 80 (и, если порт не указан явно, то обычно клиентское программное обеспечение по умолчанию использует именно 80-й порт для открываемых HTTP-соединений), хотя может использовать и любой другой.
Как отправить HTTP-запрос?
Самый простой способ разобраться с протоколом HTTP — это попробовать обратиться к какому-нибудь веб-ресурсу вручную. Представьте, что вы браузер, и у вас есть пользователь, который очень хочет прочитать статьи Анатолия Ализара.
Предположим, что он ввёл в адресной строке следующее:
Соответственно вам, как веб-браузеру, теперь необходимо подключиться к веб-серверу по адресу alizar.habrahabr.ru.
Для этого вы можете воспользоваться любой подходящей утилитой командной строки. Например, telnet:
telnet alizar.habrahabr.ru 80
Сразу уточню, что если вы вдруг передумаете, то нажмите Ctrl + «]», и затем ввод — это позволит вам закрыть HTTP-соединение. Помимо telnet можете попробовать nc (или ncat) — по вкусу.
После того, как вы подключитесь к серверу, нужно отправить HTTP-запрос. Это, кстати, очень легко — HTTP-запросы могут состоять всего из двух строчек.
Для того, чтобы сформировать HTTP-запрос, необходимо составить стартовую строку, а также задать по крайней мере один заголовок — это заголовок Host, который является обязательным, и должен присутствовать в каждом запросе. Дело в том, что преобразование доменного имени в IP-адрес осуществляется на стороне клиента, и, соответственно, когда вы открываете TCP-соединение, то удалённый сервер не обладает никакой информацией о том, какой именно адрес использовался для соединения: это мог быть, например, адрес alizar.habrahabr.ru, habrahabr.ru или m.habrahabr.ru — и во всех этих случаях ответ может отличаться. Однако фактически сетевое соединение во всех случаях открывается с узлом 212.24.43.44, и даже если первоначально при открытии соединения был задан не этот IP-адрес, а какое-либо доменное имя, то сервер об этом никак не информируется — и именно поэтому этот адрес необходимо передать в заголовке Host.
Стартовая (начальная) строка запроса для HTTP 1.1 составляется по следующей схеме:
Например (такая стартовая строка может указывать на то, что запрашивается главная страница сайта):
Метод (в англоязычной тематической литературе используется слово method, а также иногда слово verb — «глагол») представляет собой последовательность из любых символов, кроме управляющих и разделителей, и определяет операцию, которую нужно осуществить с указанным ресурсом. Спецификация HTTP 1.1 не ограничивает количество разных методов, которые могут быть использованы, однако в целях соответствия общим стандартам и сохранения совместимости с максимально широким спектром программного обеспечения как правило используются лишь некоторые, наиболее стандартные методы, смысл которых однозначно раскрыт в спецификации протокола.
URI (Uniform Resource Identifier, унифицированный идентификатор ресурса) — путь до конкретного ресурса (например, документа), над которым необходимо осуществить операцию (например, в случае использования метода GET подразумевается получение ресурса). Некоторые запросы могут не относиться к какому-либо ресурсу, в этом случае вместо URI в стартовую строку может быть добавлена звёздочка (астериск, символ «*»). Например, это может быть запрос, который относится к самому веб-серверу, а не какому-либо конкретному ресурсу. В этом случае стартовая строка может выглядеть так:
Версия определяет, в соответствии с какой версией стандарта HTTP составлен запрос. Указывается как два числа, разделённых точкой (например 1.1).
Для того, чтобы обратиться к веб-странице по определённому адресу (в данном случае путь к ресурсу — это «/»), нам следует отправить следующий запрос:
GET / HTTP/1.1
Host: alizar.habrahabr.ru
При этом учитывайте, что для переноса строки следует использовать символ возврата каретки (Carriage Return), за которым следует символ перевода строки (Line Feed). После объявления последнего заголовка последовательность символов для переноса строки добавляется дважды.
Впрочем, в спецификации HTTP рекомендуется программировать HTTP-сервер таким образом, чтобы при обработке запросов в качестве межстрочного разделителя воспринимался символ LF, а предшествующий символ CR, при наличии такового, игнорировался. Соответственно, на практике бо́льшая часть серверов корректно обработает и такой запрос, где заголовки отделены символом LF, и он же дважды добавлен после объявления последнего заголовка.
Если вы хотите отправить запрос в точном соответствии со спецификацией, можете воспользоваться управляющими последовательностями \r и \n:
Как прочитать ответ?
Стартовая строка ответа имеет следующую структуру:
Версия протокола здесь задаётся так же, как в запросе.
Код состояния (Status Code) — три цифры (первая из которых указывает на класс состояния), которые определяют результат совершения запроса. Например, в случае, если был использован метод GET, и сервер предоставляет ресурс с указанным идентификатором, то такое состояние задаётся с помощью кода 200. Если сервер сообщает о том, что такого ресурса не существует — 404. Если сервер сообщает о том, что не может предоставить доступ к данному ресурсу по причине отсутствия необходимых привилегий у клиента, то используется код 403. Спецификация HTTP 1.1 определяет 40 различных кодов HTTP, а также допускается расширение протокола и использование дополнительных кодов состояний.
Пояснение к коду состояния (Reason Phrase) — текстовое (но не включающее символы CR и LF) пояснение к коду ответа, предназначено для упрощения чтения ответа человеком. Пояснение может не учитываться клиентским программным обеспечением, а также может отличаться от стандартного в некоторых реализациях серверного ПО.
После стартовой строки следуют заголовки, а также тело ответа. Например:
Тело ответа следует через два переноса строки после последнего заголовка. Для определения окончания тела ответа используется значение заголовка Content-Length (в данном случае ответ содержит 7 восьмеричных байтов: слово «Wisdom» и символ переноса строки).
Но вот по тому запросу, который мы составили ранее, веб-сервер вернёт ответ не с кодом 200, а с кодом 302. Таким образом он сообщает клиенту о том, что обращаться к данному ресурсу на данный момент нужно по другому адресу.
В заголовке Location передан новый адрес. Теперь URI (идентификатор ресурса) изменился на /users/alizar/, а обращаться нужно на этот раз к серверу по адресу habrahabr.ru (впрочем, в данном случае это тот же самый сервер), и его же указывать в заголовке Host.
GET /users/alizar/ HTTP/1.1
Host: habrahabr.ru
В ответ на этот запрос веб-сервер Хабрахабра уже выдаст ответ с кодом 200 и достаточно большой документ в формате HTML.
Если вы уже успели вжиться в роль, то можете теперь прочитать полученный от сервера HTML-код, взять карандаш и блокнот, и нарисовать профайл Ализара — в принципе, именно этим бы на вашем месте браузер сейчас и занялся.
А что с безопасностью?
Сам по себе протокол HTTP не предполагает использование шифрования для передачи информации. Тем не менее, для HTTP есть распространённое расширение, которое реализует упаковку передаваемых данных в криптографический протокол SSL или TLS.
Название этого расширения — HTTPS (HyperText Transfer Protocol Secure). Для HTTPS-соединений обычно используется TCP-порт 443. HTTPS широко используется для защиты информации от перехвата, а также, как правило, обеспечивает защиту от атак вида man-in-the-middle — в том случае, если сертификат проверяется на клиенте, и при этом приватный ключ сертификата не был скомпрометирован, пользователь не подтверждал использование неподписанного сертификата, и на компьютере пользователя не были внедрены сертификаты центра сертификации злоумышленника.
На данный момент HTTPS поддерживается всеми популярными веб-браузерами.
А есть дополнительные возможности?
Протокол HTTP предполагает достаточно большое количество возможностей для расширения. В частности, спецификация HTTP 1.1 предполагает возможность использования заголовка Upgrade для переключения на обмен данными по другому протоколу. Запрос с таким заголовком отправляется клиентом. Если серверу требуется произвести переход на обмен данными по другому протоколу, то он может вернуть клиенту ответ со статусом «426 Upgrade Required», и в этом случае клиент может отправить новый запрос, уже с заголовком Upgrade.
Такая возможность используется, в частности, для организации обмена данными по протоколу WebSocket (протокол, описанный в спецификации RFC 6455, позволяющий обеим сторонам передавать данные в нужный момент, без отправки дополнительных HTTP-запросов): стандартное «рукопожатие» (handshake) сводится к отправке HTTP-запроса с заголовком Upgrade, имеющим значение «websocket», на который сервер возвращает ответ с состоянием «101 Switching Protocols», и далее любая сторона может начать передавать данные уже по протоколу WebSocket.
Что-то ещё, кстати, используют?
На данный момент существуют и другие протоколы, предназначенные для передачи веб-содержимого. В частности, протокол SPDY (произносится как английское слово speedy, не является аббревиатурой) является модификацией протокола HTTP, цель которой — уменьшить задержки при загрузке веб-страниц, а также обеспечить дополнительную безопасность.
Увеличение скорости обеспечивается посредством сжатия, приоритизации и мультиплексирования дополнительных ресурсов, необходимых для веб-страницы, чтобы все данные можно было передать в рамках одного соединения.
Опубликованный в ноябре 2012 года черновик спецификации протокола HTTP 2.0 (следующая версия протокола HTTP после версии 1.1, окончательная спецификация для которой была опубликована в 1999) базируется на спецификации протокола SPDY.
Многие архитектурные решения, используемые в протоколе SPDY, а также в других предложенных реализациях, которые рабочая группа httpbis рассматривала в ходе подготовки черновика спецификации HTTP 2.0, уже ранее были получены в ходе разработки протокола HTTP-NG, однако работы над протоколом HTTP-NG были прекращены в 1998.
На данный момент поддержка протокола SPDY есть в браузерах Firefox, Chromium/Chrome, Opera, Internet Exporer и Amazon Silk.
И что, всё?
В общем-то, да. Можно было бы описать конкретные методы и заголовки, но фактически эти знания нужны скорее в том случае, если вы пишете что-то конкретное (например, веб-сервер или какое-то клиентское программное обеспечение, которое связывается с серверами через HTTP), и для базового понимания принципа работы протокола не требуются. К тому же, всё это вы можете очень легко найти через Google — эта информация есть и в спецификациях, и в Википедии, и много где ещё.
Впрочем, если вы знаете английский и хотите углубиться в изучение не только самого HTTP, но и используемых для передачи пакетов TCP/IP, то рекомендую прочитать вот эту статью.
Ну и, конечно, не забывайте, что любая технология становится намного проще и понятнее тогда, когда вы фактически начинаете ей пользоваться.