01 / 07
Web Nasıl Çalışır
Tarayıcı, HTTP istek/yanıt ve DevTools.
Client ve Server
Web, iki tarafın konuşmasıdır. Client (istemci) sizin cihazınız ve üzerindeki tarayıcıdır. Server (sunucu) sayfaları ve uygulamaları barındıran bilgisayardır. Bir sayfayı açtığınızda sayfanın kodunun bir kopyası server'dan tarayıcınıza iner, tarayıcı da onu ekrana çizer.1
Bir web sitesi tek bir dosya değildir. Kod dosyaları (HTML, CSS, JavaScript) ve asset'ler (görsel, video, font, PDF) ayrı ayrı indirilir ve tarayıcıda birleştirilir.1
Bir Adresi Açtığınızda Neler Olur
https://example.com yazıp Enter'a bastığınızda kabaca şu olur:12
Tarayıcı yazdığınızın bir arama mı yoksa adres mi olduğuna karar verir.
DNS ile alan adının arkasındaki server'ın IP adresini bulur.
Server'la bir bağlantı açar; adres
httpsise bağlantı TLS ile şifrelenir.Bir HTTP isteği gönderir.
Server bir HTTP yanıtı döner; veri küçük parçalar (packet) halinde gelir ve tarayıcı bunları doğru sırayla birleştirir.
Tarayıcı HTML'i okur, gereken CSS, JavaScript ve görselleri de ister ve sayfayı çizer.
Aşağıdaki bölümler bu adımları tek tek açar.
URL'nin Parçaları
Örnek: https://www.example.com:443/urunler/kitap?renk=mavi&sayfa=2#yorumlar3
| Parça | Örnek | Ne işe yarar |
|---|---|---|
| Scheme | https | Hangi protokolle isteneceği |
| Domain | www.example.com | Hangi server'a gidileceği |
| Port | 443 | Server'daki kapı; standart portlarda (HTTP 80, HTTPS 443) yazılmaz |
| Path | /urunler/kitap | Server'daki kaynağın yolu |
| Parametreler | ?renk=mavi&sayfa=2 | Server'a gönderilen anahtar/değer çiftleri |
| Anchor | #yorumlar | Sayfa içindeki bir yer; server'a hiç gönderilmez |
DNS
DNS (Domain Name System) internetin adres defteridir: example.com gibi okunabilir bir adı, server'ın 192.0.2.172 gibi IP adresine çevirir.1 Büyük siteler birden fazla server'da çalıştığı için aynı ad, bulunduğunuz yere göre farklı bir IP'ye çıkabilir.1
Tarayıcı cevabı önce kendi önbelleğinde, sonra işletim sisteminde arar. Orada yoksa soru bir recursive resolver'a (çoğunlukla internet sağlayıcınızın ya da 1.1.1.1, 8.8.8.8 gibi bir servisin) gider. Resolver sırasıyla root server'ına, .com gibi uzantının server'ına ve son olarak alan adının authoritative server'ına sorar; asıl kayıt oradadır.4
Her kaydın bir TTL'i (time to live) vardır ve önbellekler cevabı bu süre boyunca saklar. DNS kaydını değiştirdiğinizde herkesin hemen yeni adresi görmemesi bundandır. "Böyle bir alan adı yok" cevabı da önbelleğe alınır.5
HTTP İstek ve Yanıt
HTTP, client ile server'ın konuştuğu dildir. İsteği her zaman client başlatır.6 Her mesajın bir başlangıç satırı, header'ları, boş bir satırı ve isteğe bağlı bir body'si vardır.7
GET /urunler HTTP/1.1
Host: example.com
Accept-Language: trHTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 29769
<!doctype html>…İstek satırında bir method (ne yapılacağı), bir hedef (path) ve protokol sürümü bulunur. En sık kullanılanlar veri almak için GET, veri göndermek için POST'tur; body genellikle yalnızca POST, PUT ve PATCH isteklerinde olur.7
Yanıttaki status code sonucun ne olduğunu söyler. İlk rakam sınıfını belirler:8
| Kod | Anlamı | Sık görülen |
|---|---|---|
1xx | Bilgi | |
2xx | Başarılı | 200 OK |
3xx | Yönlendirme | 301 kalıcı taşındı, 304 önbellekteki kopya hâlâ geçerli |
4xx | Client hatası | 404 bulunamadı, 403 erişim yok |
5xx | Server hatası | 500 server ne yapacağını bilemedi |
HTTP stateless'tır: iki istek arasında kendiliğinden bir bağ yoktur. Giriş yapmış kalmanız ya da sepetinizin durması cookie'ler sayesindedir.6 Tarayıcı ile server arasında önbellek, yük dengeleyici ya da güvenlik katmanı gibi proxy'ler de olabilir.6
Mesajların anlamı sürümler arasında aynı kalır; değişen, verinin taşınma biçimidir. 2024'te mobilde ana sayfaların %70'i HTTP/2, %9'u HTTP/3, %21'i HTTP/1.1 ile sunuluyordu.9
HTTPS
HTTPS, HTTP'nin TLS ile şifrelenmiş halidir; araya giren kimse içeriği okuyamaz ya da değiştiremez.10 Artık varsayılandır: 2024'te mobilde isteklerin %98'i şifreli bağlantı üzerinden geliyordu.11
Kamera, mikrofon ve service worker gibi birçok tarayıcı özelliği yalnızca secure context'te, yani HTTPS'te çalışır. http://localhost bu kurala dahildir, bu yüzden geliştirirken sertifikaya ihtiyacınız olmaz.12
Tarayıcı Sayfayı Nasıl Çizer
HTML gelince tarayıcı onu okuyup bir ağaç yapısına, DOM'a (Document Object Model) çevirir; her element, attribute ve metin bir node olur.13 Okurken karşılaştığı <link>, <script> ve <img> için yeni istekler atar.13
Ardından CSS kurallarını ilgili node'lara bağlar, her kutunun boyutunu ve yerini hesaplar (layout) ve pikselleri ekrana boyar (paint). JavaScript de bu sırada çalışır ve DOM'u değiştirerek görüntüyü etkileyebilir. Ekran okuyucular için DOM'dan bir erişilebilirlik ağacı da üretilir.13
İpucu
Chrome gibi tarayıcılar sekmeleri çoğunlukla ayrı süreçlerde çalıştırır. Bir sekme donduğunda diğerlerinin çalışmaya devam etmesi bundandır.14
DevTools
Tarayıcının geliştirici araçları, bu derste anlatılan her şeyi gözünüzle görmenizi sağlar. Windows'ta Ctrl + Shift + I ya da F12, macOS'ta ⌘ + ⌥ + I ile açılır; bir elemente sağ tıklayıp Inspect (İncele) demek de olur. Safari'de önce ayarlardan Develop menüsünü açmak gerekir.15
| Panel | Ne için |
|---|---|
| Elements | Canlı DOM'u ve uygulanan CSS'i görmek, anında düzenlemek |
| Console | Hataları okumak ve sayfada JavaScript çalıştırmak |
| Sources | JavaScript'te breakpoint koyup adım adım ilerlemek |
| Network | Sayfanın attığı her isteği, durumunu, boyutunu ve süresini görmek |

