HTTP / 2 является новым поколением протокола для замены протокола HTTP/1.1, который вы используете в ваших ежедневных задач при работе в Интернете. Основываясь на fabulous SPDY, этот новый протокол HTTP ориентирован на обеспечение максимальной производительности когда – либо между сетевыми соединениями и конечными пользователями. В частности, он направлена на улучшение задержки конечных пользователей и загруженности сети. Его главная цель состоит в том, чтобы разрешить использование одного соединения между клиентским браузерами и веб – сайтом.
Основные возможности HTTP/2
Истинное мультиплексирование: HTTP/2 позволяет запросам выполнятся параллельно и не по порядку, и не по одному , как в протоколе HTTP/1.1.
Одно постоянное соединение: С истинной функции мультиплексирования, все объекты, размещенные на сайте, могут быть загружены параллельно, используя только одно соединение. В HTTP/1.1, если вы хотите, чтобы загрузить параллельные объекты, вы были вынуждены открыть несколько соединений (не является эффективным с точки зрения использования сети).
Двоичное кодирование: Заголовки отправляются закодированными в двоичном формате. Это позволяет экономить байты на пути, пока информация не достигнет браузер вашего клиента. В HTTP/1.1, он был послан, используя обычный текст, который вызывал больше расходов с точки зрения использования полосы пропускания.
Сжатие заголовков: Заголовки также сжимаются с сжатием HPACK, что помогает уменьшить общее количество данных по сети.
SSL/TLS шифрования: С HTTP/2 SSL/TSL, шифрование является обязательным. Это контролируется и определяется веб – браузерами (вместо этого в RFC), которые в настоящее время поддерживают новый протокол HTTP/2. HTTP/2 заботится не только о скорости, но и о вашей безопасности путем принятия шифрования SSL / TSL в качестве обязательного требования.
Примечания перед включением HTTP/2 на Nginx
1. HTTP/2 в настоящее время доступно для пользователей Nginx и пользователей Nginx Plus (коммерческая версия Nginx).
2. Если вы не имеете SSL шифрование на вашем сайте, вы должны перенаправить весь трафик SSL/TLS, в качестве HTTP/2 работает с шифрованием SSL / TLS. Убедитесь, что ваш сайт полностью настроен для работы с SSL-сертификатом.
3. SPDY и HTTP/2 не могут работать вместе. Удалите вариант “SPDY” из всех директив listen внутри конфигурации Nginx, и замените его параметрами ‘http2’ и ‘SSL’.
Как вы можете включить HTTP/2 на Nginx?
Чтобы включить поддержку HTTP/2 на Nginx, просто добавьте вариант “http2” для директив listen, которые ранее имели. Не забудьте включить параметр SSL, пример:
listen 443 ssl http2 default_server;
Полный выход внутри блока server{}:
server {listen 443 ssl http2 default_server ssl_certificate /etc/nginx/conf/ssl.crt/yoursite.com.crt; ssl_certificate_key /etc/nginx/conf/ssl.key/yoursite.com.key; ... ... }
Обновить Nginx, чтобы изменения вступили в силу:
nginx -s
Как вы можете сделать проверку работы HTTP / 2 на вашем сайте?
Необходимо добавить в браузер плагин HTTP/2 and SPDY indicator. Он доступен из магазина Google Chrome и Firefox.
Как насчет браузеров, которые не поддерживают HTTP/2?
Люди в Nginx Inc. уже имели это в виду, и потому, что в настоящее время 50% браузеров до сих пор не поддерживают HTTP/2, инженеры Nginx создали то, что они называют “Next Protocol Negotiation Negotiation (NPN).” Это расширение TLS позволяет Nginx обслуживать HTTP/1.x запросы, если браузер не поддерживает полностью HTTP/2.
Вывод
Как вы можете видеть, веб меняется очень быстро. Для того, чтобы продолжать расти, вы должны принять новые протоколы и способы, которые позволяют пользователям сократить время отклика страницы и использования сети. HTTP/2 является следующим поколением протокола HTTP. Если вы хотите быть частью этого нового изменения, попробуйте включить его на установке Nginx. Результаты удивлят вас.