Запрос многократной передачи данных

Устранения проблемы блокировки "head-of-line" протоколов HTTP. Уменьшение задержек доступа для ускорения загрузки. Мультиплексирования множества запросов в одном соединении TCP. Бинарный протокол, его преимущества. Отправка данных по инициативе сервера.

Рубрика Программирование, компьютеры и кибернетика
Вид практическая работа
Язык русский
Дата добавления 20.04.2020
Размер файла 998,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Самостоятельная работа

Запрос многократной передачи данных

Каржавов М.

HTTP/2 (изначально HTTP/2.0) - вторая крупная версия сетевого протокола HTTP, используемая для доступа к World Wide Web. Протокол основан на SPDY. HTTP/2 был разработан рабочей группой Hypertext Transfer Protocol working group (httpbis, где bis означает "ещё раз", "повторно", "на бис") из Internet Engineering Task Force.

HTTP/2 является первой новой версией HTTP с версии HTTP 1.1, которая была стандартизирована RFC 2616 в 1999. Рабочая группа представила протокол HTTP/2 на рассмотрение IESG как Proposed Standard в декабре 2014 и IESG утвердила его к публикации как Proposed Standard 17 февраля 2015. Спецификация HTTP/2 была опубликована как RFC 7540 в мае 2015.

Усилия по стандартизации являются ответом на разработку SPDY (HTTP-совместимый протокол, разработанный Google[9] и поддерживаемый браузерами Chrome, Opera, Firefox, Internet Explorer 11, Safari и Amazon Silk).

9 февраля 2015 года Google объявила о планах прекратить поддержку SPDY в Chrome в начале 2016 года в пользу HTTP/2 (Chrome 40+).

По данным W3Techs на 1 марта 2020 года, 43,6 % из 10 млн самых популярных интернет-сайтов поддерживают протокол HTTP/2.

Цели

· Добавить механизмы согласования протокола, клиент и сервер могут использовать HTTP 1.1, 2.0 или, гипотетически, иные, не HTTP-протоколы.

· Поддержать совместимость с многими концепциями HTTP 1.1, например по набору методов доступа (GET, PUT, POST и т. п.), статусным кодам, формату URI, большому количеству заголовков

· Уменьшение задержек доступа для ускорения загрузки страниц, в частности путём:

o Сжатия данных в заголовках HTTP

o Использования push-технологий на серверной стороне

o Конвейеризации запросов

o Устранения проблемы блокировки "head-of-line" протоколов HTTP 1.0/1.1

o Мультиплексирования множества запросов в одном соединении TCP

· Сохранение совместимости с широко внедрёнными применениями HTTP, в том числе с веб-браузерами (полноценными и мобильными), API, используемыми в Интернете, веб-серверами, прокси-серверами, обратными прокси-серверами, сетями доставки контента

Отличия от HTTP/1.1

Протокол HTTP/2 является бинарным. По сравнению с предыдущим стандартом изменены способы разбиения данных на фрагменты и транспортирования их между сервером и клиентом.

В HTTP/2 сервер имеет право послать то содержимое, которое ещё не было запрошено клиентом. Это позволит серверу сразу выслать дополнительные файлы, которые потребуются браузеру для отображения страниц, без необходимости анализа браузером основной страницы и запрашивания необходимых дополнений.

Также часть улучшений получена (в первом черновике HTTP/2, который представлял собой копию спецификации SPDY) за счёт мультиплексирования запросов и ответов (для преодоления проблемы "head-of-line blocking" протоколов HTTP/1.x), а также за счёт сжатия передаваемых заголовков и введения явной приоритизации запросов.

Шифрование

HTTP/2 определён как для HTTP URI (то есть без шифрования), так и для HTTPS URI (поверх TLS 1.2 и выше).

Хотя стандарт определяет шифрование как необязательное[16], для большинства клиентских реализаций (Firefox, Chrome, Safari, Opera, IE, Edge) возможно использование HTTP/2 только поверх TLS.

Поддержка

Популярные веб-браузеры в основном поддерживают HTTP/2 с конца 2015 года[18]:

· Chrome и другие, основанные на Chromium/Blink, поддерживают HTTP/2. Поддерживается только режим HTTP/2 поверх TLS.

· Chrome for iOS поддерживает HTTP/2.

· Firefox поддерживает HTTP/2 с версии 36. Экспериментальная поддержка HTTP/2 была изначально обеспечена в версии 34. Поддерживается только режим HTTP/2 поверх TLS.

· Internet Explorer поддерживает HTTP/2 с версии 11, но только для Windows 8.1. Поддерживается только режим HTTP/2 поверх TLS.

