Apache 2.0’da Yeni olan Özellikler

Bu belgede Apache HTTP Sunucusunun 1.3 ve 2.0 sürümleri arasındaki başlıca değişikliklerin bazılarına değinilmiştir.

1.3’ten 2.0’a Yükseltme
Çekirdekteki Gelişmeler
Unix Evreleri
POSIX evreleri desteği olan Unix sistemlerinde Apache, çok evreli kipte çok süreçlilik şeklinde melez bir yapıda çalışır. Bu bir çok bakımdan ölçeklenebilirliği arttırsa da bütün yapılandırmalarda sağlanamaz.
Yeni Paket Derleme Sistemi
Yeni kaynak paketi derleme sistemi autoconf ve libtool’a dayalı olarak sıfırdan, yeni baştan yazıldı. Böylece Apache’nin paket yapılandırma sistemi diğer paketlerinkiyle benzerlik kazanmış oldu.
Çok Sayıda Protokol Desteği
Apache artık çok sayıda protokol ile hizmet sunacak bir alt yapıya sahiptir. Örneğin, mod_echo modülü bu amaçla yazılmıştır.
Unix dışı platformalara daha iyi destek
Apache 2.0 sürümleri, BeOS, OS/2, Windows gibi Unix olmayan platformlarda daha hızlı ve daha kararlı çalışacak duruma getirilmiştir. Genelde iyi geliştirilmemiş olan dolayısıyla istenen başarımı sağlayamayan POSIX taklit katmanlarının kullanımından vazgeçilmiş, platforma özgü çok süreçlilik modülleri (MPM) ve Apache Taşınabilirlik Arayüzü (APR) sayesinde bu platformlar artık kendi doğal programlama arayüzleriyle gerçeklenir olmuştur.
Yeni Apache Programlama Arayüzü
Modüller için kullanılan programlama arayüzü 2.0 sürümüyle önemli değişikliklere uğramıştır. 1.3 sürümünde görülen modüllerle ilgili sıralama/öncelik sorunlarının çoğu giderilmiştir. 2.0 sürümü bu işlemleri daha bir özdevimli yapar olmuştur; daha fazla esneklik sağlamak için artık kancalı modül sıralaması kullanılabilmektedir. Ayrıca, arayüze, Apache sunucu çekirdeğini yamamaya gerek kalmadan modüllerle sunucu yeteneklerinin arttırılabilmesini sağlayan yeni çağrılar eklenmiştir.
IPv6 Desteği
IPv6’nın Apache Taşınabilirlik Arayüzü kütüphanesi tarafından desteklendiği sistemlerde Apache öntanımlı olarak IPv6 soketlerini dinler. Bundan başka, Listen, NameVirtualHost ve VirtualHost yönergelerinin IPv6 sayısal adres dizgelerini desteklemesi sağlanmıştır.
Örnek: Listen [2001:db8::1]:8080
Süzme
Apache modülleri, artık, sunucuya teslim edilen veya sunucudan teslim alınan içerik akımları üzerinde süzgeç gibi davranacak şekilde yazılabilmektedir. Bu sayede, örneğin CGI betiklerinin çıktılarının mod_include modülünün INCLUDES süzgeci kullanılarak SSI yönergeleri için çözümlenmesi mümkündür. CGI programlarının birer eylemci olarak davranması gibi, mod_ext_filter modülü de harici programların birer süzgeç olarak davranabilmesini mümkün kılar.
Çok Dilli Hata Yanıtları
Hata yanıtlarının tarayıcılara yönelik iletileri artık SSI belgeleri kullanılarak çeşitli dillerde sağlanabilmektedir. Bunlar ayrıca yönetici tarafından görünüş ve kullanışlılık tutarlılığı bakımından kişiselleştirilebilmektedir.
Basitleştirilmiş Yapılandırma
Bazı yönergelerle ilgili kafa karışıklıkları giderilmiştir. Bilhassa belli bir IP adresini dinlemek için kullanılan Port ve BindAddress yönergeleri ile ilgili karışıklığın önüne geçmek için sadece Listen yönergesi yeterli olmaktadır. ServerName yönergesi ise sadece yönlendirme ve sanal konak tanıma amacıyla sunucu ismi ve port belirtiminde kullanılmaktadır.
Doğal Windows NT Unicode Desteği
Apache 2.0, Windows NT üzerinde artık tüm dosya sistemi kodlamalarında utf-8 kullanmaktadır. Bu destek, Windows 2000 ve Windows XP dahil tüm Windows NT temelli sistemlere çok dillilik desteğini sağlamak üzere mevcut Unicode dosya sistemine doğrudan uyarlanır. Dosya sisteminde makinenin yerel karakter kodlamasını kullanan kullanan Windows 95, 98 ve ME için bu destek yoktur.
Düzenli İfade Kütüphanesi Güncellemesi
Apache 2.0’da Perl uyumlu düzenli ifade kütüphanesi bulunur. Tüm düzenli ifadelerde artık çok daha güçlü olan Perl 5 sözdizimi kullanılmaktadır.
Modüllerdeki Gelişmeler
mod_ssl
Apache 2.0’da yeni olan bu modül, OpenSSL tarafından sağlanan SSL/TLS şifreleme protokollerine bir arayüzdür.
mod_dav
Apache 2.0’da yeni olan bu modül, site içeriğinin destek ve bakımı için HTTP dağıtık yazım ve sürüm yönetimi (DAV - Distributed Authoring and Versioning) belirtimini gerçekler.
mod_deflate
Apache 2.0’da yeni olan bu modül sayesinde ağ band genişliğinden daha verimli yararlanabilmek için içeriğin sıkıştırılarak gönderilmesini talep eden tarayıcıların desteklenmesi mümkün olmuştur.
mod_auth_ldap
Apache 2.0.41’de yeni olan bu modül, HTTP temel kimlik doğrulamasında kullanılan delillerin saklanması için LDAP veritabanının kullanılabilmesini mümkün kılar. Kardeş modülü olan mod_ldap ise bağlantı havuzlaması ve sonuçların önbelleğe alınması ile ilgilenir.
mod_auth_digest
Paylaşımlı belleği kullanan süreçlere karşı oturum önbelleklemesi için ek destek içerir.
mod_charset_lite
Apache 2.0’da yeni olan bu deneysel modül, karakter kümesi dönüşümleri veya kaydı için destek sağlar.
mod_file_cache
Apache 2.0’da yeni olan bu modül, Apache 1.3’teki mod_mmap_static modülünün işlevselliğini içermenin yanında buna önbellekleme yetenekleri de ekler.
mod_headers
Bu modül Apache 2.0’da daha esnek hale getirilmiştir. Artık mod_proxy tarafından kullanılan istek başlıkları değiştirilebilmekte ve bunlar yanıt başlıklarına şartlı olarak atanabilmektedir.
mod_proxy
Bu modül HTTP/1.1 uyumlu vekaleti daha güvenilir kılmak ve yeni süzgeç alt yapısının getirilerinden de yararlanmak amacıyla yeni baştan yazılmıştır. Bunun yanında, Proxy bölümünün yeni hali vekil siteleri desteklemek bakımından daha okunabilir (ve kendi içinde daha hızlı) olması sağlanmıştır; <Directory "proxy:..."> yapılandırması artık desteklenmemektedir. Modül, proxy_connect, proxy_ftp ve proxy_http şeklinde her biri belli bir protokolü destekleyen ayrı modüllere bölünmüştür.
mod_negotiation
Yeni ForceLanguagePriority yönergesi sayesinde istemciye “Kabul edilebilir bir gösterim çeşidi yok” ya da “Çok sayıda seçim belirtilmiş” yanıtını döndürmek yerine tüm durumlara uyan bir sayfanın gönderilebilmesi sağlanmıştır. Bundan başka, uzlaşım ve MultiViews algoritmaları daha tutarlı sonuçlar elde etmek amacıyla elden geçirilmiş ve belge içeriği ile daha iyi eşleşen yeni bir tür eşlem yapısı sağlanmıştır.
mod_autoindex
Dizin içeriklerinin özdevimli listelenmesi artık HTML tabloları kullanılacak şekilde yapılandırılabilmektedir. Böylece sayfa daha iyi biçemlenebilmekte, içerik daha hassas sıralanabilmekte, sürüm numarasına göre sıralama yapılabilmekte ve dosya ismi kalıpları kullanılarak sadece istenen içerik listelenebilmektedir.
mod_include
Yeni yönergeler, değiştirilecek SSI elemanları için öntanımlı başlangıç ve bitiş etiketlerine izin vermekte, hataların ve zaman biçemleme yapılandırmalarının SSI belgesinde değil ana yapılandırma dosyasında bulunması mümkün olmaktadır. Düzenli ifadelerin gruplanmış sonuçları (Perl düzenli ifade sözdizimi kullanılmaktadır) mod_include modülünün $0 .. $9 değişkenleri sayesinde kullanılabilmektedir.
mod_auth_dbm
AuthDBMType yönergesi sayesinde artık çok sayıda DBM tarzı veritabanı türü desteklenmektedir.