1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
4 <!-- English Revision: 1221670 -->
5 <!-- =====================================================
6 Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
7 Reviewed by: Orhan Berent <berent belgeler.org>
8 ========================================================== -->
11 Licensed to the Apache Software Foundation (ASF) under one or more
12 contributor license agreements. See the NOTICE file distributed with
13 this work for additional information regarding copyright ownership.
14 The ASF licenses this file to You under the Apache License, Version 2.0
15 (the "License"); you may not use this file except in compliance with
16 the License. You may obtain a copy of the License at
18 http://www.apache.org/licenses/LICENSE-2.0
20 Unless required by applicable law or agreed to in writing, software
21 distributed under the License is distributed on an "AS IS" BASIS,
22 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 See the License for the specific language governing permissions and
24 limitations under the License.
27 <manualpage metafile="filter.xml.meta">
29 <title>Süzgeçler</title>
32 <p>Bu belge, Apache’de süzgeç kullanımı hakkındadır.</p>
35 <section id="intro"> <title>Apache 2’de Süzme İşlemi</title>
38 <module>mod_filter</module>
39 <module>mod_deflate</module>
40 <module>mod_ext_filter</module>
41 <module>mod_include</module>
42 <module>mod_charset_lite</module>
43 <module>mod_reflector</module>
44 <module>mod_buffer</module>
45 <module>mod_data</module>
46 <module>mod_ratelimit</module>
47 <module>mod_reqtimeout</module>
48 <module>mod_request</module>
49 <module>mod_sed</module>
50 <module>mod_substitute</module>
51 <module>mod_xml2enc</module>
52 <module>mod_proxy_html</module>
55 <directive module="mod_filter">FilterChain</directive>
56 <directive module="mod_filter">FilterDeclare</directive>
57 <directive module="mod_filter">FilterProtocol</directive>
58 <directive module="mod_filter">FilterProvider</directive>
59 <directive module="mod_mime">AddInputFilter</directive>
60 <directive module="mod_mime">AddOutputFilter</directive>
61 <directive module="mod_mime">RemoveInputFilter</directive>
62 <directive module="mod_mime">RemoveOutputFilter</directive>
63 <directive module="mod_reflector">ReflectorHeader</directive>
64 <directive module="mod_ext_filter">ExtFilterDefine</directive>
65 <directive module="mod_ext_filter">ExtFilterOptions</directive>
66 <directive module="core">SetInputFilter</directive>
67 <directive module="core">SetOutputFilter</directive>
71 <p>Apache 2.0 ve sonrasında mevcut olan Süzgeç Zinciri, uygulamaların
72 nereden geldiğine bakmaksızın gelen ve giden verileri oldukça esnek ve
73 yapılandırılabilir tarzda işlemesini mümkün kılar. Böylece, gelen veriyi
74 bir takım ön işlemlerden geçirebilir, giden veriyi de son bir defa bazı
75 işlemlere sokabiliriz. Bu işlem temel olarak geleneksel istek işleme
76 aşamalarından bağımsızdır.</p>
79 <img src="images/filter_arch.tr.png" width="569" height="392"
80 alt="Süzgeçler, İstek işleme eksenine dik bir veri eksenine peş peşe
81 yerleştirilebilir." />
84 <p>Standard Apache dağıtımıyla gelen süzgeç uygulamalarından bazıları:</p>
87 <li><module>mod_include</module>, sunucu taraflı içerik yerleştirmeyi
89 <li><module>mod_ssl</module>, SSL şifrelemesini gerçekler (https).</li>
90 <li><module>mod_deflate</module>, veri sıkıştırma/açma işlemlerini
91 çalışma anında gerçekleştirir.</li>
92 <li><module>mod_charset_lite</module>, karakter kümeleri arasında
93 dönüşümü gerçekleştirir.</li>
94 <li><module>mod_ext_filter</module>, harici bir yazılımı bir süzgeç
95 olarak çalıştırır.</li>
98 <p>Apache, bunlardan başka, bayt dizilerinin elde edilmesi ve içeriğin
99 bölünmesi gibi işlemleri gerçekleştirmek için bir takım dahili süzgeçler
102 <p>Üçüncü parti süzgeç modülleri tarafından gerçeklenmiş çok geniş bir
103 uygulama alanı mevcuttur; <a href="http://modules.apache.org/"
104 >modules.apache.org</a> ve benzerlerinden temin edilebilecek bu tür
105 modüllerden bazılarının uygulama alanları:</p>
108 <li>HTML ve XML belgelerin işlenmesi ve yazılması</li>
109 <li>XSLT dönüşümleri ve XInclude’lar</li>
110 <li>XML İsim-alanı desteği</li>
111 <li>HTML Formlarının çözümlenmesi ve sunucuya dosya yükleme</li>
112 <li>Resim işleme</li>
113 <li>PHP betikleri gibi zararlı olabilecek uygulamalardan korunma</li>
114 <li>Metin düzenleme ve arama işlemleri</li>
118 <section id="smart"><title>Akıllı Süzme</title>
120 <img src="images/mod_filter_new.tr.png" width="423" height="331"
121 alt="Farklı süzgeç üreticilerinin uygulamaları istek işlemenin durumuna
122 bağlı olarak akıllıca uygulanabilir."/>
125 <p><module>mod_filter</module>, Apache 2.1 ve sonrasında mevcut olup,
126 süzgeç zincirinin çalışma anında devingen olarak yapılandırılabilmesini
127 mümkün kılar. Böylece, örneğin, bir vekili, özgün sunucunun ne
128 göndereceğini bilmeden HTML’yi bir HTML süzgeciyle yazmaya ve JPEG
129 resimleri tamamen farklı bir süzgeçten geçirmeye ayarlayabilirsiniz. Bu,
130 asıl içeriğe bağlı olarak çalışma anında içeriği farklı içerik
131 sağlayıcılara dağıtan bir süzgeç düzeneği kullanılarak çalışır. Bir
132 süzgeç, doğrudan zincire yerleştirilip koşulsuz olarak
133 çalıştırılabileceği gibi bir içerik sağlayıcı gibi kullanılarak zincire
134 devingen olarak yerleştirilebilir. Örneğin:</p>
137 <li>Bir HTML işleme süzgeci sadece içerik text/html veya
138 application/xhtml+xml olduğu takdirde çalışır.</li>
139 <li>Bir sıkıştırma süzgeci sadece girdi sıkıştırılabilir nitelikteyse ve
140 sıkıştırılmamışsa çalışır.</li>
141 <li>Bir karakter kümesi dönüşüm süzgeci, bir metin belgesi istenen
142 karakter kümesine sahip değilse zincire yerleştirilir.</li>
146 <section id="service">
147 <title>Süzgeçleri bir HTTP Hizmeti gibi göstermek </title>
148 <p>Süzgeçler, istemciden kaynaklanan içeriği işlemekte kullanılabileceği
149 gibi <module>mod_reflector</module> modülü kullanılarak sunucudan
150 kaynaklanan içeriği işlemekte de kullanılabilir.</p>
152 <p><module>mod_reflector</module> istemcilerden gelen POST isteklerini
153 kabul eder ve çıktı süzgeç yığıtı yoluyla istemciye aktararak, POST
154 isteği içinde alınan içerik istek gövdesini yanıt içinde geri
157 <p>Bu teknik, bir çıktı süzgeciyle istek gövdesinde gerekli dönüşümün
158 sağlandığı durumda, bir uygulama sunucusu yığıtı içinde çalışan bir http
159 hizmetinin yerine de kullanılabilir. Örneğin,
160 <module>mod_deflate</module> modülü genel bir sıkıştırma hizmeti
161 sağlamakta kullanılabilir veya bir resim dönüştürme süzgeci bir resim
162 dönüşüm hizmeti haline getirilebilir.</p>
166 <section id="using"><title>Süzgeçlerin Kullanımı</title>
167 <p>Süzgeçler iki şekilde kullanılır: Basit ve Devingen.
168 Genelde ikisinden biri kullanılır; karışık kullanılırsa istenmeyen
169 sonuçlara yol açabilir (ise de, basit girdi süzme ile çıktı süzme işlemi
170 basit olsun olmasın karışık kullanılabilir).</p>
172 <p>Basit yol, girdi süzgeçlerini yapılandırmanın tek yoludur ve bir
173 durağan süzgeç zincirinin gerektiği yerlerde çıktı süzgeçleri için
174 yeterlidir. İlgili yönergeler:
175 <directive module="core">SetInputFilter</directive>,
176 <directive module="core">SetOutputFilter</directive>,
177 <directive module="mod_mime">AddInputFilter</directive>,
178 <directive module="mod_mime">AddOutputFilter</directive>,
179 <directive module="mod_mime">RemoveInputFilter</directive> ve
180 <directive module="mod_mime">RemoveOutputFilter</directive>.</p>
182 <p>Devingen yol, <module>mod_filter</module> belgesinde açıklandığı gibi,
183 çıktı süzgeçlerinin hem durağan hem de esnek ve devingen olarak
184 yapılandırılabilmesini mümkün kılar. İlgili yönergeler:
185 <directive module="mod_filter">FilterChain</directive>,
186 <directive module="mod_filter">FilterDeclare</directive> ve
187 <directive module="mod_filter">FilterProvider</directive>.</p>
189 <p><directive module="core">AddOutputFilterByType</directive> yönergesi
190 hala desteklenmekteyse de kullanımı artık
191 önerilmemektedir. Onun yerine devingen yapılandırma kullanınız.</p>