HTTP/2 ve HTTP/3: Yeni Nesil Web Protokolleri

08 Ekim 2026 · 11 dk okuma

Web tarayıcıları ile sunucular arasındaki veri iletişimi, uygulama katmanında yer alan HTTP protokolü aracılığıyla gerçekleştirilir. HTTP, kaynakların istemciye aktarılması için istek ve yanıt mesajlarına dayanan bir yapı sunar. Protokolün sürümleri, internetin ihtiyaçları doğrultusunda zaman içinde gelişmiştir. HTTP/1.1 uzun yıllar boyunca yaygın biçimde kullanılmış; ancak web sayfalarının karmaşıklaşması, çok sayıda kaynağın aynı anda yüklenmesi ve gecikme duyarlı uygulamaların artması, yeni taşıma yaklaşımlarını gündeme getirmiştir. HTTP/2 ve HTTP/3, bu ihtiyaçlara yanıt veren yeni nesil protokol sürümleri olarak tanımlanır.

HTTP Protokolünün Kısa Tarihçesi ve Temel İşleyişi

HTTP/0.9, yalnızca HTML belgelerinin basit biçimde alınmasını sağlayan ilk sürüm olarak bilinir. HTTP/1.0, istek ve yanıtlara başlık alanları ekleyerek farklı içerik türlerinin taşınmasına olanak tanımıştır. HTTP/1.1 ise kalıcı bağlantılar, parçalı aktarım ve ana makine başlığı gibi özelliklerle web tarayıcılarının çok sayıda kaynağa eriştiği sayfaları desteklemiştir. Bu sürüm, istemci ile sunucu arasındaki bağlantının yeniden kullanılmasına imkân vererek her istek için yeni bir bağlantı kurulmasını gerektirmemiştir.

HTTP, metin tabanlı bir protokoldür. İstemci bir kaynak için sunucuya istek gönderir; sunucu ise durum kodu, başlık alanları ve gövde içeren bir yanıt döndürür. Bu model, web üzerindeki içerik paylaşımının temelini oluşturur. Ancak kaynak sayısının artması ve kullanıcıların daha hızlı yanıt beklemesi, protokolün taşıma katmanındaki davranışını da önemli hâle getirmiştir.

İstek-Yanıt Modeli

İstek-yanıt modelinde her kaynak için ayrı bir HTTP mesajı oluşturulur. Tarayıcı, sayfayı oluşturan CSS, JavaScript, görsel ve yazı tipi gibi bileşenleri ayrı isteklerle talep eder. Sunucu, her isteğe bağımsız yanıt verir. Bu yapı, içeriğin önbelleklenmesi ve durum kodlarıyla yönetilmesi açısından belirgin bir düzen sağlar.

Kalıcı Bağlantılar ve Boru Hattı

HTTP/1.1 ile gelen kalıcı bağlantılar, aynı TCP bağlantısı üzerinden birden fazla isteğin gönderilmesine olanak tanır. Boru hattı adı verilen yaklaşımda istemci, önceki yanıtı beklemeden art arda istek gönderebilir. Ancak sunucu yanıtlarının sırayla dönmesi gerektiğinden, bu yaklaşım uygulamada sınırlı kalmıştır.

HTTP/1.1'in Teknik Sınırlamaları

HTTP/1.1, web'in ihtiyaçlarını uzun süre karşılamış olsa da sayfa başına kaynak sayısının artmasıyla bazı teknik sınırlamalar ortaya çıkmıştır. Tarayıcılar aynı anda bir ana makineye sınırlı sayıda bağlantı açabilir. Bu durum, çok sayıda kaynağın sırayla yüklenmesine ve gecikmenin artmasına yol açabilir.

  • Başlık alanlarının her istekte sıkıştırılmadan gönderilmesi, gereksiz veri tekrarına neden olabilir.
  • Aynı bağlantı üzerindeki isteklerin sıralı işlenmesi, öndeki bir isteğin yavaşlaması hâlinde sonraki istekleri bekletebilir.
  • Tarayıcı başına ana makine başına eşzamanlı bağlantı sınırı, paralel yüklemeyi kısıtlar.
  • Metin tabanlı başlık yapısı, ikili protokollere kıyasla daha fazla bayt taşınmasına sebep olabilir.

Bu sınırlamaları aşmak için alan adı parçalama, dosya birleştirme ve satır içi kaynak kullanımı gibi yöntemler uygulanmıştır. Ancak bu çözümler, uygulama geliştirme süreçlerine ek karmaşıklık getirmiştir.

HTTP/2'nin Getirdiği Yapısal Yaklaşımlar

HTTP/2, HTTP semantiğini koruyarak taşıma biçimini yeniden ele alan bir protokol sürümüdür. Metin tabanlı mesajlaşma yerine ikili çerçeveleme kullanır. Tek bir TCP bağlantısı üzerinden birden fazla istek ve yanıtın eşzamanlı olarak taşınmasına imkân tanır. Bu yapı, web sayfalarının daha az bağlantı ile yüklenmesine yardımcı olur.

