İstemci-Sunucu Mimarisi
Öncelikle istemci ve sunucu kavramlarını açıklamaya çalışalım. İstemci adından da anlaşılacağı üzere sistemdeki verilere ulaşmak için sunucudan istekte bulunan yapıdır. Bu yapı sunucudan aldığı verileri kullanabilir. Sunucu ise sistemdeki verileri saklayan ve bu verileri istek geldiğinde istemciye ulaştıran, yüksek performansa sahip bilgisayar veya bilgisayar kümelerinin oluşturduğu yapıdır.
Örnek vermek gerekirse herhangi bir web sitesine bilgisayarınızdan bağlanmak istediğinizde oluşan yapıda istemci kullandığınız tarayıcıdır. Sunucu ise bağlanmak istediğiniz sitenin verilerini barındıran bilgisayar veya bilgisayar kümeleridir. Siteye ilk kez bağlandığınızda tarayıcınız yani istemci sunucuya bir istek yollar ve sunucu isteği değerlendirerek istemciye cevap verir.
İstemci-Sunucu mimarisinde gelişen olayları kısaca özetleyecek olursak:
-Kullanıcı herhangi bir işlem yapmak için istemci yapısını çalıştırır.
-İstemci sunucuya bağlanır.
-İstemci sunucuya istek gönderir.
-Sunucu bu isteği analiz eder.
-Sunucu isteğin sonucunu bulur.
-Sunucu bulduğu sonucu istemciye iletir.
-İstemci sonuçları kullanıcıya gösterir.
-Bu işlemler gerektiği kadar tekrarlanır.
Node.js’in asenkron yapısı sayesinde tek sunucu ile birden fazla istemcinin istekleri, hiçbirinin isteği bekletilmeden cevaplanır. Bir istek cevaplanırken başka bir istek sunucuda hazırlanır.