Apache HTTP Sunucusu Sürüm 2.4

Apache > HTTP Sunucusu > Belgeleme > Sürüm 2.4

# Apache HTTP Sunucusu 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.

### Ayrıca bakınız:

- 1.3’ten 2.0’a Yükseltme

## Çekirdekteki Gelişmeler

Unix Evreleri
  POSIX evreleri desteği olan Unix sistemlerinde Apache httpd, ç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 httpd’nin paket yapılandırma sistemi diğer paketlerinkiyle benzerlik kazanmış oldu.
Çok Sayıda Protokol Desteği
  Apache HTTP Sunucusu 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 HTTP Sunucusu 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 httpd 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 HTTP Sunucususu ç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 httpd ö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 httpd 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 httpd 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 httpd 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 httpd 2.0’da yeni olan bu modül, OpenSSL tarafından sağlanan SSL/TLS şifreleme protokollerine bir arayüzdür.
`mod_dav`
  Apache httpd 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 httpd 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 httpd 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 httpd 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 httpd 2.0’da yeni olan bu modül, Apache HHP Sunucusu 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 httpd 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.