Apache Yazılım Vakfı himayesindeki bir geliştirici topluluğu tarafından geliştirilen ve güncellenen açık kaynak kodlu bir web sunucu programı olan Apache; ilk olarak 1995 yılında NCSA kodu üzerindeki çalışmaların durma noktasına gelmesinden sonra ortaya çıktığı günlerden beri, World Wide Web’in başlangıçtaki büyümesi üzerinde önemli bir rol oynamış ve günümüzde W3Techs’in yayınlamış olduğu bir rapora göre web sunucusunu bildiğimiz tüm web sitelerinin %28,6'sı tarafından kullanılır hale gelmiştir.
Günümüzde web hosting hizmeti sağlayan çoğu şirket tarafından sunulduğu düşünülen ve kullanıcılarına bir sunucu çalıştırmak için piyasadaki muadilleri arasında en esnek ortamı sunması sayesinde pazar hakimiyeti kazanan Apache sunucu programı ile alakalı olarak, pek çok insanın kafasında birtakım soru işaretleri vardır.
Apache Nasıl Çalışır?
Günümüzün en popüler web sunucu programlarından birisi olan Apache ile ilgili olarak cevabı en çok merak edilmekte olan sorulardan birisi de, Apache nasıl çalışır sorusunun cevabıdır. Fakat; bu soruya cevap vermeden önce , ilk önce bir web sunucusunun ne olduğundan ve Apache’nin bir program olarak görevinden kısaca bahsetmemiz gerekmektedir.
Mümkün olduğunca basit bir şekilde bahsetmemiz gerekirse; web sunucusunun, bir web sitesinin kullanmakta olduğu tüm verileri barındıran fiziksel bir sistem olduğunu söyleyebiliriz. Ancak, bir web sitesinin çalışması için fiziksel sunucuya ek olarak Nginx ya da yazımızın odak noktası olan Apache gibi bir web sunucusu yazılımına da ihtiyaç vardır.
Apache’nin görevi hakkında kısaca bahsedecek olursak; bu web sunucu yazılımının görevinin, ziyaretçilerden gelmekte olan HTTP isteklerini kabul etmekten ve sunucudan istenmiş olan bilgileri web sayfaları şeklinde bu ziyaretçilere geri göndermekten ibaret olduğunu söyleyebiliriz. Yani, ziyaretçilerin bir web sitesinde yer alan içeriği görüntülemesini sağlamaktadır.
Peki Apache nasıl çalışıyor? Apache’nin çalışması için gerekli olan ilk adım, sunucu ile web tarayıcıları arasında bir bağlantının kurulmasını sağlamaktır. Kullanıcılar tarafından web tarayıcıları vasıtasıyla sunucuya istek gönderilmesinden sonra Apache; bu isteği işler ve sunucudan aldığı gerekli verileri, kullanıcılar tarafından kullanılmakta olan web tarayıcılarına göndermektedir.
Bu işlemin sonucu, web tarayıcısında açılmış olan bir sitedeki içeriğin, sitenin kullanıcıları tarafından görülebilmesidir.
Apache’nin Desteklediği Kod Dilleri Nelerdir?
Bu soruya kısaca cevap vermemiz gerekirse; Apache’nin C dili ile yazılmış olmakla beraber, HTML, PHP, Python ve Java gibi bir çok kodlama dilini desteklediğini söyleyebiliriz.
Buna ek olarak, daha fazla kol dili seçeneğine erişmek için yükleyebileceğiniz birden çok üçüncü parti modül olduğunu da hatırlatmamızda fayda vardır.
Apache Avantajları
Günümüzde oldukça popüler bir web sunucu yazılımı olan Apache ile ilgili olarak cevabı merak edilen bir konu da, bu yazılımın sağladığı avantajlardır. Yazılımın kullanımının sağladığı avantajların başında, kullanıcıları tarafından çeşitli kısımları üzerinde özelleştirme yapılmasına imkan tanıyan esnek yapısıdır.
Buna ek olarak; genellikle web tasarımı tecrübesi olmayan kişiler tarafından bile kullanılmasına imkan verecek kadar kolay bir kuruluma sahip olan Apache, kurulumunun tamamlanmasından sonra çalışmaya hazırdır.
Son olarak; Apache’nin bir avantajı da, en yaygın biçimde kullanılan web sunucusu yazılımlarından birisi olmasından ötürü aynı zamanda en fazla desteğe sahiptir. Apache’ye yeni başlayanlar, bu avantaj sayesinde, aradıkları soruların cevaplarını oldukça kolay bir şekilde bulabilirler.
Apache Dezavantajları
Fakat, Apache’nin sağladığı avantajlara ek olarak, yanında getirdiği bir takım dezavantajlar da mevcuttur. Bunlardan en önemlisi; yazılımın en büyük avantajlarından birisi olan ve çeşitli kısımları üzerinde özelleştirme yapılmasına imkan tanıyan esnek yapısının, aynı zamanda da bilgisayar korsanları tarafından kullanılabilecek bir güvenlik açığına neden olabilecek olmasıdır.
Daha deneyimli ve dikkatli web geliştiricilerinin kaçınabileceği bu dezavantaj haricinde bir de, Apache Modüllerini tanımanın zor olmasıdır. Web sunucularına belirli özellikler kazandıran bu modüllerin çoğu kullanışlı olsa, bazıları da gereksiz olabilir. Bu tür durumlarda; Apache hakkında yeterli bilgi sahibi olmadan, söz konusu modellerden hangileri gerekli veya gereksiz olduğunu öğrenmek zordur.
Son olarak; Apache’nin bir dezavantajı da, yazılımın sıklıkla (genellikle her ay) güncelleniyor olmasıdır. Genellikle yaptıklarınızı etkilemeyecek olan bu durum; dikkatli olunmaması durumunda, web sitelerinin, bilgisayar korsanlarına karşı savunmasız kalmasına neden olabilir.