Bir Web Sunucusu ile Uygulama Sunucusu Arasındaki Fark Nedir?


Bir web sunucusu ile uygulama sunucusu arasındaki fark nedir?

Web sunucuları ve uygulama sunucuları, internet üzerinden veri ve hizmet alışverişine olanak tanıyan teknolojilerdir. İstemci-sunucu mimarisi, internetin temelinde yer alan mekanizmadır. Bir web sitesini veya uygulamayı ziyaret ettiğinizde tarayıcınız (istemci olarak) uzak bir sunucudan veri talep eder ve yanıtı görüntüler. Web sunucusu, istemci taleplerine yanıt olarak görüntüler, dosyalar ve metin gibi statik verileri sağlayan bir yazılım bileşenidir. Uygulama sunucusu, web sunucusunun yanıtını hesaplamak için iş mantığı ekler. Her iki terim de eş anlamlı olarak kullanılmaktadır ve günümüzde en popüler sunucu yazılım çözümleri, hibrit web uygulaması sunucularıdır.

Çalışma şekli: web sunucusu ve uygulama sunucusu

Web sunucuları ve uygulama sunucuları farklı bağımsız süreçlere sahiptir. Ancak, son kullanıcı tarafından görünmezler.

Bir web sunucusu nasıl çalışır?

Web sunucusu, bir web sitesinin kodunu ve verilerini barındıran teknolojidir. Tarayıcınıza bir URL girdiğinizde, URL aslında web sunucusunun adres tanımlayıcısıdır.

Tarayıcınız ve web sunucunuz aşağıdaki şekilde iletişim kurar:

  1. Tarayıcı, sunucunun IP adresini bulmak için URL'yi kullanır
  2. Tarayıcı, bilgi için bir HTTP talebi gönderir
  3. Web sunucusu, ilgili verileri bulmak için bir veritabanı sunucusuyla iletişim kurar
  4. Tarayıcıya HTTP yanıtında web sunucusu; HTML sayfaları, görüntüler, videolar veya dosyalar gibi statik içerikleri döndürür
  5. Tarayıcı daha sonra bilgileri size görüntüler

Bloglar, başlık görüntüleri veya makaleler gibi statik içerikleri barındıran bir web sitesi, web sunucusunda çalışabilir. Ancak, çoğu web sitesi ve web uygulaması çok daha etkileşimlidir ve bir uygulama sunucusu gerektirir.

Bir uygulama sunucusu nasıl çalışır?

Bir uygulama sunucusu; dinamik içerik oluşturmayı, uygulama mantığını ve çeşitli kaynaklarla entegrasyonu destekleyerek web sunucusunun özelliklerini genişletir. Uygulama kodunu çalıştırabileceğiniz ve mesajlaşma sistemleri ve veritabanları gibi diğer yazılım bileşenleriyle etkileşime girebileceğiniz bir çalışma zamanı ortamı sağlar. Verileri bir web sunucusuna kıyasla daha anlamlı bir şekilde dönüştürmek için iş mantığını kullanır.

Bir web sitesindeki etkileşimli içeriğe erişmeye çalıştığınızda süreç, aşağıdaki gibi çalışır:

  1. Tarayıcı, sunucunun IP adresini bulmak için URL'yi kullanır
  2. Tarayıcı, bilgi için bir HTTP talebi gönderir
  3. Web sunucusu, talebi uygulama sunucusuna aktarır
  4. Uygulama sunucusu, iş mantığını uygular ve talebi yerine getirmek için diğer sunucularla ve üçüncü taraf sistemlerle iletişim kurar
  5. Uygulama sunucusu yeni bir HTML sayfası oluşturarak bu sayfayı web sunucusuna yanıt olarak döndürür
  6. Web sunucusu, yanıtı tarayıcıya döndürür
  7. Tarayıcı, bilgileri size görüntüler

Bir e-ticaret web sitesi örneği kullanalım: Sepetinize ürün eklediğinizde veya ürünlerin ödemesini yaptığınızda uygulama sunucusuyla etkileşime girersiniz.

