HTTP isteğinin yaşam döngüsü
1. İstemci isteği gönderir
- HTTP isteği oluşturma: İstemci (genellikle web tarayıcısı) bir HTTP isteği oluşturur.
- HTTP metodu: GET, POST vb.
- İstenen kaynak: Örneğin
/index.html.
- Protokol sürümü: HTTP/1.1 vb.
- Header'lar ve gövde:
key: value biçimindeki header'lar ve isteğe bağlı mesaj gövdesi içerir.
2. DNS sorgusu
- Alan adı dönüştürme: İnsan tarafından okunabilen alan adını (
www.example.com) IP adresine (93.184.216.34) dönüştürür.
- DNS sunucusu sorgusu: İstemci, alan adını IP adresine çevirmek için DNS sunucusuna sorgu gönderir.
3. TCP handshake
- TCP bağlantısı kurulumu: İstemci, sunucuyla bir TCP bağlantısı kurar.
- 3 aşamalı handshake:
- SYN: İstemci bağlantı isteği gönderir.
- SYN-ACK: Sunucu isteği onaylar.
- ACK: İstemci onay yanıtı gönderir.
4. HTTP isteğinin iletilmesi
- HTTP isteğinin iletilmesi: TCP bağlantısı kurulduktan sonra istemci gerçek HTTP isteğini gönderir.
5. Paketlerin internet üzerinden yönlendirilmesi
- Paket iletimi: Veri paketleri çeşitli ağ cihazları üzerinden sunucuya yönlendirilir.
- Router'ın rolü: Router, paketler için en uygun yolu belirler.
6. Sunucu yanıtı
- HTTP yanıtı oluşturma: Sunucu, HTTP isteğini işler ve bir yanıt oluşturur.
- Yanıt içeriği:
- Protokol: Kullanılan HTTP sürümü.
- Durum bilgisi: HTTP durum kodu (ör. 200, 404).
- Yanıt header'ları: İstek header'larına benzer.
- Yanıt gövdesi: İstenen içerik (ör. HTML sayfası, JSON verisi).
7. İçeriğin render edilmesi
- HTTP yanıtını işleme: İstemci HTTP yanıtını alır ve işler.
- Tarayıcıda render etme: Tarayıcı HTML'yi yorumlar ve içeriği ekranda render eder.
- Ek kaynak istekleri: Görsel, CSS, JavaScript gibi ek kaynaklar istenir.
HTTPS = HTTP + şifreleme
TLS handshake
- TLS handshake: İstemci ve sunucu, şifreleme ve kimlik doğrulama anahtarlarını değiş tokuş eder.
- Şifreli iletişim: TLS handshake sonrasında istemci ve sunucu, HTTP kullanarak şifrelenmiş mesajlar alışverişi yapar.
TLS 1.3 handshake
- Basitleştirilmiş süreç: TLS 1.3 daha az seçenek sunarak daha basit, daha güvenli ve daha hızlıdır.
- Temel adımlar:
- Client Hello: İstemci, desteklediği cipher suite'leri ve TLS sürümünü sunucuya gönderir.
- Server Hello: Sunucu, seçtiği cipher suite'i ve TLS sürümünü istemciye gönderir.
- Sertifika doğrulama: İstemci, sunucunun SSL sertifikasını doğrular.
- Premaster secret oluşturma: İstemci bir premaster secret oluşturur ve bunu sunucuya gönderir.
- Session key oluşturma: İstemci ve sunucu session key'leri oluşturur.
- Güvenli iletişim: Session key'ler kullanılarak güvenli simetrik şifreleme üzerinden iletişim kurulur.
GN⁺ görüşü
- İnternet iletişimini anlama: HTTP ve HTTPS'in temel kavramlarını anlamak, ağ iletişiminin temellerini sağlamlaştırmaya yardımcı olur.
- Güvenliğin önemi: HTTPS ile veri aktarımının güvenliğini artırmak önemlidir.
- TLS 1.3'ün avantajları: Daha basit, daha hızlı ve daha güvenli olan TLS 1.3'ün kullanılması önerilir.
- Pratik uygulama: Gerçek projelerde HTTPS uygulayarak güvenliği güçlendirmek gerekir.
- Ek öğrenme: Ağ katmanları ve protokoller üzerine ek çalışmalarla daha derin bir anlayış kazanılabilir.
1 yorum
Hacker News görüşleri