Переходим на HTTP/2

Необходимый минимум знаний о новом сетевом протоколе.

В 2015 году на смену HTTP 1.0 пришел новый усовершенствованный протокол передачи данных. Сайты по всему миру добавляют поддержку HTTP/2 на свои серверы. Для каждого из нас пришло время начать внедрять новую технологию в повседневную жизнь.

Выгоды от перехода

  • Некоторые сайты будут работать ощутимо быстрее (пока примерно 1 ресурс из 10, но сайтов поддерживающих HTTP/2 становиться больше с каждым днем);
  • Передаваемые по сети данные будут в большой безопасности;
  • Используя HTTP2, вы предпринимаете еще одну попытку не отстать от жизни.

Как приобщиться к прогрессу?

Вкратце: убедиться, что браузер поддерживает HTTP2, установить нужное дополнение и расслабиться.

Конкретные рекомендации для пользователей разных браузеров:

Firefox

Обновить браузер и поставить плагин SPDY Indicator.

Chrome

Обновить браузер и установить дополнение SPDY Indicator.

Opera

Установить дополнение FossBytes.

Safari

Временно перейти на другой браузер и следить за новостями…

Internet Explorer

Временно перейти на другой браузер и следить за новостями. Или попробовать тестовую реализацию поддержки протокола в браузере Internet Explorer, входящим в состав операционной системы Windows 10 Technical Preview.

Что делать веб-разработчикам?

1. Перевести сайт на сервер с поддержкой HTTP/2: H20, Apache Traffic Server и nghttp2. Либо поставить соответсвующие патчи для Apache или ngnix.

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

Подробности для любопытных

Чтобы понять достоинства HTTP/2 надо разобраться, чем был плох HTTP 1.0.

В 2011 году среднестатическая интернет страница представляла собой 800 Кб данных и 80 отдельных объектов, а в 2015 уже 2100 Кб и 100 объектов.

При загрузке страницы для каждого объекта, картинки или файла со скриптом, производится отдельный запрос к серверу. К примеру, когда вы открываете iphones.ru, происходит 161 http-запрос.

iphones_test

Этот факт замедляет загрузку сайтов (задержка создается за счет времемни ожидания ответа сервера на каждый запрос) и повышает вероятность сбоев в работе ресурса.

Проверить сколько http-запросов выполняется при загрузке страницы можно здесь.

Некоторые веб-разработчики стараются сократить количество http-запросов и применяют для этого разнообразные уловки. К примеру:

  • Объединение нескольких картинок в один спрайт и нарезка их средствами CSS/JavaScript;
  • Объединение всех внешних js-скриптов/css-таблиц в один файл;
  • Шардинг (распределение данных для загрузки страниц по максимальному числу хостов).

Эти приемы в некоторой степени ускоряют работу сайтов, но глобально решить проблему может только введение нового протокола.

В http/2 несколько объектов объединяются в один фрейм (HEADERS, DATA). Эта возможность позволяет загрузить множество пакетов данных с помощью одного соединения, что дает ощутимый прирост скорости загрузки.

Еще в новом протоколе более эффективный метод сжатия заголовков. Эта мелочь тоже вносит вклад в увеличение скорости загрузки страниц.

Крупным недостатком HTTP 1.0 является безопасность. Уже не первый десяток лет в СМИ регулярно появляются новости о новых уязвимостях http и https. Создатели новой версии серьезно поработали над устранением подобных проблем и вывели безопасность на новый уровень.

Но многочисленные исследования показывают, что у нового протокола с безопасность все еще далеко не идеально. Одним из самых интересных материалов об этом, на мой взгляд, является доклад от Yahoo Security)

Подробную техническую информацию о HTTP/2 можно найти в:

  • Документе HTTP2 Explained;
  • Спецификации RFC 7540, опубликованной 15 мая 2015 года;
  • Блоге одного из авторов проекта Даниэля Штейнберга.

Что дальше?

На подходе еще один протокол QUIC! В нем будут решены многие проблемы HTTP 2 (прежде всего речь идет о безопасности). Экспериментальная версия QUIC внедрена в браузер Chrome и на серверы некоторых сервисов Google. Но о его массовом внедрении говорить пока рано.

©  iphones.ru