COMPUTER ENGINEER

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

Tarayıcı ve frontend

SSR, CSR, SSG: sayfa nerede üretilir?

HTML’in sunucuda mı, tarayıcıda mı, derleme anında mı üretildiği hız, SEO ve maliyeti değiştirir.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

İstemci tarafı render’da (CSR) sunucu boş bir HTML iskeleti ve büyük bir JavaScript paketi gönderir; içerik tarayıcıda veri çekildikten sonra oluşur. Sunucu tarafı render’da (SSR) HTML her istekte sunucuda veriyle birlikte üretilir; kullanıcı içeriği JavaScript beklemeden görür. Statik üretimde (SSG) HTML derleme anında bir kez üretilir ve dosya gibi sunulur; çok hızlıdır ama veri değişince yeniden derleme gerekir.

Next.js App Router’da bileşenler varsayılan olarak Server Component’tir: sunucuda çalışır, veritabanına veya API’ye doğrudan erişebilir ve tarayıcıya JavaScript göndermez. Etkileşim gereken parçalar ‘use client’ ile işaretlenir ve tarayıcıda canlanır (hydration). Veri çağrılarına süre verilerek (revalidate) sayfalar önbellekten sunulabilir ve arka planda yenilenebilir; buna artımlı yeniden üretim de denir.

Bu sitede blog yazısı SSR ile üretilir ve API yanıtı 60 saniye önbellekte tutulur. Simülatördeki ilk senaryoda Next.js’in API’yi tarayıcı adına çağırdığını görebilirsin.

NERESİNDE KULLANIRSIN?

Render stratejisi; ilk açılış hızını, arama motoru görünürlüğünü ve sunucu maliyetini birlikte belirler.

SIK YAPILAN HATA

Bütün sayfayı ‘use client’ yapıp sunucu bileşenlerinin avantajını kaybetmek.

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
// Server Component (varsayılan): sunucuda çalışır
export default async function Page() {
  const posts = await getPosts();
  return <PostList posts={posts} />;
}

Veri sunucuda çekilir, tarayıcıya hazır HTML gider.

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.

Bir ürün sayfası: açıklama nadiren değişir, stok bilgisi her dakika değişir, ‘sepete ekle’ düğmesi etkileşimlidir. Her parçayı nasıl üretirsin?

Çözümü ve açıklamasını göster
Açıklamalı çözüm
Açıklama: Server Component, uzun revalidate (ör. 1 saat) veya etiketle geçersiz kılma
Stok: kısa revalidate (ör. 30 sn) ya da istemcide periyodik yenileme
Düğme: küçük bir 'use client' bileşeni

Tek bir sayfa farklı tazelik ihtiyaçları olan parçalardan oluşabilir; her parçaya uygun strateji seçilir.