İkili Çerçeveleme

HTTP/2'de mesajlar çerçeve adı verilen ikili parçalara ayrılır. Her çerçeve, türü, uzunluğu ve ait olduğu akışı belirten alanlar içerir. İkili yapı, ayrıştırma işlemini daha tutarlı hâle getirir ve metin tabanlı protokollerde görülebilen belirsizlikleri azaltır.

Çoklama

Çoklama, aynı TCP bağlantısı üzerinde birden çok isteğin ve yanıtın birbirine karışmadan ilerlemesini sağlar. Her istek ve yanıt bir akış kimliği ile ilişkilendirilir. Böylece tarayıcı, bir kaynağın yanıtını beklerken diğer kaynakların verilerini alabilir. Bu yaklaşım, HTTP/1.1'deki çoklu bağlantı ihtiyacını azaltır.

Başlık Sıkıştırma

HTTP/2, başlık alanlarını HPACK adı verilen bir yöntemle sıkıştırır. Aynı bağlantı üzerinden gönderilen isteklerde tekrar eden başlık alanları için dinamik tablo kullanılır. Bu yöntem, başlık verisinin daha az baytla iletilmesine katkı sağlar. Sıkıştırma, özellikle çok sayıda küçük istek içeren sayfalarda veri yükünü azaltabilir.

Sunucu İtişi

Sunucu itişi, istemcinin talep etmesini beklemeden belirli kaynakların sunucu tarafından gönderilmesine olanak tanır. Örneğin, bir HTML belgesiyle birlikte gerekli CSS veya JavaScript dosyası önceden iletilebilir. Bu özellik, kaynak yükleme sırasını iyileştirmeyi amaçlar. Ancak kullanımı, kaynakların önbelleklenme durumuna ve istemci davranışına bağlıdır.

Akış Önceliklendirme

HTTP/2, akışlara öncelik atanmasına izin verir. İstemci, hangi kaynakların daha önemli olduğunu belirterek sunucunun kaynakları bu doğrultuda göndermesini talep edebilir. Önceliklendirme, sayfanın görünür bölümünü oluşturan kritik kaynakların daha erken iletilmesine yardımcı olabilir. Uygulamada tarayıcılar ve sunucular bu mekanizmayı farklı biçimlerde yorumlayabilir.

HTTP/2'nin Performans Üzerindeki Etkileri

HTTP/2, tek bağlantı üzerinden çoklama ve başlık sıkıştırma gibi özellikleriyle kaynak yükleme süreçlerini etkiler. Çok sayıda küçük dosyanın bulunduğu sayfalarda bağlantı kurma maliyeti azalabilir. Başlık sıkıştırma, istek başına taşınan veri miktarını düşürebilir. Bununla birlikte, HTTP/2'nin TCP üzerinde çalışması, taşıma katmanından kaynaklanan bazı gecikmeleri tamamen ortadan kaldırmaz.

  • Tek TCP bağlantısı, el sıkışma sayısını azaltır.
  • Çoklama, aynı anda birden fazla kaynağın iletilmesini sağlar.
  • HPACK, başlık verisinin daha verimli taşınmasına katkı sunar.
  • Akış önceliklendirme, kritik kaynakların sırasını etkileyebilir.

HTTP/2'nin sağladığı kazanımlar; sunucu yapılandırması, ağ koşulları, kaynak sayısı ve istemci davranışı gibi etkenlere bağlı olarak değişebilir.

HTTP/3 ve QUIC Taşıma Protokolü

HTTP/3, HTTP semantiğini koruyarak taşıma katmanında TCP yerine QUIC protokolünü kullanan bir sürümdür. QUIC, UDP üzerinde çalışan ve güvenilirlik, sıralama, akış kontrolü ile şifreleme gibi işlevleri kendi bünyesinde barındıran bir taşıma protokolüdür. HTTP/3, bu yapı üzerinden çoklama ve bağlantı yönetimi sağlar.

QUIC'in Temel Özellikleri

QUIC, bağlantı kurulumunu ve şifreleme el sıkışmasını birleştirir. Taşıma katmanında akışları bağımsız olarak yönetir. Bir akıştaki paket kaybı, diğer akışların ilerlemesini doğrudan durdurmaz. Bu özellik, TCP üzerinde çalışan protokollerde görülebilen baş bloğu sorununa yönelik bir yaklaşım sunar.

TCP Üzerindeki Baş Bloğu Sorununa Yaklaşım

