<?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: 1562488 -->
<!-- =====================================================
 Translated by: Nilgün Belma Bugüner <nilgun belgeler.gen.tr>
   Reviewed by: Orhan Berent <berent belgeler.gen.tr>
========================================================== -->

<!--
 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>