· Microsoft Edge поддерживает HTTP/2.

· Opera, как основанный на Chromium/Blink, поддерживает HTTP/2 с начала 2014 года.

· Safari 9 поддерживает HTTP/2.

Поддержка веб-серверами:

· IIS поддерживает HTTP/2 в Windows 10 и Windows Server 2016.

· Apache 2.4.17 поддерживает HTTP/2 через модуль mod_http2 module,.

· nginx 1.9.5 поддерживает HTTP/2

19 декабря 2016 года Google объявила, что Googlebot теперь поддерживает HTTP/2.

Основные цели разработки HTTP/2:

· Возможность выбирать протокол, например, HTTP/1.1, HTTP/2 или другой.

· Высокая совместимость с HTTP/1.1 - методы, коды статусов, поля хедеров.

· Улучшение скорости загрузки благодаря сжатию хедеров запросов, бинарному протоколу, отправке данных по инициативе сервера, блокировке пакетов и запросу многократной передачи данных.

Запрос многократной передачи данных

HTTP/2 может отправлять множественные запросы данных параллельно по единому соединению TCP. Это самая продвинутая функция протокола HTTP/2. С ее помощью вы можете загружать веб-файлы асинхронно с одного сервера. Большинство современных браузеров ограничивает количество TCP-подключений к одному серверу.

Отличие между протоколами HTTP 1.1 и HTTP/2

Это сокращает дополнительное время прохождения сигнала в обоих направлениях. Таким образом, сайт грузится быстрее безо всяких оптимизаций.

Сжатие хедеров

HTTP/2 сжимает большое количество ненужных фреймов хедеров. Для этого протокол использует спецификацию HPACK. Клиент и сервер поддерживают список хедеров, которые использовались в предыдущих запросах клиента-сервера.

HPACK сжимает отдельное значение каждого хедера до передачи на сервер, а потом смотрит закодированную инфомарцию в списке предварительно переданных значений хедера для полной реконструкции данных хедера.

Пример сжатия хедеров с помощью технологии HPACK

Бинарный протокол

Эта версия протокола может превращать текстовый протокол в бинарный. HTTP1.x обрабатывал текстовые команды, чтобы завершать цикл запросов-ответов. Протокол HTTP/2 использует бинарные команды для выполнения тех же задач. Это облегчает фрейминг и выполнение команд.

Преимущества:

· Низкие затраты на парсинг данных,

· Меньше ошибок,

· Меньше нагрузка на сеть,

· Эффективное использование сетевых ресурсов,

· Дает возможность использовать дополнительные преимущества HTTP/2, такие как сжатие, многократную передачу данных, приоритезацию и эффективную обработку TLS,

· Компактная презентация команд для более легкой обработки и внедрения,

· Более эффективная обработка данных между клиентом и сервером,

· Меньше сетевых задержек.

Отправка данных по инициативе сервера

Эта опция позволяет серверу отправлять дополнительную кэшируемую информацию клиенту, которая сейчас не запрашивается, но может быть запрошена в будущем. Например, клиент запрашивает ресурс X. Сервер понимает, что ресурс Y связан с запрашиваемым файлом. Поэтому сервер может отправить Y вместе с X и не ждать такого запроса от клиента.

Пример отправки данных по инициативе сервера

Преимущества

· Клиент сохраняет отправленные ресурсы в кэше,

· Клиент может заново использовать закэшированные ресурсы на разных страницах,

· Сервер может отправить дополнительные данные по своей инициативе вместе с изначально запрашиваемой информацией через одно и то же TCP-подключение,

· Сервер может приоретизировать отправленные ресурсы,

· Клиент может отклонить дополнительно отправленные данные, чтобы поддерживать эффективный репозиторий кэшируемых ресурсов или полностью отключить эту опцию,

· Клиент может также ограничить количество одновременно отправляемых потоков информации.

Вернемся к истории о госте в ресторане и официанте. Представим, что официанты - это TCP-подключения, и вы хотите заказать ужин и бутылку воды. Для версии HTTP/1.1 это будет означать, что вы попросить у одного официанта ужин, а у второго воду, то есть у вас будет два TCP-подключения. Для версии HTTP/2 вы попросите обе вещи у одного официанта, но он доставит вам их по отдельности. У вас будет одно TCP-подключение и меньшая нагрузка на сервер. Кроме того, у сервера будет одно лишнее подключение (официант) для следующего клиента (гостя).

Фундаментальная разница между протоколами HTTP/1.1 и HTTP/2 видна на примере отправки данных по инициативе сервера.