Temel farklar: web sunucusu ve uygulama sunucusu

Web ve uygulama sunucularını birbirinden ayıran birkaç temel farklılık vardır.

Kapsanan görevler

Bir web sunucusu, web sitelerini barındırır ve basit taleplere yanıt verir. Web sunucuları ayrıca sunucu etkinliğini günlüğe kaydeder ve sunucu tarafı betik çalıştırmaya izin verir.

Öte yandan, uygulama sunucuları daha karmaşık bir dizi göreve sahiptir. Uygulama sunucuları; kurumsal sistemlere, hizmetlere ve veritabanlarına bağlanarak dinamik içerik oluşturmak için iş mantığını yönetir.

Kullanılan protokoller

Web sunucularının kullandığı birincil protokol HTTP protokolüdür. Ancak, farklı web sunucuları FTP ve Basit Posta Aktarım Protokolünü (SMTP) de destekler. Bu iki protokol, e-postaların yanı sıra dosya depolaması ve aktarımını kolaylaştırır.

Web sunucularının kullandığı protokollere ek olarak uygulama sunucuları, diğer yazılım bileşenleriyle iletişim kurmak için ek iletişim protokolleri kullanır. Örneğin, uzaktan yöntem çağırmayı (RMI) ve uzaktan yordam çağrısını (RPC) kullanabilirler.

İçerik türleri

