Əsas məzmuna keçin
BestSite

3 dəqiqəyə oxunur

HTTP və HTTP/2: əsas fərqlər

HTTP/1.1 ilə HTTP/2 arasındakı əsas fərqləri ətraflı araşdırırıq: multipleksləşdirmə, başlıqların sıxılması, Server Push və onların saytların sürətinə təsiri.

HTTP və HTTP/2: əsas fərqlər

HTTP/1.1-in problemi

HTTP müasir vebin təməlidir. 1997-ci ildə təqdim olunduğu vaxtdan bəri HTTP/1.1 hər gün milyardlarla sorğuya xidmət edir. Lakin onun arxitekturasında fundamental bir məhdudiyyət var: o, hər TCP bağlantısında ciddi “bir sorğu — bir cavab” modeli ilə işləyir.

Bu, növbənin başında bloklanma (Head-of-Line Blocking, HOL) adlanan məşhur darboğaz yaradır: brauzer cari sorğunun cavabını almayana qədər növbəti sorğunu göndərə bilmir. Bunu aşmaq üçün brauzerlər hər domen üçün 6–8 paralel bağlantı açır, proqramçılar isə müxtəlif üsullara əl atırlar:

  • CSS və JavaScript fayllarını bir fayla birləşdirirlər;

  • sorğuların sayını azaltmaq üçün şəkil spraytlarından istifadə edirlər;

  • resursları bir neçə domen arasında paylayırlar (domain sharding).

Bu cür həll yolları layihəni və onun dəstəyini mürəkkəbləşdirir. HTTP/2 məhz bu problemləri həll etmək üçün yaradılıb.

HTTP/2 nə gətirir

Multipleksləşdirmə — əsas yenilik

HTTP/2-nin ən böyük üstünlüyü multipleksləşdirmədir. Artıq bir TCP bağlantısı eyni anda yüzlərlə sorğu və cavabı ötürə bilir. Onların hər biri unikal axın identifikatoru ilə işarələnmiş kiçik binar freymlərə bölünür, buna görə də server və klient onları sərbəst şəkildə növbələşdirə bilir.

Bu, HTTP səviyyəsində HOL bloklanmasını aradan qaldırır və domain sharding, faylların birləşdirilməsi kimi üsulları tamamilə lazımsız edir.

Binar protokol

HTTP/1.1 mətn əsaslı protokoldur: başlıqlar və mesajın məzmunu oxunaqlı sətirlər şəklində ötürülür. HTTP/2 isə kompakt binar formata keçib. Nəticədə mesajların emalı xeyli sürətli, səmərəli və xətalara daha davamlı olub.

HPACK ilə başlıqların sıxılması

HTTP/1.1-də Cookie, User-Agent və Authorization kimi başlıqlar hər sorğu ilə tam şəkildə göndərilir. Çox vaxt bu, təkrar-təkrar ötürülən yüzlərlə baytdır.

HTTP/2 başlıqları HPACK alqoritmi ilə sıxır. O, əvvəl göndərilmiş başlıqların ortaq cədvəlini saxlayır və yalnız dəyişiklikləri ötürür. Adətən bu, başlıqların həcmini 85–95% azaldır.

Server Push

HTTP/2 serverlərə resursları klient onları istəməmişdən əvvəl göndərmək imkanı verdi. Məsələn, brauzer HTML səhifəni istədikdə server lazım olacağını bildiyi CSS və JS fayllarını dərhal göndərə bilər.

Praktikada Server Push-u düzgün qurmaq çətin oldu və o, həmişə sürəti artırmırdı. HTTP/3-də bu imkandan faktiki olaraq imtina edilib.

Axınların prioritetləşdirilməsi

HTTP/2 klientə hər axına prioritet səviyyəsi təyin etməyə imkan verir. Brauzer CSS-in fon şəkillərindən daha vacib olduğunu bildirə bilər və server ötürmə qabiliyyətini daha ağıllı bölüşdürür.

Müqayisə

  • Format: HTTP/1.1 — mətn, HTTP/2 — binar.

  • Bağlantılar: HTTP/1.1 — 6–8 paralel bağlantı, HTTP/2 — bir multipleks bağlantı.

  • Başlıqlar: HTTP/1.1-də tam təkrarlanır, HTTP/2-də HPACK ilə sıxılır.

  • Server Push: HTTP/1.1-də yoxdur, HTTP/2-də var.

  • Prioritetləşdirmə: HTTP/1.1-də yoxdur, HTTP/2-də var.

  • Şifrələmə: HTTP/1.1-də məcburi deyil, HTTP/2-də praktiki olaraq məcburidir (TLS).

Real performansa təsiri

HTTP/2-yə keçid adətən səhifələrin yüklənmə müddətini 10–50% qısaldır, xüsusən də çoxlu resursu olan səhifələrdə. Ən böyük qazanc yüksək gecikməli şəbəkələrdə — mobil internetdə və coğrafi baxımdan uzaq serverlərlə işləyərkən hiss olunur.

Ən xoşu isə odur ki, tətbiqin kodunu dəyişmək lazım deyil. HTTP/2 nəqliyyat səviyyəsində işləyir, ona görə də adətən onu serverdə və ya CDN-də aktivləşdirmək kifayətdir.

HTTP/2-dən istifadə etdiyinizi necə yoxlamaq olar

Brauzerdə DevTools-u açın (F12), Network bölməsinə keçin və Protocol sütununu aktivləşdirmək üçün sütun başlıqlarının üzərində sağ klikləyin. HTTP/2 bağlantıları üçün orada h2 göstəriləcək. Müasir saytların və CDN-lərin əksəriyyəti artıq HTTP/2 üzərindən işləyir.

Nəticə

HTTP/2 böyük irəliləyişdir. Multipleksləşdirmə, başlıqların sıxılması və binar protokol saytların daha sürətli yüklənməsini təmin edir və proqramçılardan bir sətir kodu belə dəyişməyi tələb etmir. Əgər infrastrukturunuz hələ də HTTP/1.1 üzərində işləyirsə, yeniləmə vaxtıdır.

Layihənizdən danışın

Nə etmək istədiyinizi bir neçə cümlə ilə yazın. Suallarımızla və ya ilkin qiymətlə sizə cavab verəcəyik.

E-poçtoffice@bestsite.az

Müraciətdən sonra nə olur

  1. 1Müraciəti oxuyuruqTapşırığı öyrənirik, lazım olsa, dəqiqləşdirici suallar veririk.
  2. 2Detalları müzakirə edirikMəqsədləri, müddəti və büdcəni anlamaq üçün zəng edirik və ya yazışırıq.
  3. 3Qiymətləndirmə göndəririkMüddət və qiymət üzrə ilkin qiymətləndirmə hazırlayırıq.

Formanı göndərməklə məxfilik siyasətini qəbul edirsiniz.