2 dk okuma
Ağ / Performans
1. HTTP/1.1 vs HTTP/2 vs HTTP/3
- HTTP/1.1: Her istek ayrı bir TCP bağlantısı gerektirebilir (ya da sınırlı sayıda paralel bağlantı), "head-of-line blocking" sorunu vardır.
- HTTP/2: Tek TCP bağlantısı üzerinden çoklu istek (multiplexing), header sıkıştırma, sunucu push.
- HTTP/3: TCP yerine QUIC (UDP tabanlı) kullanır, bağlantı kurulumu daha hızlı, paket kaybında daha dayanıklı.
2. CDN ve Cache-Control
CDN (Content Delivery Network), statik içeriği kullanıcıya coğrafi olarak yakın sunuculardan sunar, gecikmeyi (latency) azaltır. Cache-Control header'ı tarayıcıya ve ara sunuculara içeriğin ne kadar süre cache'lenebileceğini söyler (max-age, no-cache, must-revalidate gibi direktiflerle).
3. Lazy Loading, Code Splitting, Bundle Optimizasyonu
- Lazy loading: Bileşenleri/kaynakları ihtiyaç duyulduğunda yüklemek (örn.
React.lazy) - Code splitting: Uygulamayı tek büyük bundle yerine küçük parçalara ayırmak, sadece gerekli parçanın indirilmesini sağlamak
- Tree shaking: Kullanılmayan kodu bundle'dan çıkarmak
4. Web Vitals
- LCP (Largest Contentful Paint): Sayfadaki en büyük görsel/metin elemanının ne kadar sürede göründüğü
- FID / INP (First Input Delay / Interaction to Next Paint): Kullanıcı etkileşimine tepki hızı
- CLS (Cumulative Layout Shift): Sayfa yüklenirken elemanların ne kadar "zıpladığı"
Sık Sorulan Mülakat Soruları
- HTTP/1.1, HTTP/2 ve HTTP/3 arasındaki temel farklar nelerdir?
- "Head-of-line blocking" nedir, hangi protokolde sorun yaratır?
- HTTP/2'nin multiplexing özelliği ne işe yarar?
- CDN kullanmanın avantajları nelerdir?
Cache-Controlheader'ındakimax-age,no-cache,must-revalidatedirektifleri ne anlama gelir?- Lazy loading ile code splitting arasındaki ilişki nedir?
- Tree shaking nasıl çalışır?
- LCP, FID/INP ve CLS neyi ölçer, neden önemlidir?
- Bir web sayfasının yüklenme performansını nasıl iyileştirirsin?