Set 01 · Ders 05/09
Web nasıl çalışır? HTTP, istek ve yanıt
Tarayıcının bir sayfayı isterken hangi mesajı gönderdiğini ve sunucunun bu isteğe nasıl yanıt verdiğini tek bir HTTP akışı üzerinden öğren.
Siber Güvenlik Temelleri · Sistemler nasıl konuşur? · Başlangıç · 3 dk teori + 15 dk uygulama
Bu bölümde
- HTTP istek ve yanıtlarının temel parçalarını tanımak
- İstemciden gelen verinin neden güvenilmez olduğunu açıklamak
- HTTPS'in koruduğu ve korumadığı alanları ayırmak
Bu sayfada
Siber Güvenlik Temelleri derslerini görKonum 5/9
01 · Teori
Konuyu anlamlandır
Bir ürün sayfasını açtığında tarayıcın sunucudan o sayfayı ister, sunucu da içerikle cevap verir. Bir bağlantıya tıklamak, form göndermek veya yeni bir görsel yüklemek aynı temel döngüyü tekrarlar: istek ve yanıt. Bu konuşmanın ortak dili HTTP'dir.
İstek ve yanıt: webin tek döngüsü
Tarayıcı bu konuşmada istemcidir. İstemci bir kaynak veya işlem için istek (request) yollar; sunucu isteği işler ve bir yanıt (response) döner. Bir sayfa açılırken önce HTML, ardından sayfadaki görsel, stil ve program dosyaları için yeni istekler gönderilebilir.
Sunucu her isteği bağımsız olarak değerlendirir. İstemcinin ne istediğini istekten, işlemin sonucunu ise yanıttan okuyabiliriz.
HTTP mesajının anatomisi
İstek ve yanıt, HTTP adı verilen bir metin protokolüyle taşınır. Bir istek kabaca şöyle görünür:
GET /profil?id=42 HTTP/1.1
Host: siberlab.dev
Cookie: session=ab12cd...
User-Agent: Mozilla/5.0
Bu isteğin parçaları şunlardır:
- Yöntem (method): Ne yapmak istediğin.
GETveri ister;POSTgenellikle veri gönderir veya bir işlem başlatır.PUTveDELETEgibi başka yöntemler de vardır. - Yol (path): Hangi kaynak —
/profil— ve varsa sorgu parametreleri:?id=42. - Başlıklar (headers): İstek hakkında meta bilgi — hangi site (
Host), kim (User-Agent), oturum çerezi (Cookie). - Gövde (body): Genelde
POST'ta bulunur; form verisi ya da JSON burada gider.
Yanıt da başlıklar ve gerekirse bir gövde taşır; ayrıca bir durum kodu (status code) içerir. 200 işlemin başarılı olduğunu, 404 kaynağın bulunamadığını, 500 ise sunucuda bir hata oluştuğunu bildirir. Durum kodu, sonucun kısa özetidir; ayrıntılı veri yanıt gövdesinde bulunur.
HTTP durumsuzdur: çerezler ve oturumlar
HTTP durumsuzdur (stateless): her istek, protokol açısından yeni ve bağımsız bir mesajdır. Bir site giriş yaptığını hatırlıyorsa bunu HTTP'nin üzerine eklenen çerez ve oturum gibi mekanizmalarla yapar. Bu bölüm için bilmen gereken yalnızca şudur: HTTP istekleri kendiliğinden önceki isteği hatırlamaz. Çerez, oturum ve token farklarını ilerleyen bölümde ayrı ayrı ele alacağız.
Tek güvenlik sonucu: istemciden gelen veri doğrulanmalı
URL, başlıklar, çerezler ve istek gövdesi istemci tarafından gönderilir; dolayısıyla değiştirilebilir. Örneğin /profil?id=42 adresindeki 42 değerini başka bir istemci farklı bir sayıyla gönderebilir. Sunucu bu değerin biçimini doğrulamalı ve isteyen kullanıcının o profile erişme yetkisini ayrıca kontrol etmelidir.
Temel kural şudur: istemciden gelen veri bir istek bildirir, gerçeği veya izni kanıtlamaz. Kararı sunucu kendi kurallarına göre vermelidir.
HTTPS: taşıma yolunu korumak
Düz HTTP, taşıma yolu üzerinde içeriği gizlemez. HTTPS, HTTP iletişimini TLS ile koruyarak verinin gizliliğini ve bütünlüğünü, ayrıca tarayıcının bağlandığı sunucunun kimliğini doğrulamayı amaçlar.
HTTPS taşıma yolunu korur; sunucunun yanlış bir yetki kararı vermesini veya istemciden gelen veriyi hatalı işlemesini düzeltmez.
Artık bir web isteğine baktığında üç şeyi ayırabilirsin: istemci ne istiyor, sunucu ne cevaplıyor ve HTTPS bu konuşmanın hangi bölümünü koruyor? Sıradaki Şifreleme temelleri konusu, HTTPS'in arkasındaki gizlilik, bütünlük ve kimlik doğrulama araçlarını birbirinden ayırır.
02 · Uygulama
HTTP konuşmasını çözümle
Yaklaşık 15 dkBir oturum açma isteği ile başarılı yanıtı; yöntem, yol, başlıklar, gövde ve durum kodu olarak parçala.
- 01İstek satırı ile yanıt durumunu ayrı göster.
- 02Kimlik, içerik türü ve önbellek davranışını etkileyen başlıkları işaretle.
- 03Hassas verinin URL, log veya yanıta yanlışlıkla taşınabileceği noktaları belirt.
03 · Kanıt
Açıklamalı HTTP değişimi
Kurgu bir istek/yanıt çifti ve her önemli alan için bir cümlelik güvenlik notu.
İyi bir çıktı şunları göstermeli
- HTTP yöntemi ile başarı durum kodu doğru yorumlanıyor.
- Başlık ve gövde verileri birbirine karıştırılmıyor.
- Hassas alanlar gerçek parola veya token içermiyor.
Kendini kontrol et
Metne dönmeden, cevapları kendi cümlelerinle düşün.
- 01HTTP isteği ile HTTP yanıtının temel farkı nedir?
- 02Sunucu neden URL, başlık, çerez ve gövde dâhil istemciden gelen hiçbir veriye doğrudan güvenmemelidir?
- 03Bir kullanıcı URL'deki profil numarasını değiştirerek başka bir kayda ulaşmayı deniyorsa sunucu ne yapmalıdır?
Cevaplarını karşılaştır
- 01İstek, istemcinin sunucudan bir işlem ya da kaynak talebidir; yanıt ise sunucunun bu talebe durum kodu, başlıklar ve gerekirse içerikle verdiği cevaptır.
- 02Bu alanların tamamı kullanıcı veya başka bir istemci tarafından değiştirilebilir; bu nedenle sunucu veriyi doğrulamalı ve işlem için gerekli yetkiyi ayrıca kontrol etmelidir.
- 03Parametreyi geçerli biçim açısından doğrulamalı ve oturumdaki kullanıcının istenen profile erişme yetkisini sunucu tarafında kontrol etmelidir.
Kısaca
- Web, tekrarlanan istek ve yanıt döngülerinden oluşur.
- İstemcinin gönderdiği her alan değiştirilebilir kabul edilmelidir.
- HTTPS taşıma yolunu korur, uygulama hatalarını düzeltmez.
Kaynakça
Son gözden geçirme: 17 Temmuz 2026
- HTTP Semantics
IETF / RFC Editor · RFC 9110 · 2022
HTTP'nin durumsuz yapısı, istek yöntemleri, yanıt kodları ve ortak mesaj semantiği.
- Overview of HTTP
MDN Web Docs
İstek–yanıt döngüsünü, istemci–sunucu rollerini ve HTTP'nin durumsuz yapısını öğrenenler için açıklar.
- Input Validation Cheat Sheet
OWASP
İstemciden gelen verinin sunucu tarafında doğrulanması için uygulama güvenliği rehberi.