Middle
HTTP/1 ve HTTP/2 protokolleri arasındaki farklar nelerdir?
sobes.tech yapay zeka
AI'dan gelen yanıt
HTTP/1.1 ve HTTP/2 arasındaki temel farklar:
-
Çoklama (Multiplexing):
- HTTP/1.1: Tek bir bağlantı üzerinden ardışık isteklerin işlenmesi. Paralel yüklemeler için birkaç TCP bağlantısı gerekiyordu.
- HTTP/2: Tek bir TCP bağlantısı üzerinde çoklama. Aynı anda birden fazla istek göndermeye ve yanıt almaya izin verir, birbirlerini engellemeden.
-
Başlık sıkıştırma (HPACK):
- HTTP/1.1: Başlıklar sıkıştırılmadan iletilir, bu büyük sayıda istekle gereksiz olabilir.
- HTTP/2: HPACK algoritması kullanılarak başlıklar sıkıştırılır. Gönderilen veri boyutunu azaltır.
-
Akış önceliği:
- HTTP/1.1: Önceliklendirme yoktu.
- HTTP/2: İstemci, farklı akışlara öncelikler atayabilir, bu da sunucu tarafından işleme sırasını etkiler.
-
Sunucu itmesi (Server Push):
- HTTP/1.1: İstemci, her kaynağı (CSS, JS, resimler) açıkça talep etmelidir.
- HTTP/2: Sunucu, sayfa görüntülemesi için gerekli olabilecek kaynakları, istemci talep etmeden önce gönderebilir.
-
İkili protokol:
- HTTP/1.1: Metin tabanlı, okunması görece kolay.
- HTTP/2: İkili protokol, ayrıştırma ve iletim açısından daha verimlidir.
Karşılaştırmalı tablo:
| Özellik | HTTP/1.1 | HTTP/2 |
|---|---|---|
| Çoklama | Yok (birden fazla TCP) | Evet (bir TCP) |
| Başlık sıkıştırma | Yok | Evet (HPACK) |
| Akış önceliği | Yok | Evet |
| Sunucu itmesi | Yok | Evet |
| Protokol formatı | Metin | İkili |
| Head-of-Line blokaj problemi | Mevcut (bir TCP için) | Çoklama sayesinde azaltılmış |
Çoklama örneği (kavramsal):
// HTTP/1.1: Ardışık istekler
fetch('/resource1')
.then(() => fetch('/resource2'))
.then(() => fetch('/resource3'));
// HTTP/2: Aynı bağlantı üzerinden paralel istekler
// Tarayıcıda bu otomatik olarak gerçekleşir
// Kavramsal olarak, istekler neredeyse aynı anda gönderilebilir