13 Ağustos 2014 Çarşamba

[Genel Bilgi] Web Server ile Application Server arasındaki fark nedir?

Web Server (Apache , ISS, nGix)

HTTP requestleriyle ilgilenir. Bir client'tan gelen requesti karşılar ve hazırlanan response'u client'a yollar. Web Server Request'i işlerken HTML sayfası, resim, requesti başka bir yere iletmek veya dinamik içerik üretebilen JSP, Servlet, ASP gibi teknolojileri kullanabilir. Amaçları ve ürettikleri response ne olursa olsun Web Serverlar Request işleyip Response yaratmakla sorumludur.

Web Server'ların çalışma mantıkları basittir. Bir Web Server kendine iletilen requesti kendi containerında bulunan en ve requesti en iyi işleyebilecek programa gönderir. Web Serverları bunun ötesinde kendi içlerinde herhangi bir fonksiyonalite sunmazlar. Server-side programlar ise database işlemleri, mesajlaşma ve transaction işleme gibi özelliklere sahip olabilir.

Application Server(JBOSS, MONO)

Application Serverlar ise HTTP protocolünü işleme dışında client'e bir iş mantığı(Bussiness Logic) sunarlar. Client bu iş mantığını bir class'ın methodunu çağırarak kullanabilir.

Client ile Application arasında bulunan bilgi iletişi sadece HTTP protokolüne ve Markup Language'lere bağlı değildir. Kullanıcıya geri iletilen veri sadece HTML türünde olmadığı için kullanıcı bir GUI ile bağlandığı Application Server'dan istediği bilgiyi çekebilir.

Bir çok durumda Application Server'lar bilgiyi clienta iletirken Component API kullanırlar. Facebook, Twitter, GitHub gibi bir çok internet sitesinin kendilerine özel API'leri vardır. Bu API'ler sayesinde erişebildiğimiz iş mantıklarından gerekli bilgileri çekere kendimize masaüstü veya ticari uygulamalar yazabiliriz.

Uzun lafın kısası; Web Server sadece HTTP tipi requestlerin alıp işlenip, response inşa ettinten sonra bunu client'a iletmek ile sorumlu iken Application Server bunun yanında kullanıcıya Session Management, Transaction Management, E-mail Service gibi bir çok özellik sunar. Web Server'dan sadece response alınabilirken Application Serverlardan Component API'ler sayesinde bir çok bilgi çekilebilir.

2 yorum :