Network panelinde bir isteğe tıklayınca Headers sekmesinde istek ve yanıt header'larını, Response sekmesinde server'ın döndüğü içeriği görürsünüz. Status sütunu yanıt kodunu, Initiator isteği neyin başlattığını gösterir.16

Detaylı Öğrenmek İçin
Sayfa yüklemenin tamamı: MDN'in DNS'ten paint'e kadar her adımı performans açısından anlatan rehberi.18
Tarayıcının içi: Mariko Kosaka'nın Chrome'un mimarisini çizimlerle anlatan dört bölümlük yazı dizisi.142
Ağ katmanı: Ilya Grigorik'in TCP, TLS ve HTTP/2'yi anlatan ücretsiz kitabı High Performance Browser Networking.19
DNS'i elle dene: Julia Evans'ın Mess With DNS sitesi; kendi alt alan adınızı alıp kayıt ekleyebilir, gelen sorguları canlı izleyebilirsiniz.20
Konuşma: Julia Evans'ın RubyConf Mini 2022'de DNS'i ve zor konuları öğrenmeyi anlattığı açılış konuşması.5
Kaynaklar
Client ve server, adres yazınca olan adımlar, DNS, TCP/IP, packet'lar, kod ve asset dosyaları.
Adres mi arama mı kararı, DNS ve TLS, yanıtın okunması ve sayfanın renderer'a teslimi.
Scheme, domain, port, path, parametreler ve server'a gitmeyen anchor.
Recursive resolver, root, TLD ve authoritative server; tarayıcı ve işletim sistemi önbelleği.
Açılış konuşması. Resolver önbellekleri, TTL ve "yok" cevabının da önbelleğe alınması; konuşmanın yazılı özeti .
İsteği her zaman client'ın başlatması, stateless yapı ve cookie'ler, proxy'ler.
İstek ve yanıtın yapısı: başlangıç satırı, method, header, body.
Beş status code sınıfı ve her kodun anlamı.
Robin Marx. Mobil ana sayfalarda %70 HTTP/2, %9 HTTP/3, %21 HTTP/1.1.
HTTP'nin TLS ile şifrelenmiş hali.
Mobilde isteklerin %98'i TLS üzerinden.
Hangi özelliklerin HTTPS istediği ve `localhost`'un güvenli sayılması.
HTML'den DOM'a, CSS'in uygulanması, layout, paint, JavaScript ve erişilebilirlik ağacı.
Browser, renderer ve GPU süreçleri; her sekmenin neden ayrı süreçte çalıştığı.
DevTools'u açmak; Elements, Console ve Sources panelleri.
Network panelinin sütunları, Headers ve Response sekmeleri, throttling.
Disable cache ve Preserve log.
DNS, TCP, TLS, parsing, layout, paint ve compositing; performans açısından.
Ücretsiz okunabilen kitap: TCP, UDP, TLS, HTTP/1.x, HTTP/2 ve tarayıcı API'leri.
Wizard Zines'in DNS kayıtlarıyla güvenle deney yapma aracı.
Son güncelleme tarihi: 17 Ekim 2026
