Middleware Nedir? Web Uygulamalarında Nasıl Çalışır?

Middleware, web uygulamalarında istek (request) ile yanıt (response) arasında çalışan ara yazılımdır. Sunucuya gelen bir istek middleware katmanından geçer, işlenir ve sonra uygulamanın ana koduna ulaşır. Bu sayede istekleri filtreleme, doğrulama, dönüştürme gibi işlemler yapılabilir.

En basit örnek ile anlatmak gerekirse: bir kütüphaneye gittiğinizde kapıda güvenlik görevlisi var. O görevli sizi kontrol eder, gerekli izinleri kontrol eder, ardından içeri alır. middleware da bu görevlinin rolünü oynar.

Middleware'in Temel Görevleri

Authentication (kimlik doğrulama) middleware'i gelen isteklerin geçerli bir token veya oturum içerip içermediğini kontrol eder. Logging middleware'i ise tüm istekleri kayıt altına alır. CORS middleware'i ise farklı domainlerden gelen isteklere izin verip vermeyeceğine karar verir.

Node.js ve Express örneği:

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1const express = require('express');
2const app = express();
3
4// Basit bir middleware
5app.use((req, res, next) => {
6console.log(`${req.method} ${req.url}`);
7next(); // Bir sonraki middleware'e geç
8});
9
10// Authentication middleware
11app.use((req, res, next) => {
12if (req.headers.authorization) {
13next();
14} else {
15res.status(401).send('Yetkisiz');
16}
17});
18
19app.get('/veri', (req, res) => {
20res.send('Korumalı veri');
21});
22
23app.listen(3000);

Middleware Zinciri

Middleware'ler sıra ile çalışır. Her middleware next() fonksiyonunu çağırarak bir sonraki middleware'e kontrol geçirir. Eğer next() çağırılmazsa istek orada durur ve yanıt gönderilir.

Bu yapı sayesinde istekleri çok katmanlı bir şekilde işleyebilirsiniz. Örneğin önce logging, sonra authentication, sonra data validation gibi.

Neden Önemli?

Middleware kullanmak kodu daha düzenli tutar. Her işlemi ayrı middleware'de tanımlayarak kodun yeniden kullanılabilirliğini artırır. Ayrıca güvenlik, performans ve hata yönetimi açısından merkezi bir kontrol sağlar.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz