Bu yazıyı daha önce hashnode hesabımdam yazmıştım. Bu serinin başlangıcı için iyi bir yazı olacağından buraya bazı değişikler yaparak alıyorum :
https://hashnode.mustafasamedyeyin.com/middleware-nedir
Middleware nedir ?
Asp.net core uygulamamızda her web uygulamasında olduğu gibi istekler yani request'leri ve cevaplar yani response'ları vardır.
Bu request ve response'u, asp.net core uygulamamızda taşıyan nesne: httpcontext nesnesidir.
Asp.net core uygulamamızda httpcontext nesnesinin üzerinde işlemler yapmamız sağlayan yapılara middleware denir. "Middleware"e "ara yazılım" da diyebiliriz.
Middleware'ler bir hat üzerinden dururlar. Bu "hat"a ise yazılımcılar "Pipeline" der.
Pipeline'ın zaten ingilizce'de boru hattı gibi bir anlamı var.
Yani middleware'leri bir pipeline'a yerleştiriyoruz(yani bir boru hattına yerleştiriyoruz gibi düşünebilir).
Bu pipeline'ı (ya da boru hattını) aşağıdaki gibi düşünebiliriz.
-----Middleware(1)-------Middleware(2)-------Middleware(n)----
Bu middleware'ler
1.) httpcontext nesnesi üzerinde istediği işlemi yapabilir ve bir sonraki middleware httpcontext nesnesi aktarabilir.
2.) httpcontext nesnesi üzerinde istediği işlemi yapabilir ve bir sonraki middleware httpcontext nesnesini aktarmadan kısa-devre(sort-circuit) yaptırabilir.
Middleware pipele'nının çalışma mantığı : Diyelim ki 4 tane middleware'imiz var bunlar: "middleware 1", "middleware 2", "middleware 3", "middleware 4" olsun :
İlk başta bir request gelir : "middleware 1" daha sonra "middleware 2" daha sonra daha sonra "middleware 3" daha sonra "middleware 4" çalışır bundan sonra pipeline tersine döner "middleware 4" den sonra "middleware 3" daha sonra "middleware 2" ve yine en son "middleware 1" çalışır ve response döner. Aşağıdaki resimdeki gibi bu 4 tane middleware'i görselleştirebiliriz
Ben 4 tane middleware'i olan bir örnek verdim, siz bunu n taneye kadar çıkartabilirsiniz. Yani sayı 4 olmak zorunda değil, 10 da olabilir 15 de olabilir ama çizmesi biraz zor olduğundan ben 4 ile kısıtladım :).
Bir dahaki yazımda görüşmek dileğiyle.
En iyi dileklerim ile.
Mustafa Samed Yeyin.
Top comments (0)