blob: 30c2c03ade2989df9fa7eb3dfd4ab8cc4802dcde [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
<!-- English Revision: 1221670 -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
========================================================== -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manualpage metafile="filter.xml.meta">
<title>Süzgeçler</title>
<summary>
<p>Bu belge, Apache’de süzgeç kullanımı hakkındadır.</p>
</summary>
<section id="intro"> <title>Apache 2’de Süzme İşlemi</title>
<related>
<modulelist>
<module>mod_filter</module>
<module>mod_deflate</module>
<module>mod_ext_filter</module>
<module>mod_include</module>
<module>mod_charset_lite</module>
<module>mod_reflector</module>
<module>mod_buffer</module>
<module>mod_data</module>
<module>mod_ratelimit</module>
<module>mod_reqtimeout</module>
<module>mod_request</module>
<module>mod_sed</module>
<module>mod_substitute</module>
<module>mod_xml2enc</module>
<module>mod_proxy_html</module>
</modulelist>
<directivelist>
<directive module="mod_filter">FilterChain</directive>
<directive module="mod_filter">FilterDeclare</directive>
<directive module="mod_filter">FilterProtocol</directive>
<directive module="mod_filter">FilterProvider</directive>
<directive module="mod_mime">AddInputFilter</directive>
<directive module="mod_mime">AddOutputFilter</directive>
<directive module="mod_mime">RemoveInputFilter</directive>
<directive module="mod_mime">RemoveOutputFilter</directive>
<directive module="mod_reflector">ReflectorHeader</directive>
<directive module="mod_ext_filter">ExtFilterDefine</directive>
<directive module="mod_ext_filter">ExtFilterOptions</directive>
<directive module="core">SetInputFilter</directive>
<directive module="core">SetOutputFilter</directive>
</directivelist>
</related>
<p>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.</p>
<p class="figure">
<img src="images/filter_arch.tr.png" width="569" height="392"
alt="Süzgeçler, İstek işleme eksenine dik bir veri eksenine peş peşe
yerleştirilebilir." />
</p>
<p>Standard Apache dağıtımıyla gelen süzgeç uygulamalarından bazıları:</p>
<ul>
<li><module>mod_include</module>, sunucu taraflı içerik yerleştirmeyi
gerçekler.</li>
<li><module>mod_ssl</module>, SSL şifrelemesini gerçekler (https).</li>
<li><module>mod_deflate</module>, veri sıkıştırma/açma işlemlerini
çalışma anında gerçekleştirir.</li>
<li><module>mod_charset_lite</module>, karakter kümeleri arasında
dönüşümü gerçekleştirir.</li>
<li><module>mod_ext_filter</module>, harici bir yazılımı bir süzgeç
olarak çalıştırır.</li>
</ul>
<p>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.</p>
<p>Üçüncü parti süzgeç modülleri tarafından gerçeklenmiş çok geniş bir
uygulama alanı mevcuttur; <a href="http://modules.apache.org/"
>modules.apache.org</a> ve benzerlerinden temin edilebilecek bu tür
modüllerden bazılarının uygulama alanları:</p>
<ul>
<li>HTML ve XML belgelerin işlenmesi ve yazılması</li>
<li>XSLT dönüşümleri ve XInclude’lar</li>
<li>XML İsim-alanı desteği</li>
<li>HTML Formlarının çözümlenmesi ve sunucuya dosya yükleme</li>
<li>Resim işleme</li>
<li>PHP betikleri gibi zararlı olabilecek uygulamalardan korunma</li>
<li>Metin düzenleme ve arama işlemleri</li>
</ul>
</section>
<section id="smart"><title>Akıllı Süzme</title>
<p class="figure">
<img src="images/mod_filter_new.tr.png" width="423" height="331"
alt="Farklı süzgeç üreticilerinin uygulamaları istek işlemenin durumuna
bağlı olarak akıllıca uygulanabilir."/>
</p>
<p><module>mod_filter</module>, 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:</p>
<ul>
<li>Bir HTML işleme süzgeci sadece içerik text/html veya
application/xhtml+xml olduğu takdirde çalışır.</li>
<li>Bir sıkıştırma süzgeci sadece girdi sıkıştırılabilir nitelikteyse ve
sıkıştırılmamışsa çalışır.</li>
<li>Bir karakter kümesi dönüşüm süzgeci, bir metin belgesi istenen
karakter kümesine sahip değilse zincire yerleştirilir.</li>
</ul>
</section>
<section id="service">
<title>Süzgeçleri bir HTTP Hizmeti gibi göstermek </title>
<p>Süzgeçler, istemciden kaynaklanan içeriği işlemekte kullanılabileceği
gibi <module>mod_reflector</module> modülü kullanılarak sunucudan
kaynaklanan içeriği işlemekte de kullanılabilir.</p>
<p><module>mod_reflector</module> 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.</p>
<p>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,
<module>mod_deflate</module> 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.</p>
</section>
<section id="using"><title>Süzgeçlerin Kullanımı</title>
<p>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).</p>
<p>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:
<directive module="core">SetInputFilter</directive>,
<directive module="core">SetOutputFilter</directive>,
<directive module="mod_mime">AddInputFilter</directive>,
<directive module="mod_mime">AddOutputFilter</directive>,
<directive module="mod_mime">RemoveInputFilter</directive> ve
<directive module="mod_mime">RemoveOutputFilter</directive>.</p>
<p>Devingen yol, <module>mod_filter</module> 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:
<directive module="mod_filter">FilterChain</directive>,
<directive module="mod_filter">FilterDeclare</directive> ve
<directive module="mod_filter">FilterProvider</directive>.</p>
<p><directive module="core">AddOutputFilterByType</directive> yönergesi
hala desteklenmekteyse de kullanımı artık
önerilmemektedir. Onun yerine devingen yapılandırma kullanınız.</p>
</section>
</manualpage>