İnternet, kullanıcıların bilgisayarlarından erişebilecekleri Web sayfalarını barındıran bir Web sunucuları topluluğu olarak var olur. Bu sunucu, kullanıcı isteklerini işlemek için sunucu yazılımını çalıştırmalıdır. Bu tür bir yazılım paketi olan Apache Web sunucusu, geliştiricilerin Web sayfalarını barındırmaları için ücretsiz bir sunucu çözümü sunar. Bu nedenle, web sitesi barındırma için popüler bir program haline geldi. Apache sunucusu, belirli iletişim protokolleri aracılığıyla sunucuya yapılan URL isteklerini çoklu iş parçacığı biçiminde işleyerek ve kendisini programlama ve veritabanı dilleriyle çalışacak şekilde genişleterek çalışır.
URL'ler ve HTTP Protokolü
Apache, bir web sunucusu yazılımıdır ve bu nedenle, öncelikle Evrensel Kaynak Bulucu adres istekleri aracılığıyla Köprü Metni Aktarım Protokolü isteklerini işler. URL'ler, kullanıcıların bir Web sayfasını bulmak için Web tarayıcılarına girdiği bir web sitesinin adıdır. Kullanıcı bir URL girdiğinde, tarayıcı Apache çalıştıran sunucu bilgisayara, genellikle 80 numaralı bağlantı noktasından bir HTTP isteği gönderir. HTTP protokolü, Web sayfaları için İnternet standart veri aktarım protokolüdür, dolayısıyla bir kullanıcı bir Apache'ye bir URL isteği yaptığında Apache sunucusu, HTTP isteğini işleyecek ve istenen Web sayfalarını döndürecektir.
Çoklu görev/Çoklu iş parçacığı
Bir Apache sunucusu, tek seferde çok sayıda HTTP isteğini işleyecektir. Bunu yapmak için, sunucunun birden fazla yürütme "iş parçacığı" üzerinde çalışması gerekir. Bir iş parçacığı, belirli bir görevi gerçekleştirmek için ana programdan ayrılan ve aynı anda çalışan bir programın parçasıdır. Apache sunucusu, istenen Web sayfasını getirmeyi ve döndürmeyi işleyecek her HTTP isteği için yeni bir iş parçacığı oluşturacaktır. Bu, Apache'nin aynı anda birden çok kullanıcıya Web sayfası sunmasına olanak tanır.
Program ve Dosya Sunumu
Web sayfalarının yanı sıra, Apache sunucusu, kullanıcıların bilgisayarlarına dosya indirmelerine izin verebilir; bu, Apache'nin HTTP aracılığıyla da işleyecektir. Bunlara ses dosyaları, film dosyaları veya Word belgeleri veya PDF gibi belirli belgeler dahildir. Kullanıcı PHP, Python veya Perl gibi bir betik dili için bir program dosyası isterse, Apache sunucusu programı çalıştırır ve programın çıktısını HTTP aracılığıyla kullanıcıya gönderir. Ancak, komut dosyası dilleri içeren belgelere yönelik istekleri işlemek için Apache sunucusunun o dil için uygun modülü kurmuş olması gerekir.
Apache Paketleri
Apache sunucusu, daha büyük web hizmet programlarının bir parçası olarak bağımsız bir paket olarak gelir ve performansını artırmak için modüllerle tamamlanır. Apache sunucusunun popüler bir uygulaması "LAMP" (Linux, Apache, MySQL ve PHP/Perl/Python) yığınıdır. Bu yapılandırma, bloglar gibi güncellenmiş web siteleri için veritabanı içeriği sunmak için Apache sunucusunu Web hizmeti yetenekleriyle MySQL veritabanı ve PHP gibi komut dosyası dilleriyle birlikte paketler.