Bir İnternet İsteği Sunucuya Nasıl Ulaşır?
Bir web sitesine tıkladığınızda, ekranda aniden görünmeye başlayan sayfanın ardında karmaşık bir iletişim ağı gizli kalır. Kullanıcı tarayıcısı, “ben bu sayfayı görmek istiyorum” diyerek bir “internet isteği” gönderir. Bu istek, sunucuya ulaşana kadar birkaç ara geçiş yapar, her geçişte yeni bilgiler eklenir. Sonunda sunucu, size geri dönen yanıtı ile sayfayı oluşturan HTML, CSS ve JavaScript dosyalarını teslim eder. Bu süreç, basit bir tıklama kadar hızlı görünse de, dört ana katmandan oluşur: istemci tarafı, ağ katmanı, protokoller ve sunucu tarafı. Her katman, internetin temel yapı taşlarıyla çalışır ve hatalar, gecikmeler veya güvenlik açıkları bu katmanlardan herhangi birinde ortaya çıkabilir.
İlk olarak, istemciden (tarayıcı) gelen isteğin temel kavramlarını anlamak gerekir. İstek, HTTP, HTTPS, TCP/IP gibi protokollerin bir araya gelmesiyle şekillenir. İkinci olarak, bu isteklerin ağ üzerinden nasıl taşındığını ve hangi portların kullanıldığını keşfetmek gerekir. Üçüncü olarak, DNS’in rolü ve alan adlarının IP adreslerine nasıl dönüştürüldüğü açıklanır. Dördüncü olarak, güvenlik katmanları, özellikle TLS/SSL sertifikalarının nasıl çalıştığı incelenir. Bu dört adım, bir internet isteğinin sunucuya ulaşma yolculuğunu tam olarak ortaya koyar.
Temel Kavramlar ve Tanımlar
İnternet isteği, bir istemcinin (genellikle bir web tarayıcısı) bir sunucudan veri istemesidir. Bu istek, HTTP (Hypertext Transfer Protocol) protokolü üzerinden gönderilir ve HTTPS kullanıldığında TLS/SSL şifrelemesi eklenir. İstek, bir URI (Uniform Resource Identifier) içerir; bu, hedef kaynağın tam konumunu tanımlar. Sunucu ise bu isteği alır, uygun işlemi yapar ve yanıt olarak HTML, CSS, JS veya başka bir dosya gönderir. Bu süreç, üç temel bileşenle gerçekleşir: istemci, ağ katmanı ve sunucu. Her bileşen, veri paketlerini paketlemek, yönlendirmek ve doğrulamak için farklı protokoller kullanır.
İstemci tarafında, tarayıcı URL’yi çözer, ardından DNS üzerinden alan adını IP adresine çevirir. Ardından, TCP/IP üzerinden bir bağlantı kurulur. Bağlantı kurulduktan sonra, HTTP isteği oluşturulur: başlıklar (headers), yöntem (GET, POST, PUT vb.) ve isteğe bağlı gövde (body). Sunucu, gelen isteği işler, veritabanı sorgular, dosya sisteminden içerik okur veya dinamik bir yanıt üretir. Çıktı, HTTP yanıtı olarak gönderilir; bu yanıt da başlıklar, durum kodu ve gövde içerir. Tarayıcı, yanıtı alır, CSS ve JS dosyalarını indirir, DOM (Document Object Model) oluşturur ve sayfayı kullanıcıya sunar.
Bu temel akış, internetin “dijital postane” prensibiyle işlev görür. İsteği bir postaya gönderirken, posta servisi (DNS, IP, TCP) adresi bulur, paketi taşıyarak alıcıyı (sunucu) bulur. Sunucu, paketi açar, içeriği okur ve posta servisine geri gönderir. Bu benzetme, kavramları anlamada yardımcı olur ama gerçek dünya çok daha hızlı ve karmaşıktır.
İstek Yolculuğu Adımları
İstek yolculuğu, istemciden sunucuya kadar uzanan bir dizi adımı içerir. İlk adım, URL’nin “http://” veya “https://” ile başlar. Tarayıcı, bu protokole göre bir TCP bağlantısı kurar. HTTPS kullanıldığında, ilk el sıkışma (handshake) TLS elbiselerini takar, şifreleme anahtarları müzakere edilir. Bu el sıkışma, kimlik doğrulama ve veri bütünlüğü sağlar. İkinci adım, DNS çözümlemesi olur. Tarayıcı, alan adını IP adresine çevirir; bu, yerel DNS önbelleği, ISP’nin DNS sunucusu veya küresel DNS sunucularından yapılır. Üçüncü adım, TCP bağlantısı kurulur. 3‑way handshake (SYN, SYN-ACK, ACK) ile iki uçta bağlantı başlatılır. Dördüncü adım, HTTP isteği gönderilir. HTTP/1.1, HTTP/2 veya HTTP/3 protokolleri, başlık sıkıştırma, multiplexing gibi teknikler kullanarak veri iletimini optimize eder. Son adım ise yanıtın alınmasıdır; yanıt, tarayıcı tarafında yorumlanır ve sayfa görüntülenir.
Bu süreçte bazen hatalar yaşanır. DNS çözümlemesi başarısız olursa, kullanıcı “siteye erişilemiyor” mesajı görür. TCP bağlantısı kurulamazsa, “bağlantı zaman aşımına uğradı” hatası alınır. HTTPS el sıkışması sırasında sertifika hatası çıkarsa, tarayıcı “güvenli değil” uyarısı verir. Bu hataların çoğu, doğru yapılandırma, güncel güvenlik sertifikaları ve düzgün ağ yönlendirmesiyle önlenir.
Protokol ve Portlar
Protokoller, veri paketlerinin formatını ve iletişim kurallarını belirler. En yaygın protokoller HTTP (port 80), HTTPS (port 443), TCP (transport) ve UDP (user datagram) olarak tanımlanır. HTTP, metin tabanlı bir protokoldür; GET, POST, PUT, DELETE gibi yöntemleri destekler. HTTPS ise HTTP’nin şifreli versiyonudur, TLS/SSL ile güvenlik katmanı ekler. TCP, bağlantı odaklıdır; veri akışını garantiler, paket sırasını kontrol eder ve hataları düzeltir. UDP ise bağlantısızdır; düşük gecikme sağlar ama veri güvenliği yoktur.
Portlar, her protokolün belirli bir numara üzerinden iletişim kurmasını sağlar. Örneğin, web sunucuları genellikle 80 (HTTP) ve 443 (HTTPS) portlarını dinler. Diğer uygulamalar, FTP (21), SSH (22), SMTP (25) gibi portları kullanır. Sunucu yöneticileri, güvenlik duvarları (firewall) ile yalnızca gerekli portları açar. Güvenlik açığı oluşturabilecek portları kapatmak, saldırı yüzeyini küçültür.
DNS ve Yönlendirme
DNS (Domain Name System), kullanıcı dostu alan adlarını (ör. www.ornek.com) IP adreslerine çevirir. DNS, çok katmanlı bir hiyerarşiye sahiptir: kök sunucular, üst düzey alan sunucuları, alan adı sunucuları ve yerel önbellekler. Kullanıcı bir URL girdiğinde, tarayıcı önce yerel önbelleğini kontrol eder; bulamazsa, ISP’nin DNS sunucusuna sorar. ISP, aynı alan adı için önbelleğe sahip değilse, üst düzey bir kök sunucuya yönlendirir. Kök sunucu, ilgili TLD (ör. .com) sunucusuna yönlendirir; TLD sunucusu ise alan adı sunucusuna yönlendirir. Alan adı sunucusu, nihai IP adresini döndürür.
DNS, aynı zamanda CNAME, MX, TXT gibi kayıt tipleri ile e-posta yönlendirmesi, güvenlik doğrulama (SPF, DKIM) ve CDN (Content Delivery Network) entegrasyonu gibi gelişmiş fonksiyonlar sağlar. Örneğin, bir CDN kullanıldığında, DNS, kullanıcının coğrafi konumuna göre en yakın CDN düğümüne yönlendirilir, böylece gecikme azaltılır. DNSSEC (DNS Security Extensions) ise DNS yanıtlarının bütünlüğünü doğrular; sahte DNS yanıtlarını önler.
Güvenlik ve Şifreleme
İnternet isteğinin güvenliği, TLS/SSL protokolüyle sağlanır. HTTPS, veri iletimini şifreler, sunucu kimliğini doğrular ve veri bütünlüğünü korur. Sertifikalar, güvenilir sertifika otoriteleri (CA) tarafından imzalanır ve tarayıcılar tarafından otomatik olarak doğrulanır. Sertifika süresi dolduğunda, tarayıcı “geçersiz sertifika” uyarısı verir.
TLS el sıkışması sırasında, “cipher suite” (şifre seti) seçilir. Modern tarayıcılar, AES-GCM, ChaCha20-Poly1305 gibi güçlü şifreleme algoritmalarını tercih eder. Ayrıca, HTTP Strict Transport Security (HSTS) ile tarayıcıya sadece HTTPS üzerinden bağlanması söylenir.
Güvenlik açıkları, zayıf şifreleme, eski protokoller (ör. TLS 1.0) veya yanlış yapılandırılmış sertifikalarla ortaya çıkar. Sunucu yöneticileri, düzenli olarak sertifikaları günceller, eski protokolleri devre dışı bırakır ve güvenlik duvarı kurallarını sıkılaştırır.
Uzman Önerileri ve İpuçları
– Doğru Portları Açın: Sadece ihtiyaç duyulan portları (80, 443) açın; diğer portları kapatın.
– TLS 1.3 Kullanın: En yeni TLS sürümünü kullanarak güvenli bağlantı sağlayın.
– Sertifikayı Sürekli Kontrol Edin: Otomatik sertifika yenileme hizmetleri (Let’s Encrypt) kullanın.
– DNSSEC Etkinleştirin: DNS yanıtlarının doğruluğunu sağlayın.
– HTTP/2 veya HTTP/3 Kullanın: Başlık sıkıştırma ve çoklu akışlardan yararlanın.
– Güvenlik Duvarı Loglarını İzleyin: Olası saldırıları erken tespit edin.
– İçerik Dağıtım Ağları (CDN) Entegre Edin: Gecikmeyi azaltın ve DDoS koruması alın.
– Yedekleme Planı Oluşturun: Sunucu hatalarında veri kaybını önleyin.
– Güncel Yazılım Kullanımı: Sunucu yazılımını (Apache, Nginx) ve işletim sistemini güncel tutun.
– Güçlü Kimlik Doğrulama Uygulayın: SSH için anahtar tabanlı kimlik doğrulama tercih edin.
Sıkça Sorulan Sorular
1. HTTPS ve HTTP arasındaki fark nedir?
HTTP, şifrelenmemiş veri iletirken, HTTPS TLS/SSL ile şifreleme ekler, veri bütünlüğünü ve gizliliği sağlar.
2. DNSSEC nedir ve neden önemlidir?
DNSSEC, DNS yanıtlarını dijital olarak imzalar; sahte yanıtların önüne geçer.
3. TCP ile UDP arasındaki temel farklar nelerdir?
TCP, bağlantı odaklıdır, veri bütünlüğü sağlar; UDP ise bağlantısızdır, düşük gecikme ama veri kaybı riski vardır.
4. HSTS nasıl çalışır?
HSTS, tarayıcıya yalnızca HTTPS üzerinden bağlanmasını söyler; SSL sertifikası hatası fırlatır.
5. Neden CDN kullanmalıyım?
CDN, içerikleri coğrafi olarak yakın sunucularda depolar, gecikmeyi azaltır, DDoS koruması sunar.
6. TLS el sıkışması sırasında ne olur?
İstemci ve sunucu şifreleme anahtarlarını müzakere eder, sertifikaları doğrular ve güvenli kanal kurar.
7. Hangi portlar genellikle web sunucularında kullanılır?
Web sunucuları genellikle 80 (HTTP) ve 443 (HTTPS) portlarını dinler.
8. DNS önbelleği nasıl çalışır?
Tarayıcının veya OS’nin yerel önbelleği, son çözümlenen DNS kayıtlarını tutar, tekrar sorgulamayı önler.
9. HTTP/3 neden popülerdir?
HTTP/3, QUIC protokolü üzerinden çalışır; düşük gecikme, paket kaybı durumunda daha iyi performans sunar.
10. Sertifika süresi dolduğunda ne olur?
Tarayıcı “geçersiz sertifika” uyarısı verir; kullanıcı güvenli bağlantı kuramaz.
Sonuç
İnternet isteği, bir tıklama kadar basit görünse de, katmanlı bir mimarinin sonucudur. Protokoller, portlar, DNS, TLS ve sunucu yanıtı, tüm süreçte kritik roller oynar. Hatalar, gecikmeler veya güvenlik açıkları, bu katmanlardaki yanlış yapılandırmalardan kaynaklanır. Doğru port yönetimi, güncel şifreleme, DNSSEC ve CDN entegrasyonu gibi adımlar, hem performansı artırır hem de güvenliği sağlar. Sunucu yöneticileri, bu bileşenleri düzenli olarak kontrol etmeli, güncellemeleri zamanında uygulamalıdır. Kullanıcılar da HTTPS, HSTS gibi güvenlik önlemlerini destekleyen tarayıcıları tercih etmelidir. Böylece, internet üzerinde güvenli, hızlı ve sorunsuz bir gezinti deneyimi elde edilir.

