Web Sunucusu
- İngilizcesi
- Web Server
- Okunuşu
- veb sörvır
Günlük kullanımda iki ad da yaygın.
Kısaca
Web sunucusu, tarayıcılardan ve diğer istemcilerden gelen HTTP isteklerini alıp sayfa, dosya ya da veriyle yanıt veren yazılım veya onu çalıştıran makinedir.
Web sunucusu (web server) nedir?
Web sunucusu, bir ağ portunda (HTTP için genellikle 80, HTTPS için 443) HTTP isteklerini dinleyen ve yanıtlar gönderen bir programdır. Terim, yazılımın kendisini ya da üzerinde çalıştığı fiziksel veya sanal makineyi ifade edebilir. Bir URL yazdığınızda tarayıcınız bir web sunucusuna istek gönderir ve sunucu sayfanın ihtiyaç duyduğu HTML, CSS, görsel ya da JSON'u döndürür.
Web sunucuları iki tür içerik sunar. Görseller, stil sayfaları ve önceden oluşturulmuş HTML dosyaları gibi statik içerik diskten okunup olduğu gibi gönderilir ve çok hızlıdır; dinamik içerik ise her istek için uygulama koduyla üretilir, bu yüzden web sunucusu bu istekleri bir uygulama sunucusuna ya da çalışma ortamına iletir ve onun yanıtını aktarır. Yaygın kullanılan web sunucuları arasında NGINX, Apache HTTP Server, Caddy ve Microsoft IIS bulunur; bunlar ayrıca genellikle HTTPS şifrelemesini, sıkıştırmayı, loglamayı ve yönlendirmeleri de üstlenir.
Web sunucusunu bir pastanenin ön tezgâhı gibi düşünün: hazır ekmek (statik dosyalar) hemen teslim edilir, özel pasta siparişleri (dinamik istekler) ise mutfağa iletilir ve hazır olunca teslim edilir. Çoğu web sitesi, uygulamasının önünde bir web sunucusu çalıştırır ve aynı program çoğu zaman reverse proxy ve load balancer olarak da görev yapar.
Web sunucusu sıklıkla uygulama sunucusuyla karıştırılır. Web sunucusu HTTP bağlantılarını yönetmeye ve dosyaları verimli sunmaya odaklanır; uygulama sunucusu ise bir Node.js, Python ya da Java uygulaması gibi iş mantığınızı çalıştırır. Aradaki çizgi bulanıktır, çünkü Node.js gibi birçok çalışma ortamı kendi HTTP sunucusunu içerir; ancak üretim ortamında bunların önünde çoğunlukla ayrı bir web sunucusu veya reverse proxy bulunur.
Önemli noktalar
- Web sunucusu HTTP isteklerini alır ve HTML, dosya ya da JSON gibi yanıtlar döndürür.
- Genellikle HTTP için 80, HTTPS için 443 numaralı portu dinler.
- Statik dosyalar doğrudan sunulur; dinamik istekler uygulama koduna iletilir.
- Yaygın ek görevler TLS şifreleme, sıkıştırma, loglama ve yönlendirmelerdir.
- Uygulama sunucusu iş mantığını çalıştırır; web sunucusu HTTP'yi ve dosyaları yönetir.
Örnek
server {
listen 80;
server_name example.com;
# Static content: read files straight from disk
location / {
root /var/www/example;
try_files $uri $uri/ /index.html;
}
# Dynamic content: pass to an app listening on port 3000
location /api/ {
proxy_pass http://127.0.0.1:3000;
}
}Sık sorulan sorular
Web sunucusu ile uygulama sunucusu arasındaki fark nedir?
Web sunucusu HTTP bağlantılarını yönetir ve statik dosyaları verimli sunar; uygulama sunucusu ise bir veritabanından okumak gibi dinamik yanıtları oluşturan kodu çalıştırır. Birçok kurulumda önde bir web sunucusu durur ve dinamik istekleri uygulama sunucusuna iletir.
Web sunucusu donanım mıdır, yazılım mı?
Her iki anlam da kullanılır. Kesin konuşmak gerekirse web sunucusu, NGINX veya Apache gibi HTTP'yi yöneten yazılımdır; ancak insanlar onu çalıştıran makineye de web sunucusu der.
Web sunucusu ile reverse proxy arasındaki fark nedir?
Web sunucusu istekleri kendisi yanıtlar; örneğin dosyaları döndürerek. Reverse proxy ise istekleri başka sunuculara iletir ve onların yanıtlarını aktarır; NGINX gibi birçok web sunucusu her ikisini de yapabilir.
İlgili sayfalar
- HTTPWeb Geliştirme, s. 20HTTP, tarayıcıların, uygulamaların ve sunucuların basit bir istek-yanıt döngüsüyle web sayfaları ve veri alışverişi yapmasını sağlayan protokoldür.
- Reverse ProxyDevOps ve Bulut, s. 42Reverse proxy, web sunucularının önünde durup istemci isteklerini onlar adına kabul eden ve her isteği doğru arka uç sunucuya ileten bir sunucudur.
- Yük DengeleyiciDevOps ve Bulut, s. 54Yük dengeleyici, gelen trafiği birkaç arka uç sunucuya dağıtan bir sunucu ya da hizmettir; hiçbir sunucu aşırı yüklenmez ve uygulama erişilebilir kalır.
- Node.jsBackend ve API'ler, s. 31Node.js, JavaScript'i tarayıcı dışında çalıştıran, en çok web sunucuları, API'ler ve komut satırı araçları için kullanılan açık kaynaklı çalışma ortamıdır.
- HTTPSGüvenlik, s. 15HTTPS, tarayıcı ile web sitesi arasındaki trafiği TLS ile şifreleyen, verileri dinlemeye ve değiştirilmeye karşı koruyan HTTP'nin güvenli sürümüdür.
- PortAğlar, s. 22Port, bir cihazdaki belirli bir programı ya da hizmeti tanımlayan, 0 ile 65535 arasında bir sayıdır; IP adresine gelen trafik böylece doğru uygulamaya ulaşır.
- NginxBackend ve API'ler, s. 30Nginx, uygulama sunucularının önünde ters proxy, yük dengeleyici ve HTTP önbelleği olarak da çok kullanılan, hızlı ve açık kaynaklı bir web sunucusudur.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin