HTTP/2 - еще один способ увеличить производительность сайта (инструкция)
Есть два типа веб разработчиков- те кто уже используют НТТР/2 для увеличения производительности сайта и те кто готовы использовать HTTP/2 в своих будущих проектах. Если вы ещё не слышали про HTTP/2, то вам нужно многое наверстать в этом вопросе. Давайте приступим.
Итак, что же такое HTTP/2. Это всего лишь маркетинговое словечко или действительно что-то стоящее внимания?
HTTP/2 - это последняя версия знаменитого сетевого протокола HTTP- Hypertext Transfer Protocol , который используется во Всемирной паутине. Этот протокол даёт возможность разделить текстовую и мультимедийную информацию, используя так называемые веб линки между неподключенными узлами, такими как браузер и сервер. Например, ваш браузер использует этот протокол для загрузки данной статьи. Но без протокола HTTP не было бы Интернета!
Перед обзором преимуществ HTTP/2 и пояснениями причин почему он ускорит ваш сайт, давайте сначала разберемся как данные передаются между независимыми системами.
СЕТЕВОЙ ПРОТОКОЛ HTTP
НТТР использует технологию “клиент-сервер”. Это значит, что ваш браузер (Firefox, Chrome и т.д.) является “клиентом”, а наш блог работает на сервере хостинга. Например, эта статья может быть идентифицирована и загружена с помощью URL - Uniform Resource Locator (уникальный определитель ресурса). Если вы открываете URL этой статьи, ваш клиент делает НТТР запрос на сервер и получает информацию в HTML формате. Как только трансфер данных (на транспортном уровне по протоколу ТСР) будет проведён, ваш браузер отобразит полученный ответ в HTML коде для вывода на экран текста, который вы сейчас читаете.
Исторический факт: Термин «hypertext» впервые был использован Тэдом Нельсоном в 1965 год (проект Xanadu). HTTP и HTML были созданы Тимом Бернерс-Ли и его командой в CERN в 1989 году. Между прочим, первый сайт был опубликован 6 августа 1991 года.
Сетевой протокол поддерживает сессии и аутентификацию. Сессия это открытая последовательность транзакций запрос-ответ по ТСР соединению на определённый порт. Порт 80 используется для НТТР и 443 для НТТРS соединений. HTTPS это HTTP поверх SSL/TLS , который обозначает, что сквозное соединение создано через зашифрованный канал с помощью криптографического протокола Transport Layer Security (TLS) .
HTTP/1.0 и HTTP/1.1
Перед тем как HTTP/2 был представлен как стандарт, предыдущий протокол HTTP/1.1 был официальным стандартом. HTTP/1.1 — это усовершенствованная версия оригинальной HTTP/1.0 версии, официально представленной в 1996 году. Самая первая версия HTTP/1.1 была представлена в 1997 году , а улучшенная и обновлённая его версия была выпущена в 1999 года и повторно в 2014. Главное отличие между этими двумя устаревшими стандартами в поддержке множественных подключений в одном запросе.
HTTP/1.0 поддерживает лишь одно подключение за один запрос ресурса, тогда как HTTP/1.1 позволяет использовать то же самое подключение несколько раз, т.е. устанавливается постоянное подключение . Это даёт меньшую задержку и помогает загрузить современный сайт быстрее. Задержка - это время между запросом (причиной) и ответом (результатом). Этот параметр был улучшен в дальнейшем в HTTP/2 , но поясним главные преимущества нового стандарта позже.
ПОДРОБНЕЕ О МЕТОДАХ ЗАПРОСА HTTP
Чуть выше мы рассказали про запросы к серверу. HTTP определяет несколько методов запроса, которые могут быть использованы для разных целей и действий на определённом ресурсе. Наиболее распространённые методы это GET и POST, которые должны быть вам знакомы.
Когда вы вызываете URL, кликая по обычной ссылке, то ваш браузер создаёт GET запрос. Вы можете видеть GET параметры прямо в URL , например ?id=42 . В этом примере переменная GET это идентификатор со значением 42. Когда вы подписываетесь на услугу вводя свои данные в форме и кликаете на кнопку подтверждения, то ваш клиент выполнит POST запрос. Кроме этих методов НТТР поддерживает несколько других методов, которые обычно не используются браузером во время интернет-сёрфинга. Вот эти методы:
- HEAD (подобное методу GET, но без тела ответа),
- PUT (меняет или создаёт ресурс),
- DELETE (удаляет ресурс),
- TRACE (эхо-запрос),
- OPTIONS (возвращает поддерживаемые HTTP методы),
- CONNECT (преобразовывает запросы в TCP/IP туннель),
- PATCH (применяет изменения для ресурса).
HTTP ОТВЕТЫ И КОДЫ СТАТУСОВ HTTP
Давайте сделаем краткий обзор ответов на запросы. Ответ сервера после запроса содержит не только тело ответа и HTML код для вывода загруженной страницы, но также и поля заголовков ответа. Эти поля содержат важную информацию и параметры о HTTP транзакции в установленном соединении, например используемый алгоритм шифрования или механизм кеширования. Для полноты описания нужно отметить, что эти важные параметры также отсылаются в полях заголовков запроса.
Первая строка HTTP ответа всегда содержит так называемый код статуса, который помогает клиенту правильно обработать ответ. Кто не знает печально известное сообщение “Ошибка сервера 500” . Именно этот статус код 500 был отослан сервером в браузер из-за внутренних проблем сервера. Есть несколько главных категорий , которые определяются по первой цифре:
- 1[xx] – информационный,
- 2[xx] – успешный,
- 3[xx]– переадресация,
- 4[xx] – клиентская ошибка,
- 5[xx] – серверная ошибка.
Преимущества HTTP/2
HTTP/2 поддерживает большую часть высокоуровневого синтаксиса версии HTTP/1.1 . Например, методы запроса или коды статусов одинаковые. Самые важные изменения - это способ при помощи которого пакеты данных создаются и передаются между узлами.
Сервер может передавать данные клиенту даже если они ещё не были запрошены браузером, но необходимы браузеру для полного отображения страницы. Дополнительные запросы могут быть мультиплексированы (запросы или ответы комбинируются) и переданы конвейерным способом (множество запросов без ожидания получения соответствующих ответов) при одном ТСР соединении. Эти улучшения уменьшают задержку и ведут к лучшей скорости загрузки страницы.
Итак, что необходимо, чтобы начать пользоваться преимуществами HTTP/2 ? Оба, клиент и сервер, должны понимать и поддерживать этот стандарт. Все популярные современные браузеры уже имеют встроенную поддержку HTTP/2 на данный момент. Ваш браузер будет автоматически загружать веб-страницы через HTTP/2 если сервер поддерживает его. (то есть, если он включен).
Как мне активировать HTTP/2 на своем сервере? - Используйте Plesk!
Настройка HTTP/2 - это действительно просто! Как всегда, Plesk сделал всю трудную работу за вас, пока вы отдыхали и занимались своим бизнесом. Если у вас уже есть Plesk на вашем сервере, то вам достаточно сделать несколько кликов, чтобы включить поддержку современного, быстрого сетевого стандарта.
Команда Plesk создала расширение безопасности Security Advisor , с помощью которого можно активировать HTTP/2 , а также активировать сертификат SSL и поддержку HTTPS в 1 клик в WordPress. Откройте каталог расширений Plesk и установите Security Advisor. Расширение абсолютно бесплатное и не только защитит ваш сайт , но и ускорит!
Перевод: Сергей Гордеев (Русоникс)
Оригинал