Apache HTTP Sunucusu Sürüm 2.4
Bu belge, Apache’de süzgeç kullanımı hakkındadır.
İlgili Modüller | İlgili Yönergeler |
---|---|
Apache 2.0 ve sonrasında mevcut olan Süzgeç Zinciri, uygulamaların nereden geldiğine bakmaksızın gelen ve giden verileri oldukça esnek ve yapılandırılabilir tarzda işlemesini mümkün kılar. Böylece, gelen veriyi bir takım ön işlemlerden geçirebilir, giden veriyi de son bir defa bazı işlemlere sokabiliriz. Bu işlem temel olarak geleneksel istek işleme aşamalarından bağımsızdır.
Standard Apache dağıtımıyla gelen süzgeç uygulamalarından bazıları:
mod_include
, sunucu taraflı içerik yerleştirmeyi
gerçekler.mod_ssl
, SSL şifrelemesini gerçekler (https).mod_deflate
, veri sıkıştırma/açma işlemlerini
çalışma anında gerçekleştirir.mod_charset_lite
, karakter kümeleri arasında
dönüşümü gerçekleştirir.mod_ext_filter
, harici bir yazılımı bir süzgeç
olarak çalıştırır.Apache, bunlardan başka, bayt dizilerinin elde edilmesi ve içeriğin bölünmesi gibi işlemleri gerçekleştirmek için bir takım dahili süzgeçler de kullanabilir.
Üçüncü parti süzgeç modülleri tarafından gerçeklenmiş çok geniş bir uygulama alanı mevcuttur; modules.apache.org ve benzerlerinden temin edilebilecek bu tür modüllerden bazılarının uygulama alanları:
mod_filter
, Apache 2.1 ve sonrasında mevcut olup,
süzgeç zincirinin çalışma anında devingen olarak yapılandırılabilmesini
mümkün kılar. Böylece, örneğin, bir vekili, özgün sunucunun ne
göndereceğini bilmeden HTML’yi bir HTML süzgeciyle yazmaya ve JPEG
resimleri tamamen farklı bir süzgeçten geçirmeye ayarlayabilirsiniz. Bu,
asıl içeriğe bağlı olarak çalışma anında içeriği farklı içerik
sağlayıcılara dağıtan bir süzgeç düzeneği kullanılarak çalışır. Bir
süzgeç, doğrudan zincire yerleştirilip koşulsuz olarak
çalıştırılabileceği gibi bir içerik sağlayıcı gibi kullanılarak zincire
devingen olarak yerleştirilebilir. Örneğin:
Süzgeçler, istemciden kaynaklanan içeriği işlemekte kullanılabileceği
gibi mod_reflector
modülü kullanılarak sunucudan
kaynaklanan içeriği işlemekte de kullanılabilir.
mod_reflector
istemcilerden gelen POST isteklerini
kabul eder ve çıktı süzgeç yığıtı yoluyla istemciye aktararak, POST
isteği içinde alınan içerik istek gövdesini yanıt içinde geri
gönderir.
Bu teknik, bir çıktı süzgeciyle istek gövdesinde gerekli dönüşümün
sağlandığı durumda, bir uygulama sunucusu yığıtı içinde çalışan bir http
hizmetinin yerine de kullanılabilir. Örneğin,
mod_deflate
modülü genel bir sıkıştırma hizmeti
sağlamakta kullanılabilir veya bir resim dönüştürme süzgeci bir resim
dönüşüm hizmeti haline getirilebilir.
Süzgeçler iki şekilde kullanılır: Basit ve Devingen. Genelde ikisinden biri kullanılır; karışık kullanılırsa istenmeyen sonuçlara yol açabilir (ise de, basit girdi süzme ile çıktı süzme işlemi basit olsun olmasın karışık kullanılabilir).
Basit yol, girdi süzgeçlerini yapılandırmanın tek yoludur ve bir
durağan süzgeç zincirinin gerektiği yerlerde çıktı süzgeçleri için
yeterlidir. İlgili yönergeler:
SetInputFilter
,
SetOutputFilter
,
AddInputFilter
,
AddOutputFilter
,
RemoveInputFilter
ve
RemoveOutputFilter
.
Devingen yol, mod_filter
belgesinde açıklandığı gibi,
çıktı süzgeçlerinin hem durağan hem de esnek ve devingen olarak
yapılandırılabilmesini mümkün kılar. İlgili yönergeler:
FilterChain
,
FilterDeclare
ve
FilterProvider
.
AddOutputFilterByType
yönergesi
hala desteklenmekteyse de kullanımı artık
önerilmemektedir. Onun yerine devingen yapılandırma kullanınız.