Представьте, что гость (клиент) заказывает (отправляет запрос) у официанта (серверу) ужин. Официант берет ужин у повара (логика вашего приложения), но официант также подумал о том, что скорее всего вам понадобится вода. Поэтому он приносит ее вместе с ужином. В итоге у вас будет только одно TCP-подключение и один запрос, что значительно снижает нагрузку на сервер.

Чтобы продемонстрировать эту механику, возьмем пример такой страницы:

Страница со 100 картинками зеленых галочек для примера

Это обычная страница со 100 картинками зеленых галочек. Мы будем использовать ее, чтобы показать отправку данных по инициативе сервера протоколами HTTP/1.1, HTTP/2 и HTTP/2.

На что важно обращать внимание на картинке ниже - это количество запросов, время загрузки, колонку протокола, колонку инициатора и диаграмму.

Для HTTP/1.1

Пример обработки картинки со 100 галочками протоколом HTTP/1.1

Количество запросов: 102

Время загрузки: 12, 97 секунд

Протокол: "http/1.1"

Колонка инициатора: Инициатор первого запроса - пользователь/клиент, и оставшаяся часть запросов инициируются клиентом, который понимает, что ему нужны дополнительные ресурсы (в этом случае картинки).

Диаграмма: мы можем видеть, как запросы обрабатываются множественными пачками (TCP-подключениями).

Для HTTP/2

Пример обработки картинки со 100 галочками протоколом HTTP/2

Количество запросов: 102

Время загрузки: 11,19 секунд

Протокол: "h2" (HTTP/2)

Колонка инициатора: Инициатор первого запроса - пользователь/клиент, и оставшаяся часть запросов инициируются клиентом, который понимает, что ему нужны дополнительные ресурсы (в этом случае картинки).

Диаграмма: мы можем видеть, как запросы обрабатываются двумя пачками (TCP-подключениями).

Обратите внимание на время загрузки. В этом случае оно немного ниже, чем время загрузки в примере HTTP/1.1, но это не всегда так.

Отправка данных по инициативе сервера HTTP/2

Обработка картинки со 100 галочками с помощью отправки данных по инициативе сервера

Количество запросов: 102

Время загрузки: 3,17 секунд

Протокол: "h2" (HTTP/2)

Колонка инициатора: Инициатор первого запроса - пользователь/клиент, и оставшаяся часть запросов инициируются сервером (один запрос/цикл ответа)

Диаграмма: мы видим, как запросы обрабатывается с помощью одного TCP-подключения.

Совместимость с браузерами

Большинство современных браузеров полностью поддерживают протокол HTTP/2 за исключением (помечено красным) Opera mini Всех версии и браузера UC под Android.

Также некоторые браузеры поддерживают HTTP/2 частично (помечены светло-зеленым), - например, IE11.

Размещено на Allbest.ru

...

