Переходим на http2

HTTP/2 - это новая версия протокола HTTP, выпущенная в 2015 году. Его цель - повысить производительность и скорость загрузки сайта.

  • HTTP/2 бинарный, а не текстовый протокол как HTTP/1, что делает его компактнее и эффективнее.
  • В HTTP/2 используется только одно соединение до хоста, вместо множества соединений передающих по одному файлу.
  • Способен загружать несколько элементов страницы параллельно через одно TCP-соединение.
  • Позволяет загружать ресурсы в порядке приоритета - сначала HTML, затем CSS, JavaScript и изображения.
  • Автоматически сжимает HTTP-заголовки протоколом HPACK.
  • Умеет посылать содержимое, которое ещё не было запрошено клиентом. Эта возможность позволяет серверу отправлять дополнительную информацию клиенту, которая не запрашивается, но ожидается в будущих запросах. Например, если клиент запрашивает ресурс X, и понятно, что ресурс Y ссылается на запрошенный файл, сервер может отправить и Y вместе с X вместо того, чтобы ждать соответствующего запроса клиента.
  • На сегодняшний день все популярные браузеры для компьютеров и мобильных устройств поддерживают работу по протоколу HTTP/2.

При внедрении HTTP2 нужно отказаться от HTTP/1.x оптимизаций:

  • Шардинг. Размещение файлов на разных доменах для параллельной передачи браузеру; сети доставки контента (CDNs) делают это автоматически. Такая оптимизация может повредить производительности HTTP/2. Вы можете использовать дружественный с HTTP/2 шардинг для пользователей HTTP/1.x (см. дружественный HTTP/2 шардинг).
  • Использование спрайтов. Спрайтами называют коллекции картинок, которые передаются в виде одного файла; после этого на стороне клиента картинки по необходимости извлекаются из коллекции. Эта оптимизация менее эффективна при использовании HTTP/2, хотя все равно может быть полезна.
  • Объединение файлов. Подобно спрайтам, часть файлов, которые обычно хранятся отдельно, объединяются в один. После чего браузер находит и запускает код по мере необходимости в рамках склеенного файла.
  • Встраивание файлов. CSS, JavaScript и даже изображения вставляются непосредственно в HTML-файл, что уменьшает количество передаваемых файлов, за счет увеличения исходного HTML-файла.

Смотрите также:


.