HTTP/2 — долгожданное продолжение

Готовы ускорить все операции?

Здесь, в Майкрософт, мы развертываем в Internet Explorer поддержку первой существенной модификации протокола Hypertext Transfer Protocol с 1999 года. Прошло некоторое время, так что пора.

За прошедшие годы было предпринято много попыток оптимизировать веб-архитектуру, однако ни одна из них не достигала масштаба HTTP/2. Мы напряженно работали над созданием этого нового эффективного и совместимого стандарта в рамках рабочей группы IETF HTTPbis. По очевидным причинам он называется HTTP/2. И теперь он доступен и встроен в новый Internet Explorer, начиная с Windows 10 Technical Preview.

Вы можете ознакомиться с обзором нашей работы в рамках рабочей группы HTTPbis на странице Microsoft Open Technologies HTTP/2.

Почему Internet Explorer лидирует в реализации протокола HTTP/2?

Быстродействие играет важную роль в мире, где все чаще используются операции в режиме реального времени и мобильные технологии. Значение имеют даже небольшие улучшения. Например, исследование Bing показало, что ускорение загрузки страниц на 10 мс приносит сайту 250 тыс. долл. США прибыли ежегодно. Ускорение на 100 мс, что составляет одну треть скорости моргания человеческого глаза, аннулировало три месяца работы по повышению вовлеченности пользователей через улучшенное соответствие результатов поиска. Было показано, что задержка отклика веб-страницы транзакций в 100 мс стоит крупным интернет-магазинам до 1 % от продаж из-за отказа от поиска. Таким образом, деятельность данной рабочей группы имеет реальный экономический эффект.

Что не так с прошлой ситуацией?

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

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

В чем заключаются отличия HTTP/2?

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

Что это означает для разработчиков?

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

А как обстоят дела с сетями? И безопасностью?

Меньшее количество и более низкая частота подключений также означают, что при использовании HTTP/2 нагрузка на сеть будет меньше. Если учесть масштабы современного Интернета, это может привести к существенному росту эффективности использования сетей, особенно мобильных. Благодаря эффективной модели подключений HTTP/2 влияние добавления TLS на сайт на быстродействие будет снижена, и больше администраторов смогут добавить TLS на свои сайты.

Когда HTTP/2 будет доступен?

Поддержка HTTP/2 включена в Internet Explorer в Windows 10 Technical Preview. Работа над HTTP/2 для Internet Explorer фактически началась в Windows 8.1 и Windows Phone 8.1, когда мы добавили поддержку экспериментального протокола SPDY 3.0. У нас был шанс набраться опыта использования протокола HTTP с мультиплексированием, и это помогло нам перейти к созданию HTTP/2, который станет отраслевым стандартом.

Протокол SPDY стал хорошей отправной точкой для стандарта HTTP/2, но это экспериментальный протокол, не предназначенный для многолетнего использования. С развитием HTTP/2 мы уберем поддержку SPDY во всех будущих версиях Internet Explorer. Веб-сайты и приложения, использующие SPDY, должны быть переведены на HTTP/2 без внесения изменений или посредством внесения небольших изменений.

Как разработчикам и владельцам сайтов подготовиться к этому изменению?

  • Запустите версию Internet Explorer из Windows 10 Technical Preview.
  • Запустите средства разработчика и включите трассировку сети.
  • Загрузите сайты, поддерживающие черновик 14 стандарта HTTP/2. Некоторые отличные сайты перечислены на страницах реализации в разделе: https://github.com/http2/http2-spec/wiki/Implementations.
  • Просмотрите поток пакетов HTTP/2.

В Technical Preview имеется также поддержка сервера HTTP/2. Это означает, что вы можете создавать сайты в IIS и полностью тестировать ваш контент. Примечание: в версиях Technical Preview браузера Internet Explorer и служб IIS небезопасные подключения (то есть HTTP) не поддерживаются в HTTP/2; в HTTP/2 поддерживаются только безопасные подключения (то есть HTTPS).

Воспользуйтесь нашей реализацией HTTP/2 и примите участие в ее тестировании! Поделитесь вашими отзывами через @IEDevChat или Connect.

— Роб Трейс (Rob Trace), старший руководитель программы

— Дэвид Уолп (David Walp), старший руководитель программы