Web sunucuları çoğunlukla statik içerik sunar. Statik içerik, bir sunucunun teslim etmeden önce değiştirmesi veya işlemesi gerekmeyen içeriktir. Örneğin, görüntü dosyaları (PNG, GIF ve JPEG gibi), indirilebilir belgeler (PDF'ler), videolar ve HTML dosyalarının tümü statik içeriktir. 

Uygulama sunucuları çoğunlukla dinamik içerik sunar. Dinamik içerik, kullanıcının nasıl etkileşime girdiğine bağlı olarak değişen içeriktir. Örneğin, dinamik olarak oluşturulan raporlar, özelleştirilmiş veri gösterimleri, kişiselleştirilmiş UI'ler, veritabanı sonuçları ve işlenmiş HTML'lerin tümü dinamik içeriktir.

Çoklu kullanım

Bir sunucudaki iş parçacıkları, görevlerin eş zamanlı olarak işlenmesini sağlayan ayrı operasyon yollarıdır. Çoklu kullanımda sunucu, aynı anda birden fazla iş parçacığını oluşturur, çalıştırır ve bunların her biri ayrı bir görevi veya görevin bir bölümünü işler. Çoklu kullanım desteği, daha fazla web trafiğini yönetirken web içeriğinin daha hızlı sunulmasına yardımcı olur.

Çoğu web sunucusu çoklu kullanımı desteklemez. Web sunucuları her yeni bağlantı talebini bir kuyruğa yerleştirir ve kuyruktaki yeni girişleri ve çıkışları izlemek için bir olay döngüsü kullanır. Verimliliği artırmak için sunucu, engellenmeyen giriş/çıkışı (G/Ç) ve geri aramaları kullanarak talepleri işler. Engellenmeyen işlemler ve olay odaklı mimari, web sunucularının eş zamanlı bağlantıları işlemesine olanak tanır.

Uygulama sunucuları, yüksek ölçeklenebilirlik ve verimlilik sağlamak için çoklu kullanımdan faydalanır. Bir talep dış kaynak gerektiriyorsa uygulama sunucusu, bu etkileşimleri kapsamak için ayrı iş parçacıkları kullanır. Aynı anda birden fazla iş parçacığını işleyebilir ve buna paralel olarak birçok istemci etkileşimi sunabilir. 

Uygulama sunucuları ve web sunucuları birlikte nasıl çalışır?

Uygulama sunucuları ve web sunucuları, istemci taleplerini işlemek ve kullanıcıya doğru içeriği sunmak için birlikte çalışır. Web sunucusu her zaman önce yeni bir talep alır. Bilgiyi kendisi üretebilirse üretir ve bir HTTP yanıtı gönderir. Ayrıca, kullanıcının talep ettiği verilerin zaten önbelleğinde bulunup bulunmadığını da kontrol eder.

Web sunucusu kullanıcının ihtiyaç duyduğu içeriğe erişemiyorsa talebi uygulama sunucusuna iletir. Uygulama sunucusu, verileri işler ve doğru bilgileri sağlamak için iş mantığını kullanır. Daha sonra talebi, kullanıcıya iletmesi için web sunucusuna geri iletir. Belirli mimarilerde, uygulama sunucularını HTTP taleplerini kendi başlarına işleyecek şekilde de yapılandırabilirsiniz.

Farklılıkların özeti: web sunucusu ve uygulama sunucusu

 

Web sunucusu

Uygulama sunucusu

Kapsanan görevler

Web sunucuları basit taleplere yanıt verir.

Bir uygulama sunucusu, veritabanlarından, hizmetlerden ve kurumsal sistemlerden gelen daha karmaşık içerikler sunar.

Kullanılan protokoller

Web sunucuları öncelikli olarak HTTP kullanır. FTP ve SMTP'yi de desteklerler.

Uygulama sunucuları birçok protokolü destekler. 

İçerik türleri

Web sunucuları; HTML sayfaları, görüntüler, videolar ve dosyalar gibi statik içerikler sunar. 

Uygulama sunucuları; gerçek zamanlı güncellemeler, kişiselleştirilmiş bilgiler ve müşteri desteği gibi dinamik içerikler sunar.

Çoklu kullanım

Genellikle çoklu kullanımdan faydalanmaz.

Talepleri eş zamanlı olarak işlemek için çoklu kullanımdan faydalanır. 

AWS, web sunucusu ve uygulama sunucusu gereksinimlerinizi nasıl destekleyebilir?

Amazon Web Services (AWS), web uygulamaları ve web siteleri temin etmek için düşük maliyetli bir yol sağlayan çeşitli bulut web barındırma çözümleri sunar. Daha fazla bilgi için AWS'de web barındırmayı inceleyin. İki AWS web barındırma çözümü:

  • Amazon Lightsail, AWS'yi kullanarak bir web sunucusunu başlatmanın ve yönetmenin en kolay yoludur. Lightsail, web sitenizi hızla başlatmak için ihtiyaç duyduğunuz her şeyi—bir sanal makineyi, SSD destekli depolamayı, veri aktarımını, DNS yönetimini ve statik IP'yi—öngörülebilir derecede düşük bir fiyat karşılığında sunar.
  • Amazon Esnek İşlem Bulutu (Amazon EC2), buluttaki uygulama sunucuları için yeniden boyutlandırılabilen işlem kapasitesi sağlar. Geliştiriciler için web ölçeğinde bulut bilgi işlemi kolaylaştırmak amacıyla tasarlanmıştır. Ayrıca web siteleri ve web uygulamaları için maksimum ölçeklenebilirlik ve kullanılabilirlik sağlar. Amazon EC2, bilgi işlem ekonomisini değiştirir ve siz de yalnızca kullandığınız kapasite karşılığında ödeme yaparsınız.

Alternatif olarak AWS, sunucuları yönetmeden kod çalıştırmak, verileri yönetmek ve uygulamaları entegre etmek için kullanabileceğiniz teknolojiler sunar. AWS sunucusuz çözümleri, işletmeniz için yüksek kullanılabilirlik, kullanım başına ödeme faturalaması ve otomatik ölçeklendirme sağlar. Daha fazla bilgi için AWS'de Sunucusuz konusuna gidin.

AWS sunucusuz hizmetlerini kullanmanın bazı yolları şunlardır:

Hemen bir hesap oluşturarak AWS'de web sunucuları ve uygulama sunucularını kullanmaya başlayın.