ViraStack
  • Academy
  • About
  • Support
HomeSourcesContribute
ViraStack

A DX-first toolkit for frontend developers: starters, agent rules, form hooks, and a guide.

Products

  • ViraStack Start
  • ViraStack AI
  • ViraStack Mask
  • ViraStack Password
  • ViraStack Guide

Explore

  • Academy
  • About
  • Brand
  • Support

© 2026 ViraStack.

Open source · MIT

Web Temelleri

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

  1. Tarayıcı yazdığınızın bir arama mı yoksa adres mi olduğuna karar verir.

  2. DNS ile alan adının arkasındaki server'ın IP adresini bulur.

  3. Server'la bir bağlantı açar; adres https ise bağlantı TLS ile şifrelenir.

  4. Bir HTTP isteği gönderir.

  5. 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.

  6. 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ÖrnekNe işe yarar
SchemehttpsHangi protokolle isteneceği
Domainwww.example.comHangi server'a gidileceği
Port443Server'daki kapı; standart portlarda (HTTP 80, HTTPS 443) yazılmaz
Path/urunler/kitapServer'daki kaynağın yolu
Parametreler?renk=mavi&sayfa=2Server'a gönderilen anahtar/değer çiftleri
Anchor#yorumlarSayfa 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: tr
HTTP/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

KodAnlamıSık görülen
1xxBilgi
2xxBaşarılı200 OK
3xxYönlendirme301 kalıcı taşındı, 304 önbellekteki kopya hâlâ geçerli
4xxClient hatası404 bulunamadı, 403 erişim yok
5xxServer 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

Tip

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

PanelNe için
ElementsCanlı DOM'u ve uygulanan CSS'i görmek, anında düzenlemek
ConsoleHataları okumak ve sayfada JavaScript çalıştırmak
SourcesJavaScript'te breakpoint koyup adım adım ilerlemek
NetworkSayfanın attığı her isteği, durumunu, boyutunu ve süresini görmek

Chrome DevTools Elements paneli: solda sayfanın DOM ağacı, ortada seçili body elementine uygulanan CSS kuralları, sağda margin, border ve padding kutusu

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

Chrome DevTools Network paneli: üstte Preserve log, Disable cache ve throttling ayarları, altta her isteğin method, status, type ve süresini gösteren liste

Do

  • Paneli sayfayı yüklemeden önce açın; DevTools yalnızca açıkken olan istekleri kaydeder.16

  • İlk kez gelen bir kullanıcıyı görmek için Disable cache'i işaretleyin.17

  • Yönlendirmelerde istekler kaybolmasın diye Preserve log'u açın.17

  • Yavaş bağlantıyı denemek için throttling menüsünden 3G seçin.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

  • 1DocsMDN: How the web works

    Client ve server, adres yazınca olan adımlar, DNS, TCP/IP, packet'lar, kod ve asset dosyaları.

  • 2ArticleMariko Kosaka: Inside look at modern web browser, part 2

    Adres mi arama mı kararı, DNS ve TLS, yanıtın okunması ve sayfanın renderer'a teslimi.

  • 3DocsMDN: What is a URL?

    Scheme, domain, port, path, parametreler ve server'a gitmeyen anchor.

  • 4ArticleCloudflare Learning: What is DNS?

    Recursive resolver, root, TLD ve authoritative server; tarayıcı ve işletim sistemi önbelleği.

  • 5VideoJulia Evans: Learning DNS (RubyConf Mini 2022)

    Açılış konuşması. Resolver önbellekleri, TTL ve "yok" cevabının da önbelleğe alınması; konuşmanın yazılı özeti .

  • 6DocsMDN: Overview of HTTP

    İsteği her zaman client'ın başlatması, stateless yapı ve cookie'ler, proxy'ler.

  • 7DocsMDN: HTTP messages

    İstek ve yanıtın yapısı: başlangıç satırı, method, header, body.

  • 8DocsMDN: HTTP response status codes

    Beş status code sınıfı ve her kodun anlamı.

  • 9ResearchWeb Almanac 2024: HTTP

    Robin Marx. Mobil ana sayfalarda %70 HTTP/2, %9 HTTP/3, %21 HTTP/1.1.

  • 10DocsMDN: HTTPS

    HTTP'nin TLS ile şifrelenmiş hali.

  • 11ResearchWeb Almanac 2024: Security

    Mobilde isteklerin %98'i TLS üzerinden.

  • 12DocsMDN: Secure contexts

    Hangi özelliklerin HTTPS istediği ve `localhost`'un güvenli sayılması.

  • 13DocsMDN: How browsers load websites

    HTML'den DOM'a, CSS'in uygulanması, layout, paint, JavaScript ve erişilebilirlik ağacı.

  • 14ArticleMariko Kosaka: Inside look at modern web browser, part 1

    Browser, renderer ve GPU süreçleri; her sekmenin neden ayrı süreçte çalıştığı.

  • 15DocsMDN: What are browser developer tools?

    DevTools'u açmak; Elements, Console ve Sources panelleri.

  • 16DocsChrome DevTools: Inspect network activity

    Network panelinin sütunları, Headers ve Response sekmeleri, throttling.

  • 17DocsChrome DevTools: Network features reference

    Disable cache ve Preserve log.

  • 18DocsMDN: Populating the page: how browsers work

    DNS, TCP, TLS, parsing, layout, paint ve compositing; performans açısından.

  • 19ArticleIlya Grigorik: High Performance Browser Networking

    Ücretsiz okunabilen kitap: TCP, UDP, TLS, HTTP/1.x, HTTP/2 ve tarayıcı API'leri.

  • 20DocsMess With DNS

    Wizard Zines'in DNS kayıtlarıyla güvenle deney yapma aracı.

Edit this page

Last updated: October 17, 2026

Next step02. Terminal ve npm