Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
HTTP/1.1, web tarayıcısı ile web sunucusunun kaynak istemek ve yanıt vermek için kullandığı, istek-cevap mantığıyla çalışan bir uygulama katmanı protokolüdür. Tarayıcı bir HTTP isteği gönderir; sunucu durum kodu, başlıklar ve gerekiyorsa içerikten oluşan bir yanıt döndürür. HTTPS kullanıldığında HTTP/1.1 trafiği ayrıca TLS ile şifrelenir.

Nasıl çalışır?​


Bir istemci önce sunucuya bağlantı açar, ardından isteğin yöntemini, hedef yolunu ve protokol sürümünü gönderir. HTTP/1.1'de Host başlığı zorunludur; aynı IP adresinde birden fazla alan adının barındırılabilmesini sağlar. Sunucu yanıtında genellikle şu bilgiler bulunur:

  • Durum satırı: İsteğin sonucunu belirtir; örneğin 200 OK başarılı bir yanıtı, 404 Not Found bulunamayan kaynağı ifade eder.
  • Başlıklar: İçeriğin türü, boyutu, önbellek davranışı ve bağlantı özellikleri gibi metaverileri taşır.
  • Gövde: HTML, CSS, JSON, görsel veya başka bir kaynak olabilir; bazı yanıtlar gövde içermez.

Örnek bir HTTP/1.1 isteği şöyledir:

Kod:
GET /index.html HTTP/1.1
Host: example.com
Connection: close

Buna karşılık sunucu örneğin şöyle yanıt verebilir:

Kod:
HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
Content-Length: 13
Connection: close

Hello, world!

Başlık bölümünden sonraki boş satır başlıkların bittiğini gösterir; her istekte veya yanıtta gövde bulunmaz. Örnekteki yanıtın Hello, world! gövdesi 13 bayttır; sondan ayrıca satır sonu eklenirse uzunluk da değişmelidir. Connection: close kullanıldığında sunucu yanıtı tamamladıktan sonra bağlantıyı kapatır. Aksi durumda HTTP/1.1'in kalıcı bağlantı davranışı sayesinde aynı TCP bağlantısı yeni isteklerde yeniden kullanılabilir.

HTTP/1.1'in temel özellikleri ve sınırları​


HTTP/1.1 istek satırı ve başlıkları okunabilir bir metin sözdizimine sahiptir; gövde ikili bir dosya da olabilir. Host başlığı, kalıcı bağlantılar, önbellek kontrolü, aralık istekleri ve parçalı aktarım gibi mekanizmalar web sunucusu işletimini kolaylaştırır. Yanıtın boyutu baştan bilinmiyorsa sunucu Transfer-Encoding: chunked ile içeriği parçalar halinde gönderebilir.

Buna karşılık aynı bağlantıda kaynakların sırayla işlenmesi, öndeki yavaş bir isteğin sonraki istekleri bekletmesine yol açabilir. Buna baş çizgisi engellemesi denir. Çok sayıda CSS, JavaScript, görsel veya yazı tipi isteği olan sayfalarda bağlantı yönetimi bu nedenle önem kazanır. HTTP/2 ve HTTP/3 bu sorunun bazı yönlerini farklı aktarım teknikleriyle ele alır; ancak bir istemci ile sunucunun hangi sürümü kullanacağı yapılandırmaya ve anlaşmaya bağlıdır.

Aşağıdaki özet, yönetim kararı verirken protokolün etkisini ayırmaya yardımcı olur:

KonuHTTP/1.1'deki yaklaşımYönetim açısından anlamı
İletişim modeliİstek ve yanıtHer kaynağın isteği ve yanıtı ayrı izlenir
BağlantıYeniden kullanılabilirBağlantıyı her istekte kapatmak ek maliyet oluşturabilir
Mesaj biçimiMetin tabanlı başlıklar ve gövdeElle incelenmesi ve hata ayıklaması kolaydır
EşzamanlılıkAynı bağlantıda sınırlıdırÇok kaynaklı sayfalarda gecikme görülebilir

Sunucuda gerçekten HTTP/1.1 kullanılıyor mu?​


Bir alan adının hangi sürümle yanıt verdiğini kontrol etmek için HTTP/1.1'i özellikle talep eden bir istemci kullanabilirsiniz:

  1. Sunucuya erişilebilen bir makinede curl --http1.1 -i https://example.com/ komutunu çalıştırın. -i yanıt başlıklarını da gösterir.
  2. Hedef yanıtının durum satırında HTTP/1.1 görülmesini ve ardından bir durum kodu gelmesini bekleyin.
  3. Başlıkları inceleyerek yönlendirme, içerik türü, sıkıştırma ve bağlantı davranışını değerlendirin. 301 veya 302 görürseniz ilk adres başka bir adrese yönlendiriliyordur; bu tek başına sunucunun başarısız olduğu anlamına gelmez.
  4. Bağlantı kurulamazsa DNS, TLS sertifikası, güvenlik duvarı veya sunucunun dinlediği portu ayrı ayrı kontrol edin. 4xx yanıtı istemci isteği ya da yetkilendirme sorununa, 5xx yanıtı ise genellikle sunucu tarafındaki işleme sorununa işaret eder.

Bu test yalnızca belirli bir HTTP/1.1 isteğinin sonucunu gösterir; tüm kullanıcıların aynı protokolü kullanacağını garanti etmez. Ters vekil, CDN veya yük dengeleyici varsa görülen yanıt, arka uç uygulamasından önce bu katman tarafından üretilebilir. Sorun performanssa sonraki adım, tarayıcı geliştirici araçlarında kaynakların bekleme sürelerini ve sunucu günlüklerinde durum kodlarını birlikte karşılaştırmaktır.

Sık sorulan sorular​

Tarayıcıda HTTP/2 görmek arka uç da HTTP/2 kullanıyor demek midir?​

Hayır. Tarayıcı ile CDN arasında ve CDN ile origin arasında farklı bağlantılar bulunabilir; sürümleri de farklı olabilir. Geliştirici araçları tarayıcının bağlantısını gösterir. Arka uç sürümünü incelemek için ilgili proxy/origin yapılandırmasına ve o bağlantının kayıtlarına bakın.

Bir sitenin HTTP/1.1 kullanması otomatik olarak sorun olduğu anlamına gelir mi?​

Hayır. İstemci uyumu veya belirli altyapı koşulları nedeniyle kullanılabilir. Yalnız sürüme bakarak hız sonucu çıkarmayın. Gerçek istek gecikmesi, bağlantı yeniden kullanımı, hata oranı ve kaynak sayısıyla değerlendirin; protokol değişikliği bütün yavaşlık nedenlerini çözmez.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.