Bu makalede, web sunucularının ne olduğunu, web sunucularının nasıl çalıştığını ve neden önemli olduğunu inceleyeceğiz.
Bu makalede anlatılanları daha iyi anlamak için İnternet nasıl çalışır ve Web sayfası, web sitesi, web sunucusu ve arama motoru arasındaki fark nedir? makalelerine bakmanızı tavsiye ederiz.
Özet
Web sunucusu terimi donanımı, yazılımı veya her ikisini birlikte tanımlayabilir.
- Donanım tarafında, web sunucusu, web sunucusu yazılımını ve web sitesinin bileşen dosyalarını depolayan bir bilgisayardır. (örneğin, HTML belgeleri, resimler, CSS stil sayfaları ve JavaScript dosyaları) Bir web sunucusu Internet’e bağlanır ve web’e bağlı diğer cihazlarla fiziksel veri değişimini destekler.
- Yazılım tarafında, bir web sunucusu, web kullanıcılarının barındırılan dosyalara nasıl erişdiğini kontrol eden birkaç bölüm içerir. Örneğin, bu bir HTTP sunucusu olabilir. HTTP sunucusu, URL’leri (web adresleri) ve HTTP’yi (tarayıcınızın web sayfalarını görüntülemek için kullandığı protokol) anlayan bir yazılımdır. Bir HTTP sunucusu üzerinde depolanan web sitelerine etki alanı adları üzerinden erişilebilir ve barındırılan bu web sitelerinin içeriğini son kullanıcının cihazına teslim eder.
En temel düzeyde, bir tarayıcının bir web sunucusunda barındırılan bir dosyaya ihtiyacı olduğunda, tarayıcı dosyayı HTTP aracılığıyla talep eder. İstek doğru web sunucusuna (donanım) ulaştığında, HTTP sunucusu (yazılım) isteği kabul eder, istenen belgeyi bulur ve http aracılığıyla da tarayıcıya geri gönderir. (Sunucu istenen belgeyi bulamazsa, bunun yerine 404 yanıtı döndürür.)
Bir web sitesini yayımlamak için statik veya dinamik bir web sunucusuna ihtiyacınız vardır.
Statik bir web sunucusu veya yığın, HTTP sunucusu (yazılım) olan bir bilgisayardan (donanım) oluşur. Sunucu, barındırılan dosyalarını tarayıcınıza olduğu gibi gönderdiğinden buna “statik” diyoruz.
Dinamik bir web sunucusu statik bir web sunucusu artı ekstra yazılımdan, en yaygın olarak bir uygulama sunucusu ve bir veritabanından oluşur. Uygulama sunucusu HTTP sunucusu aracılığıyla tarayıcınıza içerik göndermeden önce barındırılan dosyaları güncellediği için buna “dinamik” diyoruz.
Örneğin, tarayıcıda gördüğünüz son web sayfalarını oluşturmak için, uygulama sunucusu bir HTML şablonunu veritabanındaki içerikle doldurabilir. Vikipedi gibi sitelerin binlerce web sayfası vardır. Bu tür siteler binlerce statik HTML belgesi yerine yalnızca birkaç HTML şablonundan ve dev bir veritabanından oluşur. Bu sistem içeriğin korunmasını ve teslimini kolaylaştırır.
Daha derine dalış
Son kısmı gözden geçirelim: bir web sayfasını getirmek için tarayıcınız, istenen dosyayı kendi depolama alanında arayan web sunucusuna bir istek gönderir. Dosyayı bulduktan sonra, sunucu dosyayı okur, gerektiği gibi işler ve tarayıcıya gönderir. Bu adımlara daha ayrıntılı olarak bakalım.
Dosyaları barındırma
İlk olarak, bir web sunucusunun web sitesinin dosyalarını, yani tüm HTML belgelerini, resimleri, CSS stil sayfalarını, JavaScript dosyalarını, yazı tiplerini ve video dahil olmak üzere ilgili tüm dosyaları depolaması gerekiyor.
Teknik olarak, tüm bu dosyaları kendi bilgisayarınızda barındırabilirsiniz, ancak dosyaları özel bir web sunucusunda depolamak çok daha uygundur, çünkü:
- Özel bir web sunucusu genellikle daha uzun süre kullanılabilir (çalışır durumda) durumda olur
- Kapalı kalma süresi ve sistem sorunları hariç, özel bir web sunucusu her zaman Internet’e bağlanır.
- Özel bir web sunucusu her zaman aynı IP adresine sahip olabilir. Bu, ayrılmış bir IP adresi olarak bilinir. (tüm ISS’ler ana hatlar için sabit bir IP adresi sağlamaz)
- Özel bir web sunucusu genellikle sunucu sağlayıcısı tarafından korunur.
Tüm bu nedenlerden dolayı, iyi bir barındırma sağlayıcısı bulmak web sitenizi oluşturmanın önemli bir parçasıdır. Şirketlerin sunduğu çeşitli hizmetleri inceleyin. İhtiyaçlarınıza ve bütçenize uygun birini seçin. (Hizmetler ücretsiz ila ayda binlerce dolar arasında değişebilir.)
Web barındırma hizmetine sahip olduktan sonra, dosyalarınızı web sunucunuza yüklemelisiniz.
HTTP üzerinden iletişim kurma
İkinci olarak, bir web sunucusu HTTP (Hypertext Transfer Protocol) için destek sağlar. Adından da anlaşılacağı gibi, HTTP iki bilgisayar arasında köprü metninin (bağlantılı web belgeleri) nasıl aktarılacağını belirtir.
Protokol, iki bilgisayar arasındaki iletişim için bir kurallar kümesidir. HTTP metinsel, durum bilgisi olmayan bir protokoldür.
Metinsel: Tüm komutlar düz metindir ve insan tarafından okunabilir.
Durumsuz: Sunucu veya istemci önceki durumları/iletişimleri hatırlamaz. Örneğin, yalnızca HTTP kullanırsak, bir sunucu yazdığınız parolayı hatırlayamaz veya tamamlanmamış bir işlemdeki ilerlemenizi hatırlayamaz. Bu gibi görevler için bir uygulama sunucusuna ihtiyacınız vardır.
HTTP, bir istemci ve sunucunun nasıl iletişim kurduğuna ilişkin açık kurallar sağlar. HTTP’nin kendisini daha sonra teknik bir makalede ele alacağız. Şimdilik, sadece şunları bilmemiz yeterli:
- Yalnızca istemciler yalnızca sunuculara HTTP isteklerinde bulunabilir. Sunucular yalnızca istemcinin HTTP isteğine yanıt verebilir.
- HTTP üzerinden dosya talep ederken, istemcilerin dosyanın URL’sini sağlaması gerekir.
- Web sunucusu her HTTP isteğini en azından bir hata iletisiyle yanıtlamalıdır.
- Bir istek aldıktan sonra, HTTP sunucusu önce istenen URL’nin varolan bir dosyayla eşleşip eşleşmediğini denetler.
- Eğer doğruysa, web sunucusu dosya içeriğini tarayıcıya geri gönderir. Değilse, bir uygulama sunucusu gerekli dosyayı oluşturur.
- Her iki işlem de mümkün değilse, web sunucusu tarayıcıya bir hata iletisi döndürür, en yaygın olarak
404 Bulunamadıhatası geri döner. 404 hatası o kadar yaygındır ki, bazı web tasarımcıları 404 hata sayfası tasarlamak için önemli zaman ve çaba ayırır.
Statik ve dinamik içerik karşılaştırması
Kabaca konuşursak, bir sunucu statik veya dinamik içeriğe hizmet edebilir. Statik terimin “olduğu gibi hizmet” anlamına geldiğini unutmayın. Statik web siteleri kurulumu en kolay olanlardır, bu nedenle ilk sitenizi statik bir site haline getirmenizi öneririz.
Dinamik terimi, sunucunun içeriği işlediği veya hatta bir veritabanından anında oluşturduğu anlamına gelir. Bu yaklaşım daha fazla esneklik sağlar, ancak teknik yığın daha karmaşıktır ve bir web sitesi oluşturmayı önemli ölçüde daha zor hale getirir.
O kadar çok uygulama sunucusu teknolojisi var ki, belirli bir tane önermek zor. Bazı uygulama sunucuları bloglar, vikiler veya e-ticaret gibi belirli web sitesi kategorilerine hitap eder; diğerleri daha geneldir. Dinamik bir web sitesi oluşturuyorsanız, ihtiyaçlarınıza uygun teknolojiyi seçmek için zaman ayırın. Web sunucusu programlamayı öğrenmek istemiyorsanız (ki bu başlı başına heyecan verici bir alandır!), kendi uygulama sunucunuzu oluşturmanız gerekmez.