Подобные документы

  • Особенности организации передачи данных в компьютерной сети. Эталонная модель взаимодействия открытых систем. Методы передачи данных на нижнем уровне, доступа к передающей среде. Анализ протоколов передачи данных нижнего уровня на примере стека TCP/IP.

    курсовая работа [1,0 M], добавлен 07.08.2011

  • Обработка распределенных данных и запросов. Многопотоковые и многосерверные архитектуры. Основные типы параллелелизма при обработке запросов. Структура компонентов поддержки удаленного доступа. Доступ к базам данных в двухзвенных моделях клиент-сервер.

    презентация [123,1 K], добавлен 19.08.2013

  • Разработка протоколов передачи данных электросвязи для систем сотовой и кабельной связи по аналого-цифровым телефонным линиям связи. Одновременная передача данных и голоса, коррекция ошибок и сжатия; их возможности. История и прогноз на будущее.

    реферат [72,9 K], добавлен 06.04.2010

  • Требования, предъявленные к полноценному локальному чату. Протокол передачи данных TCP. Описание программы сервера. Этапы разработки программного продукта. Функция приема сообщений от сервера. Принятие и отправка сообщений всем пользователям чата.

    курсовая работа [447,0 K], добавлен 21.01.2016

  • Возникновение и функции интернета. Системы адресации и протоколы передачи данных. Структура иерархической базы данных. Формирование базы данных учета сотрудников организации, создание таблиц с тремя видами запросов на выборку, конструктор отчетов.

    контрольная работа [885,8 K], добавлен 10.11.2010

  • Многопоточный веб-сервер с входным и обрабатывающими модулями. HTTP—протокол передачи гипертекста. Установка и настройка локального веб-сервера "OpenServer". Установка phpMyAdmin, конфигурация PHP. Настройка веб-сервера и виртуальных хостов, модулей.

    курсовая работа [3,2 M], добавлен 08.12.2013

  • Виды компьютерных сетей. Методы доступа к несущей в компьютерных сетях. Среды передачи данных и их характеристики. Протокол IP, принципы маршрутизации пакетов, DHCP. Обоснование используемых сред передачи данных. Маршрутизация и расчет подсетей.

    курсовая работа [779,8 K], добавлен 15.04.2012

  • Виды доступа к записям базы данных. Поиск, фильтрация, добавление, удаление и изменение записей. Визуальные компоненты доступа к ним. Изменение данных средствами сервера, параметризованные запросы. Связывание элементов пользовательского интерфейса.

    презентация [7,6 K], добавлен 19.08.2013

  • Создание баз данных и таблиц. Ограничение доступа для пользователей. Хранимая процедура, доступная всем пользователям. Скрипты для проверки ограничений. Методы обеспечения безопасности сервера базы данных. Чтение, изменение и добавление данных.

    лабораторная работа [1,4 M], добавлен 23.07.2012

  • Общее понятие, основные компоненты и функции операционной системы. Порядок установи операционной системы UbuntuLinux. Особенности инсталляции веб-сервера Nginx для передачи данных по протоколу HTTP. Установка системы управления базами данных MongoDB.

    курсовая работа [2,3 M], добавлен 11.06.2014

  • Компоненты вычислительной системы, предоставляющие клиенту доступ к определенным ресурсам и обмен информацией. Функциональные возможности ядра веб-сервера Apache. Механизм авторизации пользователей для доступа к директории на основе HTTP-аутентификации.

    курсовая работа [105,6 K], добавлен 07.06.2014

  • Понятие, особенности и уровни промышленных сетей. Сравнение протоколов передачи данных HART, Industrial Ethernet, Foundation Filedbus, CAN, Modbus, их достоинства и недостатки. Физический и канальный уровни сети Profibus. Распределение функций управления.

    презентация [812,9 K], добавлен 29.11.2013

  • Понятие "Интернет" и его роль в современном мире. Понятие протоколов сетевого взаимодействия. Схема потока данных сквозь стек протоколов от приложения-клиента на одном компьютере к приложению-серверу на другом. Основные элементы технологии WWW.

    презентация [248,0 K], добавлен 19.09.2016

  • Характеристика транспортного и сетевого протокола TCP/IP. Уровни его стека (физический, канальный, сетевой, транспортный, прикладной). Распределение протоколов по ним. Скорость загрузки Web-страницы, факторы, влияющие на нее и возможности ее ускорения.

    контрольная работа [15,9 K], добавлен 06.06.2011

  • Разработка серверной программы, которая позволяет удаленно наблюдать за компьютером, работающим под управлением Linux. Условия, необходимые для решения данной задачи: используемые протоколы передачи данных, программные средства, динамические библиотеки.

    курсовая работа [133,7 K], добавлен 18.06.2009

  • Задачи системы SQL Server. Организация одновременного доступа к данным большого количества пользователей. Манипуляция информацией в базах данных (БД). Инфологическое, логическое и физическое проектирование БД. Разработка запросов, процедур, триггеров.

    курсовая работа [3,1 M], добавлен 11.05.2012

  • Виды запросов в информационной системе. Модель выдачи информации по каждому из сотрудников. Сбор данных о поставках корма, животных, потомстве и совместимости видов. Основные параметры структуры таблиц и схем данных. Создание запросов, отчетов и форм.

    курсовая работа [1,1 M], добавлен 15.05.2014

  • Цель создания базы данных, предполагаемые задачи и функции. Описание используемого программного обеспечения. Разработка структуры и схемы базы данных, инфологическое проектирование и перечень SQL-запросов. Разграничение прав доступа, администрирование.

    курсовая работа [2,2 M], добавлен 15.04.2012

  • Базы данных и системы управления ими. Разработка базы данных "Торговая организация", позволяющей вести учет имеющегося товара, покупателей и поставки товара. Проектирование таблиц, запросов и форм. Создание отчетов. Обеспечение доступа к информации.

    курсовая работа [1,2 M], добавлен 21.11.2014

  • Объект XMLHttpRequest (AJAX): отправка и обработка ответов HTTP-запросов с помощью JavaScript. Методы и свойства объекта, общие для Internet Explorer 5, Mozilla, Netscape 7. Алгоритм выполнения, JavaScript-код. PHP-скрипт получения данных из базы.

    лабораторная работа [14,9 K], добавлен 06.06.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.