COMPUTER ENGINEER

Örneklere git
Blog
Next.js / ASP.NET Core / SQL6 dk çalışma
03/ 41

Büyük resim

Bir isteğin uçtan uca haritası

Tarayıcıdan veritabanına ve geri: duraklar, sorumluluklar ve nerede yavaşlayabileceği.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

Bir blog yazısını açtığında istek beş bölgeden geçer. İstemcide tarayıcı isteği hazırlar, ağ katmanı DNS, TCP ve TLS ile güvenli bağlantıyı kurar. Kenarda bir ters vekil TLS’i sonlandırır ve isteği iç ağa aktarır. Web sunucusunda Next.js sayfayı üretmek için veriye ihtiyaç duyar ve API’yi çağırır. API’de ASP.NET Core isteği bir middleware hattından geçirir: hata yakalama, routing, hız sınırı, kimlik doğrulama, yetkilendirme, model binding ve en sonunda controller. Veri bölgesinde önce önbelleğe bakılır, yoksa EF Core sorguyu SQL’e çevirir ve SQL Server çalıştırır.

Yanıt aynı yoldan geri döner ve her durak bir şey ekler: EF Core satırları nesneye çevirir, controller JSON üretir, Next.js HTML üretir, vekil sıkıştırır, tarayıcı çizer ve sayfayı etkileşimli hale getirir.

Bu haritayı ezberlemek değil, bir sorunla karşılaştığında ‘hangi durakta?’ diye sorabilmek önemlidir. Aşağıdaki simülatörde farklı senaryoları dene: önbellekten dönen istek, yetkisiz istek veya veritabanı hatası. Bazı duraklar hiç çalışmaz; isteğin nerede kısa devre yaptığını görmek, katmanların neden var olduğunu anlatır.

NERESİNDE KULLANIRSIN?

Performans ve hata ayıklama, isteğin zamanını hangi durakta harcadığını bilmekle başlar.

SIK YAPILAN HATA

Yavaş bir sayfanın sebebini hep veritabanında aramak; çoğu zaman ağ, büyük JavaScript veya tekrarlanan çağrılardır.

CANLI ANİMASYON

Bir mektubun şehirdeki yolculuğu

İsteği bir mektup, sunucuyu bir şehir gibi düşün. Senaryo seç, oynat ve mektubun hangi kapıdan geçip nerede durdurulduğunu izle.

İSTEMCİKENARWEB SUNUCUSUAPI · ASP.NET COREVERİTarayıcıKullanıcının ekranıAğDNS · TCP · TLSTers vekilTLS sonlandırma, sıkıştırmaNext.js sunucusuSSR ve route handlerKestrelHTTP sunucusuHata yakalayıcıMiddlewareRoutingEndpoint seçimiHız sınırıMiddlewareKimlik doğrulamaKim olduğunYetkilendirmeNeye izin varModel bindingHTTP → C# + doğrulamaControllerEndpoint koduServisİş kuralları (DI)RedisDağıtık önbellekEF CoreLINQ → SQLSQL ServerSorgu planı, indeks
GİDİŞ →

Bir yazıya tıkladın. Tarayıcı ‘Bana bu yazıyı gönder’ diyen bir mektup yazıyor.

TarayıcıSenin ekranın. İsteği yazan ve sonunda cevabı sayfaya çeviren yer.
1 / 22
01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

Temsili örnek
Tarayıcı → Ağ → Ters vekil → Next.js → API → (Redis | EF Core → SQL Server)
        ← ← ←        ← ←          ← ←   ← ←

Gidiş ve dönüş aynı duraklardan geçer.

Bu sayfa gerçek bir sunucuya veya veritabanına bağlanmaz. Kod örnekleri .NET 8, Next.js ve SQL Server için temsilîdir; süreler simülasyondaki örnek değerlerdir, ölçüm değildir. Örnekleri yalnız kendi geliştirme ortamında dene; gerçek bağlantı dizesi, token veya parola paylaşma.

02 / SIRA SENDE

Önce kendin dene.

Simülatörde ‘Yetkisiz istek’ senaryosunu çalıştır. Hangi duraklar hiç çalışmıyor ve bu neden iyi bir şey?

Çözümü ve açıklamasını göster
Açıklamalı çözüm
Çalışmayanlar: model binding, controller, servis, Redis, EF Core, SQL Server.
İstek yetkilendirme middleware’inde 401 ile kısa devre yapar.

Reddedilecek bir istek ne kadar erken durdurulursa o kadar az kaynak harcanır ve saldırı yüzeyi o kadar küçük olur.