- Published on
Derinlemesine HTTP-WEB-TCP İlişkisi
- Authors
- Name
- Alperen Önal
Bir Web sayfası nesnelerden oluşur. Bu web nesneleri HTML, JPEG, Javascript, ses vb. dosyalar olabilir.
Bir Web sayfası, talep edilen nesneleri içeren HTML dosyasıdır.
Her nesnenin, bir URL adresi vardır. Bu adresler belirtilerek bu nesnelere ulaşılabilir.
Örneğin www.alperenonal.com ’daki bazı nesnelerin konumları:
- www.alperenonal.com/main.dart.js
- https://www.alperenonal.com/index.html
- http://www.alperenonal.com/assets/packages/icons_plus/assets/fonts/iconsax.ttf
- http://www.alperenonal.com/assets/ImageAssets/mobile.gif
- http://www.alperenonal.com/assets/AssetManifest.json
- http://www.alperenonal.com/flutter.js
Mesela www.alperenonal.com/main.dart.js URL’sindeki javascript dosyasını tarayıcımla açtığım zaman aşağıdaki bu görüntü ile karşılaşacağız.
Veya websitemin arka planındaki gif’e ulaşmak için, http://www.alperenonal.com/assets/ImageAssets/mobile.gif URL’sindeki gif dosyasını açtığımda aşağıdaki görüntü ile karşılaşacağız.
Tarayıcımız, HTTP protokolünü kullanarak bizim için gitmek istediğimiz web adresinde bulunan tüm bu nesneleri indiriyor ve bu nesneleri birleştirerek bize sunuyor.
Örneğin, bu nesnelerin birleştirilmiş hali:
Peki HTTP nasıl çalışıyor?
HTTP, TCP protokolünü kullanarak çalışmaktadır.
HTTP, Application Layer protokolüdür.
Client-Server üzerinden HTTP’yi inceleyelim:
- Client, server’a port 80 üzerinden TCP bağlantısını başlatır (soket oluşturur).
- Server ile client arasında TCP Handshake gerçekleşir.
- HTTP mesajları, tarayıcı(HTTP client) ve web server(HTTP server) arasında alış-veriş yapar.
- Client’in istediği nesnelerin iletimi tamamlandığında web server TCP bağlantısını sonlandırır.
HTTP mesajları: request(istek), response(cevap)
HTTP istek mesajı: ASCII formatında.
HTTP/1.0 Metotları:
- GET: Veri göndermek için kullanılır. Veriyi, URL’nin parçası olarak gönderim sağlandığı için güvensizdir.
- POST: Veri göndermek için kullanılır. Veriyi HTTP mesajının body kısmına yükleyerek gönderimi sağlar. GET’e kıyasla daha güvenlidir ancak daha yavaştır.
- HEAD: Bir kaynağın sadece başlık bilgilerini almak için kullanılır. Bu, örneğin, bir kaynağın güncellenip güncellenmediğini kontrol etmek veya sadece başlık bilgilerinin gerektiği durumlarda kullanılabilir.
HTTP/1.1 Metotları:
- GET, POST, HEAD
- PUT: Sunucuya yeni bir kaynak yüklemek için kullanılır. Bir PUT isteği, sunucuya belirtilen URL’de bir kaynağın oluşturulması veya güncellenmesi için bir içeriği gönderir.
- DELETE: Belirtilen bir kaynağı sunucudan silmek için kullanılır. DELETE isteği, belirtilen URL’deki bir kaynağı silmek için kullanılır.
Aşağıdaki fotoğrafta bir HTTP yapısını görebilmekteyiz.
HTTP STATUS CODES Nedir?
HTTP durum kodları, bir HTTP yanıtının sonucunu belirten üç haneli kodlardır. Bir istemcinin (tarayıcı gibi) bir sunucudan (web sunucusu gibi) bir istek gönderdiğinde, sunucu bu isteği işler ve bir yanıt döndürür. Bu yanıt, bir HTTP başlık kısmı ve bir HTTP durum kodu içerir.
HTTP durum kodları, istemciye (tarayıcıya) yanıtın sonucunu belirtir ve belirli bir eylemin başarıyla gerçekleştirildiğini, bir hata oluştuğunu veya başka bir durumun meydana geldiğini bildirir.
HTTP Örneği:
Firefox arama çubuguna “ www.alperenonal.com ” yazıp entere bastım ve wireshark ile paketleri inceledim.
Evet aşağıda gördüğümüz gibi bir çok paket var Ekrana bu kadarı sığdı. Toplamda 3 bin kadar paket oluştu.
İlk 3 satırı incelediğimizde TCP handshake olduğunu görüyoruz. HTTP, TCP protokolü ile çalışıyordu. Bu yüzden sunucumuza bağlantı talebi gönderiyoruz ve 3lü el sıkışma işlemine başlıyoruz.
Sunucunun da SYN+ACK yolladığını yani bağlantı talebimizi onayladığını görebiliyoruz. Daha sonra kurulan bağlantı üzerinden HTTP request gönderiyoruz.
Bu HTTP request paketini inceleyelim.
Aşağıda son 14 paketi görüyoruz.
Özetle:
- TCP bağlantısı oluşturuldu (3-way Handshake).
- Gerekli web nesneleri HTTP metotları ile sunucudan talep edildi.
- TCP bağlantısı sonlandırıldı (TCP Connection Termination).
KAYNAKÇA:
Kurose, James F., & Ross, Keith W. (2017). “Computer Networking: A Top-Down Approach” (7th ed.). Boston: Pearson Education.