Server Push

Odgrzewam temat server push ze względu na oficjalne wsparcie tej funkcjonalności przez NGINX

20 lutego nginx poinformował o oficjalnym wsparciu server push w swoim serwerze.

Świetnie ten mechanizm opisał Jake Archibald. Poniżej mój stary ale jary opis:

Na czym polega Server Push w HTTP/2?
Najprościej jak się da:
Załóżmy na wstępie, że mamy już ustanowione połączenie:

  1. Klient wysyła do serwera żądanie, np. o index.html
  2. Serwer otrzymuje żądanie. Wie, że klient żądający index.html będzie potrzebował również np. bottom.js (skąd wie? tego specyfikacja HTTP/2 nie narzuca, może to być zrealizowane jako lista zasobów wymaganych do zrenderowania danej strony)
  3. Serwer wysyła do klienta ramkę PUSH_PROMISE rezerwując równocześnie strumień dla wysłania pliku – pyta się w ten sposób, czy klient chciałby ewentualnie przyjąć bottom.js
  4. Klient zgadza się na przyjęcie pliku
  5. Serwer wysyła plik do klienta wykorzystując zarezerwowany strumień. Klient zapisuje go w cache.
  6. Klient za chwilę potrzebuje bottom.js – pobiera go z cache, nie musi czekać na pobranie z serwera.

4a. Klient może nie chcieć proponowanego pliku – serwer mu go nie przesyła

http/2

#miroburnchallenge 21/30

Server Push

Dodaj komentarz

This site uses Akismet to reduce spam. Learn how your comment data is processed.