Если вы пользуетесь Интернетом, вы, вероятно, встречали термин HTTP или HTTPS. Это также наиболее часто просматриваемое письмо, особенно учитывая миллиарды веб-сайтов, которые в настоящее время активны. Аббревиатурой является HTTP или протокол передачи гипертекста. Он служит как клиентским, так и серверным протоколом, определяя, как сообщения отправляются и структурируются через Интернет.
HTTP 1.0 против HTTP 1.1
Разница между HTTP 1.0 и HTTP 1.1 заключается в том, что для обозначения успешных запросов и выявления проблем передачи использовались коды состояния HTTP 1.0. HTTP / 1.1 поддерживает передачу фрагментов, что позволяет передавать материал фрагментами и доставлять дополнительные заголовки после тела сообщения.
В 1996 году был официально представлен и признан протокол HTTP / 1.0. С тех пор его популярность резко возросла. HTTPv1.0 обеспечивает только элементарную аутентификацию (управление запрос-ответ); Ключевая проблема этого метода заключается в том, что имена пользователей и пароли не шифруются, что делает их уязвимыми для шпионажа и без ограничений по времени. Было всего 16 кодов статуса.
HTTP 1.1 также обеспечивает постоянные соединения, что означает, что многие ответы и запросы могут быть отправлены через одно и то же HTTP-соединение. Метод OPTIONS является новым в HTTP / 1.1. Этот метод может легко использоваться HTTP-клиентом для обнаружения возможностей HTTP-сервера. В основном он используется в веб-приложениях для совместного использования ресурсов из разных источников.
Таблица сравнения HTTP 1.0 и HTTP 1.1
Параметры сравнения | HTTP 1.0 | HTTP 1.1 |
Код состояния | Можно определить 16 кодов состояния; однако всплывающие сообщения об ошибках недостаточно точны. | Отчет об ошибках выполняется быстрее и эффективнее благодаря возможности указать 24 кода состояния. |
Механизм аутентификации | Поскольку пароли и имена пользователей также отправляются в виде открытого текста или в кодировке base64, основной механизм аутентификации небезопасен. | Поскольку он использует дайджест-аутентификацию и аутентификацию NTLM, он относительно безопасен. |
Кеширование | Заголовок If-Modified-Since используется для облегчения кэширования. | Использует некоторые дополнительные заголовки, такие как управление кешем. |
Оптимизация производительности | Поддерживает кеширование для более быстрого обслуживания большего количества страниц. | Многие оптимизации используются как обходной путь к требованию «шесть подключений на хост», включая спрайтинг, конкатенацию, встраивание и сегментирование домена. |
Ключевая особенность | Для каждого TCP-соединения существует только один запрос и ответ. | Он позволяет повторно использовать соединение, что означает, что для каждого TCP-соединения можно отправлять и получать множество запросов и ответов. |
Что такое HTTP 1.0?
HTTPv1.0 обеспечивает только элементарную аутентификацию (управление запрос-ответ); Ключевая проблема этого метода заключается в том, что имена пользователей и пароли не шифруются, что делает их уязвимыми для шпионажа, и отсутствуют временные ограничения. Любая информация, полученная с помощью шпионажа, может использоваться долгое время после ее получения. Клиент должен вычислить контрольную сумму пароля, имени пользователя, одноразового значения, включая тип HTTP-запроса, и запрошенного URI для действительного ответа.
Поскольку HTTP1.0 предназначался для использования нового соединения TCP для каждого запроса, каждая апелляция должна была оплачивать расходы на установление нового соединения TCP. Поскольку большинство интернет-транзакций являются кратковременными и редко выходят за рамки стадии медленного старта, они не позволяют оптимально использовать доступную полосу пропускания. Хотя в некоторых реализациях версии 1.0 использовался заголовок «keep-alive», чтобы требовать, чтобы ссылка оставалась активной, с промежуточным прокси-сервером это не работало.
Сервер по-прежнему должен предоставлять ответы в той же последовательности, что и соответствующий запрос для данного соединения. Клиенту не нужно ждать ответа на свой предыдущий запрос перед отправкой другого по тому же соединению (конвейерная обработка). Это сокращает задержку передачи данных туда и обратно, а также оптимизирует возможности протокола TCP.
Что такое HTTP 1.1?
Эта проблема решается путем введения постоянных соединений и конвейеров. HTTP / 1.1 подразумевает, что соединение TCP должно оставаться активным, если явно не запрашивается отключение при использовании постоянных соединений. Он позволяет клиенту подавать множество апелляций по одному и тому же соединению, не дожидаясь ответа на каждую, что значительно увеличивает производительность HTTP / 1.1 по сравнению с HTTP / 1.0.
К сожалению, у этого метода оптимизации есть узкое место. Потому что несколько пакетов данных просто не могут обойти друг друга на своем пути. бывают случаи, когда запрос в начале очереди не может получить требуемый ресурс, в результате чего все запросы после него блокируются.
Это называется блокировкой заголовка HOL и представляет собой серьезную проблему, когда речь идет об улучшении производительности соединения HTTP / 1.1. Отдельные параллельные TCP-соединения могут решить проблему, однако количество одновременных TCP-соединений между клиентом и сервером ограничено, и каждое новое соединение потребляет много ресурсов.
Управление потоком в HTTP / 1.1 основано на TCP. Когда TCP установлен, и сервер, и клиент используют свои системные настройки по умолчанию для определения размеров буфера. Если буфер получателя частично заполнен, он информирует отправителя об окне приема получателя или количестве свободного места в его буфере.
Основные различия между HTTP 1.0 и HTTP 1.1
Вывод
С момента своего создания в 1989 году протокол HTTP или гипертекстовой передачи был стандартом для передачи данных в сети. С момента первого выпуска в 1997 году в HTTP / 1.1 было внесено всего несколько изменений. Однако в 2015 году был представлен HTTP / 2,
он включает в себя множество способов уменьшения задержки, с тех пор популярность HTTP / 1.1 выросла, и по некоторым приблизительным оценкам, около трети всех веб-сайтов в Интернете теперь поддерживают его. Понимание технологических различий между HTTP / 1.1 и HTTP / 2 может помочь веб-разработчикам делать образованные и эффективные суждения о новых передовых методах в этом меняющемся мире.