HTTP/1.1 VS HTTP/2 — в чому різниця і який хостинг підійде

Версія протоколу HTTP/2 прийшла на заміну HTTP/1.1 у 2015 році, як давно дозріле та очікуване рішення. З часів попередника (1997 р.) витекло чимало води. І те, що легко міг опрацьовувати старенький HTTP (Hyper Text Transport Protocol) в нульових, сьогодні стає непомірним тягарем. Проблема загострювалась з постійно зростаючою кількістю HTTP запитів між клієнтом та сервером. І вже не важливо, який фреймворк чи CMS в основі, сучасний сайт давно перетворився в важкий та чисельний набір шрифтів, css стилів, іконок, графіки, скриптів та бібліотек, що підтягують інші скрипти та бібліотеки і так далі і так далі. Ось ця скромна сторінка (здавалось би, куди вже простіше) і та виконує десятки різноманітних HTTPS запитів під час завантаження. І кожен такий HTTP/1.1 запит — окреме TCP з’єднання. Звісно ж, це надлишкове навантаження і на сервер, і на мережу, збільшений загальний час очікування. А що вже казати про реально важкі та інтерактивні системи, де кількість паралельних запитів сягає обмежень браузера. Тут вже ніякою оптимізацією (агрегація/мінімізація/обфускація) не вирішити проблему в рамках HTTP/1.1. Єдиний раціональний підхід — увімкнути HTTP/2 протокол!

HTTP/2 працює лише з захищеними SSL/TLS з’єднанням. Детально про SSL/TLS сертифікати, їх різновидності та налаштування можете прочитати тут і ось тут.
Щоб дізнатися, за яким саме протоколом працює сайт (HTTP/1.1 чи HTTP/2), загляньте в консоль браузера або скористайтесь ресурсом https://http2.pro/.

Мультиплексування — об'єднання кількох HTTP запитів в єдиний TCP. Власне це і є основна концептуальна відмінність між протоколами HTTP/1.1 та HTTP/2. Тепер не потрібно кожен HTTP запит надсилати серверу окремим TCP. Що не тільки знімає зайве навантаження з мережі та сервера, але й суттєво пришвидшує роботу сайту в цілому. Окрім мультиплексування новий протокол реалізує механізм пріоритетності, де кожен потік має власний пріоритет завантаження. Таким чином можна регулювати, що саме віддати в першу чергу, а що може почекати.

Server push. Механізм передбачає можливість відправлення додаткових даних сервером клієнту за ініціативи сервера. В теорії річ можливо і хороша, але вона вимагає підтримки браузером, і далеко не всі оглядачі її підтримують чи вмикають по замовчуванню.

Headers. Відтепер усі заголовки відправляються в стисненому виді. Що само по собі зменшує загальний обсяг переданих даних. А ще HTTP/2 використовує новий алгоритм HPACK для запобігання відомим вразливостям.

HTTP/2 хостинг та налаштування протоколу
Пам'ять RAM Тестовий Період Ціна* Промокод Огляд
HostPro 10-30 ГБ 512-1536 МБ 7 днів від 3,45$/місяць -10%
Ukraine 3-15 ГБ 512-1536 МБ 5 днів від 114₴/місяць
HOSTiQ 25-75 ГБ 1536-2560 МБ 30 днів від 155₴/місяць
CityHost 5-30 ГБ 512-1024 МБ 10 днів від 66₴/місяць -10%
UkrLine 5-450 ГБ 128-5120 МБ 7 днів від 0.85$/місяць
Nic.Ua 1-10 ГБ 128-512 МБ 10 днів від 116₴/місяць
Parkovka 0,5-10 ГБ 128 МБ відсутній від 36₴/місяць
S-Host 5-15 ГБ 512 МБ 7 днів від 43₴/місяць
BestHosting 7,5-120 ГБ 128-256 МБ 7 днів від 1,84$/місяць
HyperHost 1-15 ГБ 256-1024 МБ 7 днів від 33₴/місяць

Питання спеціалізованого HTTP/2 хостингу мало місце лише на перших порах. В 2016 році Google оголосив про стовідсоткову підтримку протоколу, і стандарт пішов у маси. Подейкують, що пошукові алгоритми віддають перевагу HTTP/2 сайтам. Хтось пояснює це сугубо кращими поведінковими чинниками. Сьогодні усі професійні провайдери підтримують новий стандарт, а деякі навіть автоматично умикають його при наявності SSL/TLS сертифікату. Якщо ж HTTP/2 не увімкнено автоматично, зробити це можна самостійно в панелі адміністрування або запитом в підтримку. Для Nginx конфігурації достатньо замінити listen 443 ssl; на listen 443 ssl http2; та застосувати зміни командою $ service nginx reload.

2022-10-04   196