> > > > Протокол HTTP/2 ускорит загрузку web-страниц

Протокол HTTP/2 ускорит загрузку web-страниц

Опубликовано:

ietfПротокол HTTP используется всеми нами практически ежедневно, хотя многие об этом и не знают. При просмотре web-страниц в Интернете задействуется как раз протокол HTTP, обеспечивающий связь между браузером и сервером с сайтом. Организация Internet Engineering Task Force (IETF), отвечающая за развитие стандартов Интернета, представила спецификации протокола HTTP/2. Он заменит утверждённый в 1999 году HTTP/1.1 и ускорит передачу информации в Интернете.

Представленный в 1999 году протокол HTTP/1.1 устарел. За прошедшие годы случилось немало, современные сайты состоят не только из страниц HTML, но и из элементов дизайна, таких как CSS, и дополнительного контента - JavaScript, Flash, фотографии и видео. Все эти компоненты необходимо передать в браузер с сервера отдельными порциями. Так что между браузером и сервером устанавливается не одно соединение, а несколько. Но каждый компонент может повторять информацию другого, что приводит к избыточному обмену информацией.

Более быстрая работа сетевых подключений и большее их количество позволяет пользователю быстро просматривать даже насыщенные информацией web-страницы. Но сегодня страницы становятся настолько сложными, с тесной взаимосвязью компонентов, что задержку в передаче данных уже не получается устранить более быстрым соединением. Альтернативные решения, подобные кэшу или локальному хранилищу данных, лишь немного облегчают ситуацию.

Структура протокола HTTP
Структура протокола HTTP
Инкапсуляция протоколов
Инкапсуляция протоколов

На поле битвы решила выйти Google, представив протокол SPDY, намного более эффективный, чем HTTP/1.1. Даже в худшем случае сайты с этим протоколом загружаются на десять процентов быстрее. В лучшем случае прирост производительности составляет 40 процентов. В 2012 году Google выдвинула свои предложения и разработки для включения в стандарт HTTP/2.

Чтобы ускорить протокол, было принято несколько мер. Для понимания мы рекомендуем ознакомиться с моделью OSI. Протоколы, подобные HTTP, являются лишь частью многоуровневой модели. Сам пакет HTTP состоит из "заголовка" ("Header"), в котором хранится информация об источнике и месте назначения пакета, а также информация о содержимом. Используется и замыкающее поле "Footer", которое отвечает также и за коррекцию ошибок, если она активна. Полезная информация содержится в основном поле "Payload". Но пакет HTTP не передаётся в Интернете в своем оригинальном виде, он упаковывается в пакет TCP, затем в пакет IP, а на нижних уровнях – в пакет Ethernet. В данном процессе может происходить фрагментация оригинального пакета на меньшие части.

Страница, переданная через протокол HTTP/1.1
Страница, переданная через протокол HTTP/1.1

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

Страница, переданная через протокол HTTP/2
Страница, переданная через протокол HTTP/2

HTTP/2 пока находится в черновой фазе (draft). Сейчас идет работа над финальной фазой. IETF ожидает реакции разработчиков, которые должны протестировать последнюю версию и представить запросы на изменения, если таковые возникнут. Вполне возможно, что IETF финализирует стандарт до 15 августа 2015.

Браузеры, по большей части, уже поддерживают HTTP/2. Internet Explorer под Windows 10 уже содержит встроенную поддержку, Mozilla Firefox Beta 36 и нынешняя версия Google Chrome тоже обладают поддержкой нового протокола – его достаточно просто включить. Но для работы протокола требуется поддержка со стороны web-сервера. И здесь ситуация не такая хорошая. Сервер IIS (web-сервер под Windows) под Windows 10 уже поддерживает HTTP/2, но Apache и Nginx немного отстают. Для пользователя визуально ничего не изменится. Он по-прежнему будет видеть http или https перед адресом – разница будет заметна только по скорости загрузки страниц.

Социальные сети

комментарии (0)

Войдите, чтобы оставить комментарий