Завжди бути на крок попереду, передбачати, що потрібно клієнту, і пропонувати йому це ще до того, як він попросить... Здається, це і є секрет успішного бізнесу, особливо в божевільному темпі XXI століття. І якраз за таким принципом працює HTTP/2 Server Push — технологія, яку ми сьогодні розглянемо в якості однієї з можливостей оптимізувати швидкість сайту.
HTTP/2 та його секрети
Перш за все, давайте подивимось на HTTP/2 — оновлену версію відомого протоколу. Перехід на неї може подарувати сайту помітне підвищення швидкодії без жодних змін в коді чи інших «магічних трюків». Що ж робить HTTP/2 кращим за його попередника — HTTP/1.1? Дві основні причини — це єдине TCP-з’єднання та концепція Server Push.
Єдине TCP-з’єднання
HTTP/1.1 використовує окремі TCP-з’єднання для роботи з різними запитами, а це може сповільнити швидкість сайту. На щастя, HTTP/2 вирішує цю проблему, застосовуючи єдине TCP-з’єднання для всіх запитів.
Усі запити і відповіді надсилаються через це з’єднання паралельно. Сервер і браузер спілкуються між собою за допомогою так званих потоків, що позначені конкретними ID. Так набагато швидше!
HTTP/2 Server Push
А тепер переходимо до ще однієї чудової новинки HTTP/2 — Server Push. Сучасні сайти, як правило, використовують різні типи ресурів, такі як HTML, таблиці стилів і скрипти (index.html, styles.css і script.js). Традиційно відбувається так: коли браузер робить запит до сервера, він в першу чергу отримує і парсить HTML. В процесі цього він розуміє, що йому потрібні також JavaScript та CSS, і робить відповідні запити по черзі. «Спостерігаючи» за цими «круговими рейсами», сервер позіхає терпляче чекає. При цьому мережа лишається недостатньо завантаженою.
HTTP/2 Server Push змінює правила гри. Він дозволяє серверу передбачати, які ресурси будуть потрібні, і надсилати («пушити») їх заздалегідь, не чекаючи, коли браузер їх попросить. Тож поки браузер парсить HTML, інші файли (JavaScript і CSS) уже на підході. Такий принцип роботи веде до збільшення швидкості завантаження сторінок.
Іншими словами, сервер бере на себе ініціативу і пропонує більше ресурсів у відповідь на початковий запит браузера. Крім того, популярними випадками використання Server Push є редиректи, ймовірні сторінки, на які користувач може перейти, і так далі.
Фрейм PUSH_PROMISE
Тепер подивимось, як сервер дає обіцянки та здійснює їх з HTTP/2 Server Push. Все просто. Перш, ніж надсилати дані, він готує фрейм PUSH_PROMISE, описуючи, які ресурси збирається надіслати, тож браузер знає, чого очікувати.
Мудрий підхід
Для кращих результатів потрібно підходити до застосування HTTP/2 Server Push з обережністю. Зокрема, не варто «пушити» надто багато, а тільки те, що дійсно буде потрібно. Крім того, важливо подбати про правильне кешування, аби файли не нав’язувалися браузерам знову і знову.
HTTP/2 Server Push може бути дуже потужним інструментом підвищення швидкості, якщо він в хороших руках. Зв’яжіться з нами — і ми допоможемо вам використовувати всі його можливості на повну силу.
Ми знаємо, чого ви очікуєте, перш ніж ви попросите це. І ми готові вам це надати! Обіцяємо ;)