Bir web sitesini açtığınızda tarayıcınız ile sitenin sunucusu arasında saniyeler içinde bir iletişim gerçekleşir. Sayfa içeriğinin istenmesi, görsellerin yüklenmesi ve bir formun gönderilmesi gibi işlemlerin temelinde çoğunlukla HTTP bulunur. Peki, HTTP nedir, nasıl çalışır ve HTTPS’den farkı nedir? Bu rehberde web iletişiminin temel protokolünü, günlük kullanım örnekleri ve teknik kavramlarla birlikte inceleyeceğiz.
HTTP Nedir?

HTTP (Hypertext Transfer Protocol), Türkçede “Hiper Metin Aktarım Protokolü” olarak adlandırılır. İstemci ve sunucu arasında kaynakların nasıl talep edileceğini ve yanıtların nasıl iletileceğini tanımlayan bir uygulama katmanı protokolüdür.
HTTP’de istemci genellikle bir web tarayıcısıdır. Ancak mobil uygulamalar, arama motoru botları ve başka sunucular da HTTP istemcisi olarak çalışabilir. Sunucu ise gelen istekleri değerlendirerek web sayfası, görsel, video, dosya veya API verisi gibi kaynakları sunar.
Adında “hiper metin” ifadesi bulunsa da HTTP yalnızca metin taşımak için kullanılmaz. HTML belgelerinden JSON verilerine kadar farklı içerik türlerinin aktarılmasını sağlar.
HTTP Nasıl Çalışır?
HTTP’nin temelinde istek-yanıt modeli vardır. İstemci bir kaynağı ister, sunucu da bu isteğe bir yanıt verir. Bir web sayfasını ziyaret ettiğinizde süreç genel olarak şöyle ilerler:
- Adres belirlenir: Tarayıcı, girdiğiniz URL üzerinden hangi sunucuya ve kaynağa erişileceğini belirler.
- Alan adı çözümlenir: Gerektiğinde DNS sorgusu yapılarak alan adının IP adresi bulunur. Önbellekteki bilgiler bu aşamayı hızlandırabilir.
- Bağlantı hazırlanır: Kullanılan HTTP sürümüne göre uygun bağlantı kurulur. HTTPS kullanılıyorsa güvenli iletişim için TLS koruması devreye girer.
- HTTP isteği gönderilir: Tarayıcı, örneğin ana sayfanın içeriğini sunucudan talep eder.
- Sunucu yanıt verir: Yanıtta durum kodu, başlıklar ve gerektiğinde içerik bulunur.
- Sayfa oluşturulur: Tarayıcı HTML içeriğini işler; ihtiyaç duyulan CSS, JavaScript ve görseller için ek istekler gönderebilir.
Örneğin bir haber sitesindeki yazıyı açtığınızda yalnızca tek bir dosya indirilmez. Ana HTML belgesinin yanı sıra yazı tipleri, fotoğraflar ve diğer kaynaklar da yüklenebilir. Bu kaynakların bir kısmı tarayıcı önbelleğinden karşılanabilir veya farklı sunuculardan alınabilir.
HTTP İsteğinin İçinde Neler Bulunur?
Bir HTTP isteği, sunucuya hangi işlemin yapılacağını anlatan bilgiler taşır. Temel bileşenleri şunlardır:
- Metot: Kaynağı okuma, veri gönderme veya silme gibi işlemin amacını belirtir.
- Hedef kaynak: İstenen sayfanın ya da API uç noktasının yolunu ve varsa sorgu parametrelerini içerir.
- Başlıklar: Kabul edilen içerik türü, kimlik doğrulama bilgisi veya önbellek tercihleri gibi ek bilgileri taşır.
- Gövde: Gerektiğinde form verilerini, JSON içeriğini veya yüklenen dosyaları içerir. Her istekte gövde bulunmaz.
HTTP Yanıtının İçinde Neler Bulunur?
Sunucunun yanıtı, isteğin sonucunu ve varsa talep edilen içeriği iletir:
- Durum kodu: İşlemin başarılı olup olmadığını veya nasıl devam edilmesi gerektiğini belirtir.
- Yanıt başlıkları: İçerik türü, önbellekleme kuralları ve güvenlik politikaları gibi bilgileri içerir.
- Yanıt gövdesi: HTML sayfası, JSON verisi veya görsel gibi asıl içeriği taşır. Bazı yanıtlarda gövde bulunmaz.
En Çok Kullanılan HTTP Metotları
HTTP metotları, istemcinin bir kaynak üzerinde yapmak istediği işlemi ifade eder. Özellikle web geliştirme ve API kullanımında bu metotların anlamını bilmek önemlidir.
| HTTP metodu | Temel amacı | Örnek kullanım |
|---|---|---|
| GET | Bir kaynağın temsilini almak | Blog yazısını görüntülemek veya ürün listesini çekmek |
| POST | Veriyi işlenmek üzere göndermek | Form göndermek veya yeni bir sipariş oluşturmak |
| PUT | Hedef kaynağı gönderilen içerikle oluşturmak ya da tamamen değiştirmek | Bir kaydın tüm alanlarını güncellemek |
| PATCH | Kaynağa kısmi değişiklik uygulamak | Kullanıcının yalnızca profil açıklamasını değiştirmek |
| DELETE | Hedef kaynağın kaldırılmasını istemek | Bir API üzerinden kayıt silmek |
| HEAD | GET benzeri yanıt başlıklarını gövde olmadan almak | Bir dosyanın içerik türünü veya değişiklik bilgisini kontrol etmek |
| OPTIONS | Hedef kaynak için iletişim seçeneklerini öğrenmek | CORS ön kontrol isteği göndermek |
Önemli: POST kullanmak, gönderilen veriyi kendiliğinden güvenli hâle getirmez. Verinin URL yerine istek gövdesinde taşınması şifreleme anlamına gelmez. Aktarım sırasında gizlilik için HTTPS gerekir.
HTTP Durum Kodları Ne Anlama Gelir?
HTTP durum kodları, sunucunun isteği nasıl sonuçlandırdığını gösteren üç basamaklı sayılardır. Beş ana grupta değerlendirilir:
- 1xx — Bilgilendirme: İsteğin işlenmesiyle ilgili ara bilgi verir.
- 2xx — Başarı: İsteğin başarıyla alındığını ve işlendiğini belirtir.
- 3xx — Yönlendirme: İsteği tamamlamak için yönlendirme veya önbellekteki kaynağı kullanma gibi ek bir adım gerektiğini ifade eder.
- 4xx — İstemci hataları: İstek, yetkilendirme veya hedef kaynakla ilgili bir sorun olduğunu gösterir.
- 5xx — Sunucu hataları: Sunucunun geçerli bir isteği yerine getirirken sorunla karşılaştığını belirtir.
Sık Karşılaşılan Durum Kodları
- 200 OK: İstek başarıyla tamamlanmıştır.
- 201 Created: İstek sonucunda yeni bir kaynak oluşturulmuştur.
- 204 No Content: İşlem başarılıdır ancak yanıtta gövde yoktur.
- 301 Moved Permanently: Kaynak kalıcı olarak yeni bir adrese taşınmıştır.
- 302 Found: Kaynak için geçici olarak başka bir adres kullanılmalıdır.
- 304 Not Modified: Koşullu isteğe göre kaynak değişmemiştir; istemci önbellekteki kopyayı kullanabilir.
- 400 Bad Request: Sunucu, isteği istemci kaynaklı bir sorun nedeniyle işleyememektedir.
- 401 Unauthorized: İstek için geçerli kimlik doğrulama bilgisi gereklidir.
- 403 Forbidden: Sunucu isteği anlamış ancak yerine getirmeyi reddetmiştir.
- 404 Not Found: İstenen kaynak bulunamamıştır.
- 429 Too Many Requests: Belirli bir süre içinde çok fazla istek gönderilmiştir.
- 500 Internal Server Error: Sunucuda beklenmeyen bir hata oluşmuştur.
- 503 Service Unavailable: Sunucu, bakım veya aşırı yük gibi nedenlerle geçici olarak hizmet verememektedir.
Örneğin bir sayfanın içeriğinde “Bulunamadı” yazmasına rağmen sunucunun 200 kodu döndürmesi, arama motorlarının bunu soft 404 olarak değerlendirmesine yol açabilir. Bu nedenle kullanıcıya gösterilen mesaj ile teknik yanıt kodunun uyumlu olması önemlidir.
HTTP ve HTTPS Arasındaki Fark Nedir?
HTTPS, HTTP iletişiminin TLS ile korunmuş biçimidir. İstek ve yanıtların temel mantığı değişmez; aradaki bağlantıya şifreleme, veri bütünlüğü ve sunucu kimliğini doğrulama mekanizmaları eklenir.
Şifrelenmemiş HTTP bağlantılarında trafik, ağ üzerindeki uygun konuma sahip kişiler tarafından okunabilir veya değiştirilebilir. HTTPS ise doğru yapılandırıldığında verilerin aktarım sırasında korunmasına yardımcı olur.
- Gizlilik: Aktarılan HTTP içeriği şifrelenir.
- Bütünlük: Verinin aktarım sırasında değiştirilmesine karşı koruma sağlanır.
- Kimlik doğrulama: Sertifika doğrulaması, bağlanılan sunucunun hedef alan adı için geçerli kimlik bilgisine sahip olduğunu kontrol eder.
- Varsayılan port: HTTP genellikle 80, HTTPS ise 443 numaralı portu kullanır. Farklı portlar da yapılandırılabilir.
HTTPS kullanılması, bir web sitesinin mutlaka güvenilir olduğu anlamına gelmez. Sahte veya zararlı siteler de geçerli sertifika kullanabilir. HTTPS bağlantıyı korur; site sahibinin niyetini ya da içeriğin doğruluğunu garanti etmez.
HTTP Sürümleri: HTTP/1.1, HTTP/2 ve HTTP/3
HTTP, web uygulamalarının artan ihtiyaçlarına göre geliştirilmiştir. Sürümler arasında aktarım biçimi ve bağlantı yönetimi değişse de metotlar, durum kodları ve kaynak kavramı büyük ölçüde aynı kalır.
HTTP/1.1
HTTP/1.1, kalıcı bağlantıları destekleyerek aynı bağlantının birden fazla istek için kullanılmasını sağlar. Bununla birlikte, modern sayfalardaki çok sayıdaki kaynağın verimli biçimde aktarılmasında sınırlamaları bulunur. Tarayıcılar paralel yükleme için çoğu zaman birden fazla bağlantı açar.
HTTP/2
HTTP/2, tek bir TCP bağlantısı üzerinden birden fazla isteğin ve yanıtın eşzamanlı taşınmasını sağlayan çoklama desteği sunar. İkili çerçeveleme ve başlık sıkıştırma gibi özelliklerle aktarım verimliliğini artırabilir. Tarayıcılarda HTTP/2 kullanımı pratikte genellikle HTTPS üzerinden gerçekleşir.
HTTP/3
HTTP/3, TCP yerine UDP üzerinde çalışan QUIC protokolünü kullanır. QUIC, güvenilir aktarım ve TLS 1.3 tabanlı güvenliği birlikte sağlar. Bağımsız akış yapısı sayesinde bir akıştaki paket kaybının diğer akışların teslimini engellemesini azaltabilir; bazı ağ koşullarında bağlantı kurma ve bağlantı değişikliklerini yönetme açısından avantaj sunabilir.
Yeni bir HTTP sürümüne geçmek her siteyi aynı oranda hızlandırmaz. Sonuç; ağ gecikmesine, paket kaybına, sayfa yapısına ve sunucu yapılandırmasına bağlıdır.
HTTP Neden Durumsuz Bir Protokoldür?
HTTP, temel olarak durumsuz bir protokoldür. Bu, her isteğin kendi bağlamında değerlendirildiği ve protokolün önceki isteklerden otomatik bir kullanıcı oturumu oluşturmadığı anlamına gelir.
Peki, bir alışveriş sitesi sepete eklediğiniz ürünleri nasıl hatırlar? Uygulamalar bu sürekliliği ek mekanizmalarla sağlar:
- Çerezler: Tarayıcıda saklanan ve uygun isteklere eklenen küçük veri parçalarıdır.
- Sunucu tarafı oturumlar: Kullanıcıya ait durum sunucuda tutulur; istemci çoğunlukla bir oturum kimliği gönderir.
- Kimlik doğrulama belirteçleri: İstemci, erişim yetkisini göstermek için istekle birlikte bir token iletebilir.
Dolayısıyla HTTP’nin durumsuz olması, web uygulamalarının kullanıcı bilgilerini veya oturumları tutamayacağı anlamına gelmez.
HTTP Başlıkları ve Önbellekleme Neden Önemlidir?
HTTP başlıkları, içeriğin nasıl işleneceğini ve saklanacağını belirlemeye yardımcı olur. Doğru yapılandırıldıklarında performansı, güvenliği ve kaynak kullanımını iyileştirebilirler.
- Content-Type: Gönderilen içeriğin HTML, JSON veya görsel gibi hangi türde olduğunu belirtir.
- Cache-Control: Yanıtın önbellekte saklanması ve yeniden kullanılmasıyla ilgili kuralları tanımlar.
- ETag: Kaynağın belirli bir sürümünü tanımlar ve koşullu isteklerde değişiklik kontrolü yapılmasını sağlar.
- Last-Modified: Kaynağın son değiştirilme zamanını bildirir.
- Content-Encoding: İçeriğe gzip veya Brotli gibi bir kodlama uygulandığını belirtir.
- Set-Cookie: Sunucunun tarayıcıya çerez iletmesini sağlar.
- Strict-Transport-Security: Tarayıcıya, belirtilen süre boyunca siteye HTTPS üzerinden erişmesi gerektiğini bildirir.
Örneğin sık değişmeyen bir logonun uygun süreyle önbelleğe alınması, tekrar ziyaretlerde yeniden indirme ihtiyacını azaltabilir. Buna karşılık, kişisel hesap bilgileri içeren yanıtlar için yanlış önbellek kuralları kullanılması veri gizliliği riski doğurabilir.
HTTP’nin SEO Açısından Önemi
HTTP yapılandırması, teknik SEO çalışmalarının önemli bir parçasıdır. Arama motorları sayfaları tararken yalnızca görünen içeriğe değil, sunucunun döndürdüğü durum kodlarına ve erişim davranışlarına da bakar.
- Doğru durum kodları kullanın: Çalışan sayfalar, kaldırılan içerikler ve sunucu hataları uygun kodlarla belirtilmelidir.
- Kalıcı taşınmaları doğru yönlendirin: Kalıcı URL değişikliklerinde 301 veya 308 yönlendirmesi kullanılabilir.
- Yönlendirme zincirlerini azaltın: Gereksiz ara adımlar gecikmeyi artırır ve taramayı zorlaştırabilir.
- HTTPS’ye tutarlı geçiş yapın: HTTP adreslerini karşılık gelen HTTPS adreslerine yönlendirin; iç bağlantıları, canonical etiketlerini ve site haritalarını güncelleyin.
- Sunucu hatalarını izleyin: Sürekli 5xx yanıtları hem kullanıcı erişimini hem de arama motorlarının taramasını olumsuz etkileyebilir.
- Performansı iyileştirin: Önbellekleme, sıkıştırma ve uygun protokol desteğiyle kaynakların daha verimli yüklenmesini sağlayın.
HTTPS, Google tarafından bir sıralama sinyali olarak belirtilmiştir. Ancak tek başına HTTPS kullanmak yüksek sıralama garantisi vermez. İçerik kalitesi, arama niyetine uyum, erişilebilirlik ve kullanıcı deneyimi birlikte değerlendirilmelidir.
HTTP Hakkında Sık Sorulan Sorular
HTTP İnternet ile Aynı Şey mi?
Hayır. İnternet, farklı ağların birbirine bağlandığı altyapıdır.