Seyahat ipuçları ve şehir rehberleri
Middleware nedir? Next.js’te istek katmanı ve kurumsal kullanım
Mühendislik ·
Middleware nedir?
Middleware, bir web isteğinin uygulama koduna (sayfa, API, Server Component) ulaşmadan önce çalışan ara yazılımdır. İstek tarayıcıdan veya mobil uygulamadan gelir; sunucu tarafında henüz iş kurallarınız, veritabanı sorgularınız veya ekran render’ınız başlamadan middleware “bu istek devam etsin mi, yönlensin mi, reddedilsin mi?” kararını verebilir. Sektörde “kapıdaki güvenlik görevlisi” metaforu sık kullanılır: kimlik, dil, yol ve basit politika kontrolleri binaya girmeden uygulanır.
Bu yazı middleware nedir sorusuna hem genel web mimarisi hem de modern
Next.js App Router’daki middleware.ts açısından cevap verir. Ne
işe yaradığını, ne olmadığını, şemalarla istek hattını ve kurumsal
projelerde sık görülen kullanım / tuzak örüntülerini netleştirir. İş dili
özeti için ayrıca
web isteklerinde güvenlik ve kontrol katmanı
yazımızı okuyabilirsiniz; burada teknik tanım ve sınırlar öne çıkar.
• • •
Middleware ne değildir?
Middleware’i her şeye yapıştırmak yaygın bir hatadır. Net sınırlar:
- İş kuralı motoru değildir. Fatura hesaplama, stok rezervasyonu, onay zinciri gibi domain mantığı sayfa/API veya servis katmanında kalmalıdır.
- Kalıcı veri yazma yeri değildir. Her istekte ağır veritabanı yazımı gecikmeyi ve hata yüzeyini büyütür; edge/runtime kısıtları da buna karşıdır.
- API gateway veya load balancer değildir. Bulut gateway’i trafik yönlendirme, TLS sonlandırma ve WAF gibi altyapı işlerini üstlenir; uygulama middleware’i ürün kurallarını (dil, oturum, matcher) uygular. İkisi tamamlayıcıdır, eş anlamlı değildir.
- Tam yetkilendirme (RBAC) değildir. “Giriş yapmış mı?” ince kapı kontrolüdür; “bu rol bu kaydı silebilir mi?” çoğu zaman uygulama içinde RBAC modeli ile çözülür.
Kısaca: middleware erken, ince ve tekrarlanabilir kararlar içindir. Kalın iş mantığını buraya taşımak bakımı zorlaştırır ve testleri kırılgan hale getirir.
• • •
Şema: istek hattında middleware nerede?
Aşağıdaki şema istemci, middleware ve uygulama işleyicisi arasındaki sırayı gösterir. Middleware yanıtı erken kesebilir (redirect, 401/403 benzeri yanıt) veya isteği bir sonraki adıma bırakabilir.
Klasik Node/Express dünyasında middleware zinciri app.use ile
kurulur: her fonksiyon (req, res, next) alır, işini yapar,
sonraki fonksiyona geçer veya yanıtı bitirir. Next.js App Router’da proje
köküne yakın middleware.ts (veya src/middleware.ts)
dosyası bu rolü üstlenir; Edge Runtime üzerinde çalışır ve matcher ile
hangi yollarda tetikleneceği seçilir. Amaç aynıdır: uygulama render’ından önce
ortak kararlar.
• • •
Next.js’te middleware ve matcher
Next.js middleware, gelen isteğin URL’sine, başlıklarına ve çerezlerine
bakarak yeniden yazma (rewrite), yönlendirme (redirect) veya devam
(NextResponse.next()) üretebilir. Kritik nokta:
her istekte çalışmak zorunda değildir. Statik varlıklar
(/_next/static), görseller ve gürültülü yollar matcher dışında
bırakılmazsa gereksiz maliyet ve gecikme oluşur.
Kurumsal çok dilli sitelerde matcher sıkça /tr/* ve
/en/*
gibi locale öneklerini kapsar: eksik dil öneki varsa yönlendirme, eski slug
ise 301, admin paneli ise oturum kapısı. Bu kararlar sayfa bileşenine dağılmak
yerine tek yerde toplanınca SEO ve güvenlik tutarlılığı artar. Web yazılım
sürecinde bu katmanın keşifte konuşulması için
web yazılım geliştirme süreci
rehberimize bakabilirsiniz.
• • •
Tipik kurumsal kullanım alanları
1. Dil ve URL tutarlılığı (i18n)
Kullanıcı /blog/… gibi locale’siz bir adrese gelirse middleware
tercih edilen dile veya varsayılan /tr yoluna yönlendirebilir.
Eski prefixsiz URL’ler için 301 kuralları da burada (veya edge redirect
tablosu ile birlikte) uygulanabilir. Amaç: arama motoru ve kullanıcıya tek
kanonik yol.
2. Oturum kapısı (auth gate)
Yönetim paneli veya özel müşteri alanı için “oturum çerezi var mı?” kontrolü middleware’de yapılır. Yoksa login’e redirect; varsa istek devam eder. Rol bazlı ince yetki (şu kaydı düzenleyebilir mi?) çoğu zaman sonraki katmanda kalır.
3. Güvenlik başlıkları ve basit trafik kuralları
Yanıta güvenlik başlıkları eklemek, belirli yolları önbelleğe kapatmak veya kaba bot/rate sinyallerini erken kesmek middleware’in sık görülen işleridir. Ağır tehdit istihbaratı ve WAF yine altyapı katmanına aittir; uygulama middleware’i ürün politikasını uygular.
4. Deney ve özellik bayrakları
A/B veya özellik bayrağı için çerez/header okuyup isteği farklı bir rewrite hedefine yönlendirmek mümkündür. Bu, sayfa ağacını çatallamadan deneme yapmayı kolaylaştırır; yine de iş kurallarını bayrak dosyasına gömmeyin.
• • •
İyi pratikler ve sık tuzaklar
- İnce tutun. Middleware’de yalnızca erken kararlar: yönlendir, reddet, header ekle, devam et. Rapor üretmeyin, e-posta göndermeyin.
- Ağır I/O’dan kaçının. Her istekte uzak API veya yavaş DB çağrısı gecikmeyi tüm siteye yayar. Gerekirse önbellekli, kısa TTL’li okumalar veya sonraki katmana bırakılan kontroller tercih edilir.
- Matcher’ı bilinçli yazın. Statik ve gereksiz yolları hariç tutun; aksi halde maliyet ve soğuk başlangıç etkileri artar.
- Edge kısıtlarını bilin. Next.js middleware Edge Runtime’da çalışır; Node-only paketler ve bazı API’ler burada kullanılamaz. Keşifte runtime seçimini netleştirin.
- Gözlemlenebilirlik. Hatalı redirect döngüleri SEO’yu yakar. Log ve izleme ile “kaç istek middleware’den döndü?” sorusunu sorabilmelisiniz — bkz. gözlemlenebilirlik.
- Test. Matcher + redirect senaryolarını otomatik veya en azından checklist ile doğrulayın; locale ve auth edge case’leri elle unutulur.
Middleware, doğru kullanıldığında tutarlılık ve güvenlik sinyali verir; yanlış kullanıldığında ise “her şeyi buraya koyduk” anti-pattern’ine dönüşür. Kurumsal web uygulaması geliştirirken bu katmanı keşif çıktısına yazmak, web yazılım geliştirme teklifinin şeffaf parçası olmalıdır.
• • •
Middleware vs API route / Server Action
API route veya Server Action, belirli bir işi (form kaydı, rapor üretimi) yerine getirir. Middleware ise birçok yola ortak erken filtredir. “Kullanıcıyı kaydet” API’dedir; “admin’e giriş yoksa içeri alma” middleware’dedir. İkisini karıştırmak hem güvenlik delikleri hem de tekrarlayan kod üretir.
Benzer şekilde CDN/WAF kuralları altyapı ekibinin alanıdır; ürün ekibinin dil, oturum ve panel yolları uygulamanın middleware’inde yaşar. Sınır net olduğunda olay müdahalesi de netleşir: 301 döngüsü uygulama redirect’i mi, yoksa edge kuralı mı?
• • •
Sık sorulan sorular
Middleware her projede şart mı?
Hayır. Tek dilli, herkese açık statik bir site middleware olmadan da yaşayabilir. Çok dilli URL’ler, admin paneli, oturum kapısı veya merkezi redirect ihtiyacı doğduğunda middleware (veya eşdeğeri edge kuralı) değer kazanır.
Middleware güvenlik katmanının tamamı mıdır?
Hayır. Erken kontrollerden biridir. RBAC, doğrulama, denetim izi, şifreleme ve altyapı WAF’ı ayrı parçalardır. İş dili için güvenlik ve kontrol katmanı yazısına bakın.
Middleware’de veritabanı sorgusu yapılır mı?
Teknik olarak bazı senaryolarda mümkün olsa da varsayılan tavsiye hayırdır: gecikme, hata yüzeyi ve Edge kısıtları nedeniyle ince tutun; kimlik doğrulama için hafif çerez/JWT doğrulaması tercih edilir, ağır sorgular uygulama katmanına bırakılır.
Express middleware ile Next.js middleware aynı mı?
Fikir aynı (istek zincirinde ara adım), çalışma ortamı ve API farklıdır.
Express Node sürecinde next() zinciri kullanır; Next.js App
Router middleware Edge’de çalışır ve matcher ile sınırlanır. Kodunuzu bire bir
taşımayı beklemeyin; deseni taşıyın.
Aksiyon Soft projelerinde middleware nasıl ele alınır?
Keşifte hangi yolların herkese açık, hangilerinin oturum/locale istediği yazılı hale getirilir; matcher ve redirect tablosu sprint tanımına girer. Samsun merkezli ekiplerimiz Türkiye genelinde kurumsal web ve özel yazılım projelerinde bu disiplini uygular. İletişim üzerinden keşif talep edebilirsiniz.
• • •
Özet
Middleware nedir? Uygulama iş mantığından önce çalışan, ince ve erken
karar veren ara katmandır. Ne değildir? Domain motoru, kalın yetkilendirme
veya API gateway’in yerine geçen sihirli kutu. Next.js’te
middleware.ts
+ matcher ile dil, oturum ve güvenlik başlıkları gibi ortak kurallar tek yerde
toplanır; şemalardaki istek hattı, matcher ve auth gate bu modeli
görselleştirir. Doğru sınırlarla kullanıldığında SEO, güvenlik ve operasyon
netliği artar — yanlış sınırlarla ise gecikme ve karmaşa büyür.
Kurumsal web veya özel yazılım projenizde istek katmanını birlikte tasarlamak için web yazılım geliştirme ve özel yazılım geliştirme sayfalarımıza göz atın; sorularınız için iletişim formunu kullanın.
İlgili içerikler
Yazılım Rehberi
Gaziantep Yazılım Ortağı: İhracat ERP, e-Belge ve B2B Portallar
Gaziantep yazılım ihtiyaçlarını tekstil, halı ve gıda ihracatçıları açısından ele alıyoruz: ihracat ERP, e-Fatura ve gümrük entegrasyonu, çok tesisli üretim ve B2B bayi portalları.
Yazılım Rehberi
Malatya Yazılım Ortağı: Kayısı, İhracat ve İş Sürekliliği İçin Kurumsal Yazılım
Malatya yazılım ihtiyaçlarını kayısı işleme ve ihracatı, OSB tekstili ve deprem sonrası yeniden yapılanma açısından ele alıyoruz: izlenebilirlik, ihracat belgeleri, bulut yedekleme ve iş sürekliliği.