TCP, verileri sıralı bir bayt akışı olarak taşır. Bir paket kaybolduğunda, sonraki paketler uygulama katmanına teslim edilmeden önce kayıp paketin iletilmesi beklenir. HTTP/2'de tüm akışlar aynı TCP bağlantısını paylaştığı için bu durum, farklı kaynakların da gecikmesine yol açabilir. QUIC, her akışı ayrı ele alarak kayıp paketin yalnızca ilgili akışı etkilemesini hedefler.

Bağlantı Kurulumu ve 0-RTT

QUIC, TLS 1.3 ile bütünleşik bir el sıkışma yapısı kullanır. Daha önce bağlantı kurulmuş bir sunucuya yeniden bağlanılırken 0-RTT adı verilen yöntemle ilk veri paketleri daha erken gönderilebilir. Bu yöntem, bağlantı kurulumundan kaynaklanan gecikmeyi azaltmayı amaçlar. 0-RTT, yeniden oynatma saldırılarına karşı belirli önlemler gerektirir ve uygulama düzeyinde dikkatli kullanılması gereken bir özelliktir.

Taşıma Katmanında Şifreleme

QUIC'te şifreleme, taşıma protokolünün ayrılmaz bir parçasıdır. Başlık bilgilerinin bir kısmı da korunur. Bu yapı, ağdaki ara cihazların yalnızca sınırlı düzeyde bilgi görmesine imkân tanır. Şifreleme, TLS 1.3 tabanlıdır ve bağlantı kurulumuyla birlikte yürütülür.

HTTP/3'ün Çalışma Prensipleri

HTTP/3, HTTP/2'de olduğu gibi ikili çerçeveleme ve akış kavramlarını kullanır. Ancak bu yapıyı QUIC üzerinde çalıştırır. İstek ve yanıtlar, QUIC akışları içinde taşınır. Başlık sıkıştırma için QPACK adı verilen bir yöntem kullanılır. QPACK, HPACK'e benzer bir yaklaşım sunar; fakat QUIC akışlarının bağımsız ilerlemesi nedeniyle başlık sıkıştırma tablolarının yönetiminde farklı kurallar içerir.

  • HTTP/3, UDP üzerinde çalışan QUIC taşıma protokolünü kullanır.
  • Akışlar bağımsız yönetilir; bir akıştaki kayıp diğerlerini doğrudan etkilemez.
  • Bağlantı kurulumu ve şifreleme birlikte gerçekleştirilir.
  • QPACK ile başlık sıkıştırma yapılır.
  • 0-RTT, yeniden bağlantılarda gecikmeyi azaltmaya yardımcı olabilir.

Web Altyapısında Protokol Sürümlerinin Yeri

Web siteleri, tarayıcılar ve sunucular arasındaki uyumluluk, protokol sürümlerinin benimsenmesinde belirleyici bir unsurdur. HTTP/2 ve HTTP/3, çoğu modern tarayıcı ve sunucu yazılımı tarafından desteklenir. Bir web sitesinin hangi protokol sürümünü kullandığı; sunucu yapılandırmasına, TLS desteğine ve ağ altyapısına bağlıdır. İstemci ve sunucu, el sıkışma sırasında kullanılacak protokolü belirler.

  • Sunucu tarafında HTTP/2 desteği genellikle TLS ile birlikte sunulur.
  • HTTP/3 için QUIC desteği ve uygun UDP yapılandırması gerekir.
  • Tarayıcılar, desteklenen protokol sürümlerini bağlantı sırasında bildirir.
  • Protokol sürümü, sayfa yükleme davranışını ve kaynak kullanımını etkileyebilir.

HTTP/2 ve HTTP/3, web performansına ilişkin çalışmalarda taşıma katmanı, başlık yönetimi ve bağlantı kurulumu başlıkları altında değerlendirilir. Bu protokollerin etkileri, ölçüm araçları ve tarayıcı geliştirici araçları üzerinden incelenebilir.

Protokol Sürümlerinin Değerlendirilmesinde Teknik Unsurlar

HTTP/2 ve HTTP/3'ün çalışma prensipleri, önceki sürümlere göre farklı teknik yaklaşımlar içerir. HTTP/2, TCP üzerinde çoklama ve başlık sıkıştırma sağlar. HTTP/3 ise QUIC üzerinden akış bağımsızlığı ve bütünleşik şifreleme sunar. Bu farklılıklar, ağ koşullarına ve uygulama gereksinimlerine göre değişen sonuçlar doğurabilir.

Bir web sitesinin performansı yalnızca HTTP sürümüne bağlı değildir. Sunucu donanımı, içerik dağıtım ağı kullanımı, kaynak boyutları, önbellekleme politikaları ve istemci cihaz özellikleri de sayfa yükleme süresini etkiler. HTTP/2 ve HTTP/3, bu bileşenlerin tamamlayıcısı olarak değerlendirilir. Protokol sürümlerinin sağladığı mekanizmalar, doğru yapılandırıldığında web iletişiminin verimliliğine katkı sunabilir.