# Web Sunucusu vs Uygulama Sunucusu

Adres: https://softwaredictionary.org/tr/karsilastirma/web-server-vs-application-server
Son güncelleme: 2026-10-06

Kısaca: Web sunucusu HTTP bağlantılarını yönetir ve statik dosyaları sunar; uygulama sunucusu ise genellikle onun ardında kodunuzu çalıştırıp dinamik yanıtlar üretir.

## Web sunucusu ile uygulama sunucusu arasındaki fark nedir?

Web sunucusu ve uygulama sunucusu, bir isteğin yolu üzerindeki iki roldür. NGINX, Apache HTTP Server ya da Caddy gibi bir web sunucusu HTTP bağlantılarını kabul eder, HTTPS'i sonlandırır, görseller ve stil sayfaları gibi statik dosyaları doğrudan diskten sunar ve geri kalan her şeyi iletir. Gunicorn, Puma, Tomcat ya da Kestrel gibi bir uygulama sunucusu ise uygulamanızın kodunu barındırır ve iş mantığını çalıştırır: her istek için girdiyi denetler, veritabanını sorgular ve yanıtı oluşturur.

Bu ayrım, iki işin farklı güçler gerektirmesinden doğar. Çok sayıda açık bağlantıyı, yavaş istemcileri, sıkıştırmayı ve TLS'i verimli yönetmek uzmanlık isteyen bir iştir; uygulama kodunu çalıştırmak ise worker süreçlerini ya da iş parçacıklarını, veritabanı bağlantı havuzlarını, oturumları ve transaction'ları yönetmekle ilgilidir. İkisini ayrı tutmak her birinin kendi işini iyi yapmasını sağlar; web sunucusu da birkaç uygulama sunucusunu koruyup yükü aralarında dağıtabilir.

Tipik bir kurulumda birlikte çalışırlar: NGINX internete bakar, statik istekleri kendisi yanıtlar ve dinamik olanları uygulama sunucusuna iletir; tıpkı bir restoranın ön tezgâhının hazır ürünleri hemen verip özel siparişleri mutfağa göndermesi gibi. Kurumsal Java'da WildFly ya da WebLogic gibi tam uygulama sunucuları Jakarta EE'yi uygular ve dağıtılan WAR ya da EAR dosyalarını barındırır; diğer ekosistemlerin çoğunda ise uygulama sunucusu, Python için Gunicorn ya da PHP için PHP-FPM gibi tek bir uygulamayı çalıştıran küçük bir süreçtir.

Sık yapılan bir yanlış, aralarındaki çizginin katı olduğunu düşünmektir. Birçok framework kendi içine bir HTTP sunucusu gömer: bir Spring Boot uygulaması içinde Tomcat'le gelir, bir Node.js uygulaması da kendi sunucusunu açar; Tomcat dosya da sunabilir, NGINX de modüller aracılığıyla küçük script'ler çalıştırabilir. Ayrım, her birinin yığındaki asıl işiyle ilgilidir; production'da önde yine de çoğunlukla ayrı bir web sunucusu ya da reverse proxy durur.

| Özellik | Web Sunucusu | Uygulama Sunucusu |
| --- | --- | --- |
| Asıl iş | HTTP bağlantılarını kabul etmek, istekleri sunmak ya da iletmek | Uygulama kodunu ve iş mantığını çalıştırmak |
| İçerik | Statik dosyalar: HTML, CSS, görseller, indirmeler | Her istek için üretilen dinamik yanıtlar |
| Tipik özellikler | TLS, sıkıştırma, önbellek, yönlendirmeler, yük dengeleme | Worker havuzları, veritabanı bağlantıları, oturumlar, transaction'lar |
| Konum | Kenarda, istemcilere dönük | Web sunucusunun arkasında, ağın içinde |
| Bir dile bağlı mı? | Hayır: her siteyi aynı şekilde sunar | Evet: tek bir dil ya da platform için yapılmıştır |
| Örnekler | NGINX, Apache HTTP Server, Caddy, IIS | Tomcat, WildFly, Gunicorn, Puma, PHP-FPM, Kestrel |

## Web Sunucusu şu durumlarda doğru seçim

- Statik bir site, indirmeler ya da tek sayfalık bir uygulamanın derlenmiş dosyalarını sunuyorsunuz.
- Servislerinizin önünde TLS sonlandırma, sıkıştırma, önbellek ya da yönlendirmeler gerekiyor.
- Birkaç uygulama örneğinin, yükü dağıtan tek bir giriş noktasına ihtiyacı var.
- Uygulamayı yavaş istemcilerden ve doğrudan internet trafiğinden korumak istiyorsunuz.

## Uygulama Sunucusu şu durumlarda doğru seçim

- Yanıtlar kullanıcıya, veriye ya da iş kurallarına bağlı ve her istek için üretilmeli.
- Uygulamanız Python, Ruby, PHP, Java ya da .NET ile yazılmış ve onu çalıştıracak bir sürece ihtiyaç duyuyor.
- Yönetilen worker süreçlerine, veritabanı bağlantı havuzlarına ya da transaction'lara ihtiyacınız var.
- Bir Jakarta EE uygulamasını WAR ya da EAR dosyası olarak dağıtıyorsunuz.

## Sık sorulan sorular

**NGINX bir web sunucusu mu, uygulama sunucusu mu?**

NGINX bir web sunucusu ve reverse proxy'dir. Uygulama kodunuzu kendisi çalıştırmaz; dosyaları sunar ve dinamik istekleri Gunicorn, PHP-FPM ya da bir Node.js süreci gibi bir uygulama sunucusuna iletir.

**Node.js'in önünde ayrı bir web sunucusuna ihtiyacım var mı?**

Kesin olarak değil, çünkü Node.js'in kendi HTTP sunucusu vardır. Yine de birçok ekip TLS'i, statik dosyaları, sıkıştırmayı ve birden çok uygulama örneğini yönetmek için önüne NGINX, bir yük dengeleyici ya da bir CDN koyar.

**Tomcat bir uygulama sunucusu mu?**

Genellikle servlet container olarak anılır: Jakarta EE'nin web kısmını uygular ve Java web uygulamalarını çalıştırır. WildFly gibi tam uygulama sunucuları ise mesajlaşma ve dağıtık transaction'lar gibi platformun geri kalanını ekler.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
