Middle
HTTP/1 və HTTP/2 protokolları arasındakı fərqlər nədir?
sobes.tech Süni İntellekt
AI-dan cavab
HTTP/1.1 və HTTP/2 arasındakı əsas fərqlər:
-
Çoxlama (Multiplexing):
- HTTP/1.1: Bir əlaqədə ardıcıl sorğuların işlənməsi. Paralel yükləmələr üçün bir neçə TCP əlaqəsi lazım idi.
- HTTP/2: Bir TCP əlaqəsində çoxlama. Eyni zamanda bir neçə sorğu göndərməyə və cavablar almağa imkan verir, bir-birini bloklamadan.
-
Başlıq sıxışdırma (HPACK):
- HTTP/1.1: Başlıqlar sıxışdırılmadan ötürülür, bu çox sayda sorğu ilə artıq ola bilər.
- HTTP/2: HPACK algoritmi ilə başlıqlar sıxışdırılır. Göndərilən məlumatların ölçüsünü azaldır.
-
Axınların prioritetləşdirilməsi:
- HTTP/1.1: Prioritet yox idi.
- HTTP/2: Müştəri müxtəlif axınlara prioritetlər təyin edə bilər, bu da server tərəfindən işlənmə ardıcıllığını təsir edir.
-
Server tərəfindən göndərmə (Server Push):
- HTTP/1.1: Müştəri hər bir resursu (CSS, JS, şəkillər) açıq şəkildə tələb etməlidir.
- HTTP/2: Server, səhifənin göstərilməsi üçün lazım olan resursları, müştəri tələb etmədən əvvəl göndərə bilər.
-
İkili protokol:
- HTTP/1.1: Mətn əsaslı protokol, nisbətən asan oxunur.
- HTTP/2: İkili protokol, analiz və ötürmə üçün daha səmərəlidir.
Müqayisəli cədvəl:
| Xüsusiyyət | HTTP/1.1 | HTTP/2 |
|---|---|---|
| Çoxlama | Yox (bir neçə TCP) | Bəli (bir TCP) |
| Başlıq sıxışdırma | Yox | Bəli (HPACK) |
| Axın prioriteti | Yox | Bəli |
| Server tərəfindən göndərmə | Yox | Bəli |
| Protokol formatı | Mətn | İkili |
| Head-of-Line bloklaması problemi | Mövcuddur (bir TCP üçün) | Multiplexing sayəsində azaldılmış |
Çoxlama nümunəsi (konceptual):
// HTTP/1.1: Ardıcıllıqla sorğular
fetch('/resource1')
.then(() => fetch('/resource2'))
.then(() => fetch('/resource3'));
// HTTP/2: Eyni əlaqədə paralel sorğular
// Brauzerdə bu avtomatik baş verir
// Konseptsual olaraq, sorğular demək olar ki, eyni vaxtda göndərilə bilər