]> granicus.if.org Git - apache/blob - docs/manual/caching.html.tr.utf8
update xforms
[apache] / docs / manual / caching.html.tr.utf8
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head><!--
4         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5               This file is generated from xml source: DO NOT EDIT
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7       -->
8 <title>Önbellek Kullanım Kılavuzu - Apache HTTP Sunucusu</title>
9 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
13 <body id="manual-page"><div id="page-header">
14 <p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="./faq/">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p>
15 <p class="apache">Apache HTTP Sunucusu Sürüm 2.3</p>
16 <img alt="" src="./images/feather.gif" /></div>
17 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
18 <div id="path">
19 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="http://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="./">Sürüm 2.3</a></div><div id="page-content"><div id="preamble"><h1>Önbellek Kullanım Kılavuzu</h1>
20 <div class="toplang">
21 <p><span>Mevcut Diller: </span><a href="./en/caching.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
22 <a href="./fr/caching.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
23 <a href="./tr/caching.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
24 </div>
25 <div class="outofdate">Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.</div>
26
27     <p>Bu belge <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>,
28       <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code>, <code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code>,
29       <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> modülleri ve <a href="programs/htcacheclean.html">htcacheclean</a> için bir başvuru
30       kılavuzu niteliğindedir. HTTP sunucusu ve vekil olarak çalışmada
31       işlemleri hızlandırmak için bilinen sorunlar ve yanlış
32       yapılandırmalardan kaçınarak Apache’nin önbellekleme özelliklerinin
33       nasıl kullanılacağı açıklanmıştır.</p>
34   </div>
35 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#introduction">Giriş</a></li>
36 <li><img alt="" src="./images/down.gif" /> <a href="#overview">Önbelleklemeye Bir Bakış</a></li>
37 <li><img alt="" src="./images/down.gif" /> <a href="#security">Güvenlik Kaygıları</a></li>
38 <li><img alt="" src="./images/down.gif" /> <a href="#filehandle">Dosya Tanıtıcı Önbelleklemesi</a></li>
39 <li><img alt="" src="./images/down.gif" /> <a href="#inmemory">Sistem Belleğinde Önbellekleme</a></li>
40 <li><img alt="" src="./images/down.gif" /> <a href="#disk">Disk Üzerinde Önbellekleme</a></li>
41 </ul></div>
42 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
43 <div class="section">
44 <h2><a name="introduction" id="introduction">Giriş</a></h2>
45     
46
47     <p>Apache HTTP sunucusunun 2.2 sürümünden itibaren
48       <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> ve <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> modülleri
49       deneysel olmaktan çıkarılmış ve üretim amaçlı kullanılabileceğine karar
50       verilmiştir. Bu önbellekleme mimarileri gerek HTTP sunucusu gerekse
51       vekili olarak çalışmada HTTP işlemlerini hızlandırmak anlamında sunucuya
52       güç katarlar.</p>
53
54     <p><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>, ortam sağlayıcı modülleri olan
55       <code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code> ve <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code> ile
56       birlikte HTTP önbelleklemesini akıllıca yerine getirir. İçeriğin kendisi
57       önbellekte saklanırken <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> içeriğin
58       önbelleklenebilmesini denetim altında tutan HTTP başlıkları ve
59       seçenekleri ile ilgilenir. Yerel ve vekalet edilen içeriğin her ikisinin
60       de aynı anda işlem görmesi sağlanabilir. <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>,
61       vekalet edilen içeriğe, devingen yerel içeriğe veya zamanla değişen
62       yerel dosyalara erişimi hızlandırma ihtiyacına yönelik olarak hem basit
63       hem de karmaşık önbellekleme yapılandırmalarını mümkün kılar.</p>
64
65     <p><code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> ise biraz daha temel ancak bazen daha
66       kullanışlı olabilen bir önbellekleme şekli ile ilgilenir. URL’lerin
67       önbelleklenebilmesini mümkün kılmanın karmaşıklığıyla boğuşmak yerine
68       <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code>, dosyaların Apache’nin son başlatıldığı
69       zamanki durumlarını saklamak için dosyaların belleğe eşlenmek üzere ele
70       alınmasını sağlar. Böylelikle, <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code>, çok sık
71       değişmeyen durağan yerel dosyalara erişim zamanını azaltmaya yardım
72       eder.</p>
73
74     <p><code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code> ve <code class="directive"><a href="./mod/mod_file_cache.html#mmapstatic">MMapStatic</a></code> yönergeleri ile ilgili
75       bölümlerde anlatılanları saymazsak <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code>, bu
76       belgenin asıl konusu olan <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> önbellekleme
77       mimarisine göre daha basit bir önbellekleme gerçeklenimidir.</p>
78
79     <p>Bu belgeden azami yararı sağlayabilmek için temel bir HTTP bilginizin
80       olması ve <a href="urlmapping.html">URL’lerin Dosya Sistemine
81       Eşlenmesi</a> ile <a href="content-negotiation.html">İçerik Uzlaşımı</a>
82       belgelerini okumuş olmanız gerekir.</p>
83
84   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
85 <div class="section">
86 <h2><a name="overview" id="overview">Önbelleklemeye Bir Bakış</a></h2>
87
88     
89
90     <table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yönergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code></li><li><code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code></li><li><code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code></li><li><code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code></li><li><code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code></li><li><code class="directive"><a href="./mod/mod_file_cache.html#mmapstatic">MMapStatic</a></code></li><li><code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code></li><li><code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code></li><li><code class="directive"><a href="./mod/core.html#usecanonicalname">UseCanonicalName</a></code></li><li><code class="directive"><a href="./mod/mod_negotiation.html#cachenegotiateddocs">CacheNegotiatedDocs</a></code></li></ul></td></tr></table>
91
92     <p>Bir istek sonuçlanıncaya kadar <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> modülünde iki
93       aşamadan geçer. İlkinde <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> bir URL eşleme modülü
94       olarak çalışır ve URL önbellekteyse ve zaman aşımına uğramamışsa isteğin
95       doğrudan <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> tarafından sunulmasını sağlar.</p>
96
97     <p>Yani isteğin sunumu sırasında, isteğin örneğin,
98       <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code> veya <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> tarafından
99       ele alınması gerekse bile bu yapılmaz. Önbelleklenen içerik ilk alındığı
100       haliyle sunulur.</p>
101
102     <p>Eğer URL önbellekte yoksa, <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> isteği bir  <a href="filter.html">süzgece</a> tabi tutar. Apache içeriğin varlığını
103       saptamışsa içeriğin süzgeç tarafından sunulmasını sağladıktan sonra,
104       süzgeç içeriğin önbelleklenebileceğini saptamışsa gelecekte sunmak üzere
105       içeriği önbelleğe kaydeder.</p>
106
107     <p>Eğer URL önbellekte bulunmuş fakat içeriğin zaman aşımına uğradığı
108       anlaşılmışsa süzgeç yine de eklenir fakat bu kez
109       <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> önbellekteki sürümün hala geçerli olup
110       olmadığını saptamak için kaynağın bulunduğu sunucuya bir koşullu istek
111       gönderir. Önbellekteki sürüm hala geçerliyse temel verileri güncellenir
112       ve istek önbellekten sunulur. Önbellekteki sürüm artık geçerli değilse,
113       önbellekteki sürüm silinir ve süzgeç güncel içeriği önbelleğe kaydeder
114       ve isteği oradan sunar.</p>
115
116     <h3>Önbelleğin Hızlandırılması</h3>
117       
118
119       <p>Yerel içerik önbelleklendiği takdirde <code class="directive"><a href="./mod/core.html#usecanonicalname">UseCanonicalName</a></code> yönergesine <code>On</code>
120         değeri atanmışsa önbellekten sunulan sayfa sayısında büyük bir artış
121         olduduğu görülür. Bunun sebebi içeriği sunan sanal konağın isminin
122         önbellek anahtarının bir parçası olarak kullanılmasıdır. Yönergeye
123         <code>On</code> değerini atamak suretiyle çok isimli ve rumuzlu sanal
124         konaklar için farklı önbellek girdileri oluşturulmaz, bunun yerine her
125         meşru sanal konak için ayrı bir önbellek tutulur.</p>
126
127       <p>Önbellekleme, URL’nin dosya ismine dönüştürülmesi aşamasında
128         gerçekleştiğinden önbelleklenen belgeler sadece URL isteklerine bir
129         yanıt olarak sunulurlar. <a href="howto/ssi.html">Sunucu Taraflı
130         İçerikleri</a> kullanmazsanız genellikle bunun fazla bir önemi
131         olmaz.</p>
132
133       <div class="example"><p><code>
134         &lt;!-- Bu içerik önbelleklenebilir. --&gt;<br />
135         &lt;!--#include virtual="/dipnot.html" --&gt;<br />
136         <br />
137         &lt;!-- Bu içerik önbelleklenemez. --&gt;<br />
138         &lt;!--#include file="/bir/yol/dipnot.html" --&gt;
139       </code></p></div>
140
141       <p>Sunucu Taraflı İçerikleri kullanıyorsanız ve önbelleklemenin
142         sağladığı hız artışından da yaralanmak istiyorsanız içerik
143         yerleştirmek için <code>virtual</code> içerik türünü kullanınız.</p>
144     
145
146     <h3>Zaman Aşımı Süreleri</h3>
147       
148
149       <p>Önbellekli öğeler için öntanımlı zaman aşımı süresi bir saat olmakla
150         birlikte <code class="directive"><a href="./mod/mod_cache.html#cachedefaultexpire">CacheDefaultExpire</a></code>
151         yönergesi kullanılarak bu değer kolaylıkla geçersiz kılınabilir. Bu
152         öntanımlı değer sadece içeriğin özgün kaynağı bir zaman aşımı süresi
153         veya son değişiklik tarihi belirtmediği takdirde kullanılır.</p>
154
155       <p>Bir yanıt <code>Expires</code> başlığını değil de
156         <code>Last-Modified</code> başlığını içeriyorsa
157         <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> zaman aşımı süresini <code class="directive"><a href="./mod/mod_cache.html#cachelastmodifiedfactor">CacheLastModifiedFactor</a></code> yönergesinin
158         nasıl kullanıldığına bakarak saptar.</p>
159
160       <p>Yerel içerik için, zaman aşımı süresini hassas olarak ayarlamak
161         gerekirse <code class="module"><a href="./mod/mod_expires.html">mod_expires</a></code> kullanılabilir.</p>
162
163       <p>Zaman aşımı süresinin üst sınırı <code class="directive"><a href="./mod/mod_cache.html#cachemaxexpire">CacheMaxExpire</a></code> yönergesi ile
164         belirlenebilir.</p>
165
166     
167
168     <h3>Şartlı İstekler için Özlü Kılavuz</h3>
169       
170
171       <p>Önbellekteki içerik zaman aşımına uğrayıp, içerik sağlayıcıya veya
172         arka sunucuya özgün isteği aktarmak yerine ayrı bir istek yapılması
173         gereği Apache’nin şartlı bir istek yapması sonucunu doğurur.</p>
174
175       <p>Bir istemcinin veya önbelleğin aynı içeriğin farklı sürümleri
176         arasında ayrım yapabilmesi için HTTP protokolü bazı başlık alanları
177         önerir. Örneğin, "Etag:" başlığıyla sunulan bir özkaynak için
178         "If-None-Match:" başlığıyla bir şartlı istek yapmak mümkün olduğu gibi
179         özkaynak "Last-Modified:" başlığıyla sunuluyorsa şartlı istek
180         "If-Modified-Since:" başlığıyla yapılabilir, vesaire.</p>
181
182       <p>Böyle bir şartlı istek yapıldığında yanıt koşulun içerikle eşleşip
183         eşleşmediğine bağlı olarak farklı olur. Eğer istek bir
184         "If-Modified-Since:" başlığıyla yapılmışsa ve içerik istekte
185         belirtilen zamandan önce değiştirilmemişse kısa ve öz olarak bir "304
186         Not Modified" (Bir değişiklik yok) iletisiyle yanıt verilir.</p>
187
188       <p>Aksi takdirde  bir şartlı istek yapılmamış gibi içeriğin kendisi
189         sunulur.</p>
190
191       <p>Önbellekleme ile ilgili şartlı istekler çifte yarar sağlar. Birinci
192         olarak, böyle bir istek arkadaki sunucuya yapılıyorsa ve iki içerik de
193         aynıysa bunu saptamak kolay olur ve özkaynağın tamamını aktarma
194         külfetinden kurtulunur.</p>
195
196       <p>İkinci olarak, şartlı istekler arka sunucuda normalden daha az
197         faaliyete sebep olur. Durağan dosyalar için bu genellikle
198         <code>stat()</code> veya  benzeri bir sistem çağrısıyla dosya
199         boyutları ve değişiklik zamanına bakmak şeklinde gerçekleşir.
200         Böylelikle Apache yerel içeriği önbellekliyor olsa bile ve hatta
201         içerik zaman aşımına da uğrasa önbellekteki dosyada bir değişiklik
202         olmadığı takdirde içeriği önbellekten sunmak daha hızlı olacaktır.
203         Çünkü dosyayı önbellekten okumak, arka sunucudan okumaktan daha
204         hızlıdır (bu, bellekten okumayla diskten okumayı karşılaştırmak
205         gibidir).</p>
206     
207
208     <h3>Neler Önbelleklenebilir?</h3>
209       
210
211       <p>Evvelce bahsedildiği gibi Apache’de iki tür önbellekleme yapılır ve
212         bunlar farklı yöntemlerle çalışır. <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code>
213         önbelleklemesinde dosyalar Apache başlatıldığı zamanki içerikle
214         saklanır. Bu modül tarafından önbelleğe alınmış bir dosya için istek
215         geldiğinde isteğin yolu kesilip önbellekteki dosya sunulur.</p>
216
217       <p><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> önbelleklemesinde işler biraz daha
218         karışıktır. Bir isteğe hizmet sunulurken istenen içerik evvelce
219         önbelleklenmemişse önbellekleme modülü önce içeriğin
220         önbelleklenebilirliğine bakar. Bir yanıtın önbelleklenebilirliğini
221         belirleyen koşullar şunlardır:</p>
222
223       <ol>
224         <li>Önbellekleme bu URL ile etkin kılınabilmelidir. <code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code> ve <code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code> yönergelerine bakınız.</li>
225
226         <li>Yanıtın HTTP durum kodu 200, 203, 300, 301 veya 410 olmalıdır.</li>
227
228         <li>İstek bir HTTP GET isteği olmalıdır.</li>
229
230         <li>İstek bir "Authorization:" başlığı içeriyorsa yanıt önbelleğe
231           alınmayacaktır.</li>
232
233         <li>Eğer yanıt bir "Authorization:" başlığı içeriyorsa ayrıca
234           "Cache-Control:" başlığında da "s-maxage", "must-revalidate" veya
235           "public" değerlerinden birini içermelidir.</li>
236
237         <li>Eğer URL (GET yöntemi kullanan bir HTML formunun yaptığı gibi) bir
238           sorgu dizgesi içeriyorsa  yanıt, RFC2616’nın 13.9. bölümünde
239           açıklandığı gibi bir "Expires:" başlığı içermedikçe yanıt içeriği
240           önbelleğe alınmayacaktır.</li>
241
242         <li><code class="directive"><a href="./mod/mod_cache.html#cacheignorenolastmod">CacheIgnoreNoLastMod</a></code>
243           yönergesinin kullanımını gerektiren bir durum olmadıkça 200 durum
244           koduna sahip bir yanıtın "Etag", "Last-Modified" ve "Expires"
245           başlıklarından en az birini içermesi gerekir.</li>
246
247         <li><code class="directive"><a href="./mod/mod_cache.html#cachestoreprivate">CacheStorePrivate</a></code>
248           yönergesinin kullanımını gerektiren bir durum olmadıkça yanıt
249           "private" değerli bir "Cache-Control:" başlığı içerdiği takdirde
250           yanıtın içeriği önbelleğe alınmayacaktır.</li>
251
252         <li>Benzer şekilde, <code class="directive"><a href="./mod/mod_cache.html#cachestorenostore">CacheStoreNoStore</a></code> yönergesi kullanılmamışsa yanıt
253           "no-store" değerli bir "Cache-Control:" başlığı içeriyorsa yanıt
254           içeriği önbelleğe alınmayacaktır.</li>
255
256         <li>Herşeyle eşleşen "*" değerli bir "Vary:" başlığı içeren bir
257           yanıtın içeriği önbelleğe alınmaz.</li>
258       </ol>
259     
260
261     <h3>Neler Önbelleklenmemeli?</h3>
262       
263
264       <p>Kısaca, istek zamana aşırı bağımlıysa ya da istek kısmen bile olsa
265         HTTP uzlaşımıyla bağdaşmıyorsa önbelleğe alınmamalıdır.</p>
266
267       <p>İçeriği istekçinin IP adresine bağlı olarak değişen veya her beş
268         dakikada bir değişikliğe uğrayan bir devingen içeriğe sahipseniz böyle
269         bir içerik asla önbelleğe alınmamalıdır.</p>
270
271       <p>Diğer taraftan, içerik HTTP başlığındaki değerlere bağlı olarak
272         değişiyorsa içeriğin bir "Vary" başlığı kullanılarak akıllıca
273         önbelleklenmesi imkanı mevcuttur.</p>
274     
275
276     <h3>Değişken/Uzlaşımlı İçerik</h3>
277       
278
279       <p>"Vary" başlıklı bir yanıt arka sunucudan istenirken
280         <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> tarafından alınmışsa akıllıca ele alınmaya
281         çalışılacaktır. Mümkünse, <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> gelecekte bu
282         içerikle ilgili isteklerin "Vary" başlıklı yanıtları olacağını
283         saptayacak ve önbellekten doğru içerikle yanıt verecektir.</p>
284
285       <p>Örneğin, bir yanıt şöyle bir başlık ile alınmışsa,</p>
286
287       <div class="example"><p><code>
288         Vary: negotiate,accept-language,accept-charset
289       </code></p></div>
290
291       <p><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> sadece accept-language ve accept-charset
292         başlıkları özgün istekle eşleşen önbellekli içeriği sunacaktır.</p>
293     
294
295   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
296 <div class="section">
297 <h2><a name="security" id="security">Güvenlik Kaygıları</a></h2>
298     
299
300     <h3>Erişim Denetimi ve Yetkilendirme</h3>
301       
302
303       <p><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> çoğunlukla bir karşı vekile sahip olmak
304         amacıyla kullanılır. Arka sunucunun sorgulanmasını gerektirmeyen tüm
305         istekler önbellekleme modülü tarafından karşılanacaktır. Yerel
306         özkaynakların önbelleklenmesi söz konusu olduğunda Apache’nin güvenlik
307         modeli büyükçe bir değişikliğe uğrar.</p>
308
309       <p>Olası <code>.htaccess</code> dosyalarının dosya sisteminin tamamında
310         taranması çok pahalı bir işlem olduğundan <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>,
311         (işlemi hızlandırmak için) önbelleğe almanın temel amacını kısmen
312         gözardı ederek, önbellekteki içeriğin sunumu için gerekli
313         yetkilendirmenin olup olmadığı konusunda bir karar üretmez. Başka bir
314         deyişle, eğer <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> bir kısım içeriği önbelleğe
315         almışsa içerik zaman aşımına uğramadığı sürece bu içerik önbellekten
316         sunulacaktır.</p>
317
318       <p>Örneğin, yapılandırmanız bir özkaynağa IP adresine göre erişime izin
319         veriyorsa bu içeriğin önbelleğe alınmayacağından emin olmalısınız.
320         Bunu <code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code>
321         yönergesini veya <code class="module"><a href="./mod/mod_expires.html">mod_expires</a></code> kullanarak
322         yapabilirsiniz. Bunu yapmaz, olayı kendi haline bırakırsanız
323         <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> bir karşı vekil gibi çalışarak sunulan her
324         içeriği arabelleğe alacak ve hangi IP adresinden gelirse gelsin her
325         istemciye bunu sunacaktır.</p>
326     
327
328     <h3>Yerel İstismarcılar</h3>
329       
330
331       <p>Son kullanıcılarıın isteklerine önbellekten hizmet sunulduğundan
332         önbelleğin kendisi içerikle etkileşime geçmek isteyenlerin veya
333         içeriği tahrif etmek isteyenlerin hedefi haline gelebilir. Apache’yi
334         çalıştıran kullanıcı tarafından her zaman önbelleğe yazılabileceğini
335         akıldan çıkarmamak önemlidir. Bu durumda alışılmışın tersine tüm
336         içeriğin Apache kullanıcısı tarafından yazılamamasının sağlanması
337         önerilir.</p>
338
339       <p>Eğer Apache kullanıcısı, örneğin bir CGI sürecindeki açık nedeniyle
340         tehlikeye atılırsa, önbellek hedef alınabilir.
341         <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code> kullanılırken önbellekteki bir öğeyi
342         değiştirmek veya önbelleğe yeni bir öğe eklemek görece daha
343         kolaydır.</p>
344
345       <p>Bu risk, Apache kullanıcısını kullanan diğer saldırı türleriyle
346         karşılaştırıldığında daha yüksektir. <code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code>
347         kullanıyorsanız şunları aklınızdan çıkarmayın: (1) Apache güvenlik
348         güncellemelerini takip edin ve sunucunuzu buna göre güncelleyin. (2)
349         Mümkünse <a href="suexec.html">suEXEC</a> kullanarak CGI süreçlerini
350         Apache kullanıcısı olmayan bir kullanıcının aidiyetinde çalıştırın.</p>
351
352     
353
354     <h3>Önbellek Zehirlenmeleri</h3>
355       
356
357       <p>Apache bir önbellekli vekil sunucu olarak çalıştığında önbellek
358         zehirlenmesi adı verilen sorunla karşılaşılma olasılığı vardır.
359         Önbellek zehirlenmesi, vekil sunucunun arka sunucudan yanlış (ve
360         genellikle istenmeyen) içerik almasına sebep olan bir saldırı türünü
361         betimlemek için yaygın olarak kullanılan bir terimdir.</p>
362
363       <p>Örneğin Apache’nin çalıştığı sistemin kullandığı DNS sunucuları DNS
364         önbellek zehirlenmesinden etkilenebilecek durumdaysa, bir saldırgan
365         Apache’nin istekleri almak için başvuracağı kaynak sunucunun yerini
366         değiştirebilir. Diğer bir örnek, HTTP istek kaçakçılığı adı verilen
367         bir saldırı türüdür.</p>
368
369       <p>Bu belge HTTP istek kaçakçılığını derinliğine incelenmesi için uygun
370         yer değildir (böyle kaynaklara arama motorunuzla erişebilirsiniz).
371         Bununla birlikte, vekil tarafından kaynak sunucudan alınan içeriği
372         tamamen denetim altına almak amacıyla kaynak sunucudaki bir açığı
373         istismar etmeye yönelik bir dizi istek yapılabileceğinin olasılık
374         dahilinde olduğunu bilmenizde yarar vardır.</p>
375     
376   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
377 <div class="section">
378 <h2><a name="filehandle" id="filehandle">Dosya Tanıtıcı Önbelleklemesi</a></h2>
379     
380
381     <table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yönergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code></li><li><code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code></li><li><code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code></li><li><code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code></li></ul></td></tr></table>
382
383     <p>Bir dosyanın açılması işlemi, özellikle de ağ dosya sistemlerinde
384       bulunan dosyalar için önemli bir gecikme kaynağı olabilir. Önbellekte,
385       çok sunulan dosyaların kendilerinin değil, açık dosya tanıtıcılarının
386       saklanması Apache’yi bu tür gecikmelerden koruyabilir. Apache’de iki tür
387       dosya tanıtıcı önbelleklemesi yapılabilmektedir.</p>
388
389     <h3><code>CacheFile</code> yönergesi ile</h3>
390       
391
392       <p>Apache’de mevcut önbelleklemenin en temel şekli
393         <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> tarafından sağlanan dosya tanıtıcı
394         önbelleklemesidir. Bu önbellek türü dosyaların kendilerini değil açık
395         dosya tanıtıcılarının bir listesini saklar. Dosyaların bu anlamda
396         önbelleklenmesi, <code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code> yönergesi yapılandırma dosyasında belirtilerek
397         sağlanabilir.</p>
398
399       <p><code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code> yönergesi
400         belirtilen dosyanın Apache başlatıldığında açılmasını ve dosya için
401         yapılan sonraki her istekte bu dosya tanıtıcısının kullanılmasını
402         sağlar.</p>
403
404       <div class="example"><p><code>
405         CacheFile /usr/local/apache2/htdocs/index.html
406       </code></p></div>
407
408       <p>Büyük miktarda dosyayı bu anlamda önbelleklemeyi tasarlıyorsanız
409         işletim sisteminizin açık dosya tanıtıcılarının sayısı ile ilgili
410         sınırlamasını uygun bir değere ayarlamanız gerekebilir.</p>
411
412       <p><code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code> yönergesini
413         kullandığınız takdirde dosya içeriğindeki değişiklikleri anında isteğe
414         yansıtamazsınız. Apache dosyayı ilk başlatıldığındaki haliyle
415         sunar.</p>
416
417       <p>Eğer Apache çalışırken dosya silinmişse Apache ilk başlatıldığındaki
418         haline ilişkin dosya tanıtıcıyı sağlamaya ve dolayısıyla dosya
419         içeriğini sunmaya devam edecektir. Yani, dosya silinmiş ve artık dosya
420         sisteminde görünmüyor olsa bile Apache durdurulup dosya tanıtıcıları
421         kapanmadıkça dosyaların silinmesiyle açılan yer serbest
422         kalmayacaktır.</p>
423     
424
425     <h3><code>CacheEnable</code> yönergesi ile</h3>
426       
427
428       <p><code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code> modülünün ayrıca, <code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code> yönergesi üzerinden etkin
429         kılınabilen kendine özgü bir dosya tanıtıcı önbellekleme şeması
430         vardır.</p>
431
432       <div class="example"><p><code>
433         CacheEnable fd /
434       </code></p></div>
435
436       <p><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>’nin devreye girdiği her işlemde olduğu
437         gibi bu tür dosya tanıtıcı önbelleklemesi de akıllıca yapılır ve
438         önbellekteki içerik zaman aşımına uğradığı halde sunulmaya devam
439         edilmez.</p>
440     
441   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
442 <div class="section">
443 <h2><a name="inmemory" id="inmemory">Sistem Belleğinde Önbellekleme</a></h2>
444     
445
446      <table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yönergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code></li><li><code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code></li><li><code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code></li><li><code class="directive"><a href="./mod/mod_file_cache.html#mmapstatic">MMapStatic</a></code></li></ul></td></tr></table>
447
448     <p>İçeriğin sistem belleğinden sunulması içerik sunmanın evrensel olarak
449       en hızlı yoludur. Dosyaların bir disk denetleyiciden okunması ya da daha
450       kötüsü uzak bir ağdan okunması bellekten okumayla karşılaştırılamayacak
451       ölçüde yavaş işlemlerdir. Disk denetleyiciler genellikle fiziksel
452       süreçleri denetlerler. Ağ erişimi ise band genişliği sınırlamalarından
453       etkilenir. Halbuki bellek erişimi sadece nano saniyeler mertebesinde
454       gerçekleşir.</p>
455
456     <p>Sistem belleği en pahalı saklama ortamı olması sebebiyle en verimli
457       şekilde kullanımı önemlidir. Dosyaları sistem belleğinde saklamakla
458       sistemin kullanabileceği bellek miktarını azaltmış olursunuz. İşletim
459       sistemi önbelleklemesinde göreceğiniz gibi bu öyle basit bir konu
460       değildir. Apache’nin kendi kullandığı belleğin bir kısmını önbellek
461       olarak ayırırken çok fazla bellek kullanmamak önemlidir. Aksi takdirde
462       işletim sistemi belleğin yetmediği noktada belleği diske
463       takaslayacağından istenen başarım artışı sağlanamayacaktır.</p>
464
465     <h3>İşletim Sistemi Önbelleklemesi</h3>
466       
467
468       <p>Günümüz iştetim sistemlerinin hemen hemen tamamında bellek içi
469         dosya/veri saklama işlemlerini çekirdek yönetir. Bu güçlü bir
470         özelliktir ve işletim sistemlerinin büyük çoğunluğu bunu böyle yapar.
471         Örneğin, Linux’ta bir dosyanın ilk defa okunduğunda ve ikinci kez
472         okunduğunda işlemcinin ne kadar meşgul edildiğine bakalım:</p>
473
474       <div class="example"><p><code>
475         colm@coroebus:~$ time cat testfile &gt; /dev/null<br />
476         real    0m0.065s<br />
477         user    0m0.000s<br />
478         sys     0m0.001s<br />
479         colm@coroebus:~$ time cat testfile &gt; /dev/null<br />
480         real    0m0.003s<br />
481         user    0m0.003s<br />
482         sys     0m0.000s
483       </code></p></div>
484
485       <p>Küçük bir dosya için bile okuma süresi bakımından büyük fark ortaya
486         çıkmaktadır. Bunun sebebi çekirdeğin dosya içeriğini bellek daha
487         güncel amaçlar için lazım olana dek bellek içinde saklamasıdır.</p>
488
489       <p>Sisteminizde yeterince yedek bellek olduğundan eminseniz, bu
490         önbellekte daha fazla dosya saklanacağından emin olabilirsiniz.
491         Bundan, önbelleğin sistem belleğinde verimli biçimde tutulması için
492         Apache’de ek bir yapılandırmaya gidilmesinin gerekmediği sonucu
493         çıkarılabilir.</p>
494
495       <p>Bundan başka, işletim sistemi dosyaların değiştiği ve silindiği
496         zamanları bildiğinden bu tür dosyaların içerikleri gerektiğinde
497         önbellekten kendiliğinden silinmiş olur. Bellek içinde dosya saklarken
498         dosyaların değiştirilme zamanlarını bilme olanağı olmadığından bu
499         durum Apache’ye büyük yarar sağlar.</p>
500     
501
502     <p>İşletim sisteminin dosyaların önbelleklenmesi için sağladığı bunca
503       yarara ve başarım artışına karşın bellek içinde dosya önbelleklemenin
504       Apache tarafından yerine getirilmesinin daha iyi olacağı bazı durumlar
505       vardır.</p>
506
507     <p>Öncelikle, işletim sistemi sadece bildiği dosyaları önbellekler (veya
508       önbelleklediği dosyaları bilir). Eğer Apache’yi bir vekil sunucu olarak
509       çalıştırıyorsanız, önbelleklediğiniz dosyalar yerel olarak saklanmadan
510       uzaktan sunulabilir. Ancak bellekiçi önbelleklemenin sağladığı hız
511       artışının dayanılmaz çekiciliğine karşı koyamıyorsanız, Apache’nin kendi
512       bellekiçi önbelleklemesine ihtiyacınız var demektir.</p>
513
514     <h3><code>MMapStatic</code> yönergesi ile</h3>
515       
516
517       <p><code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> modülü, bir durağan dosyanın
518         içeriğini sunucunun başlatılması sırasında (mmap sistem çağrısıyla)
519         belleğe eşlenmesini mümkün kılmak için <code class="directive"><a href="./mod/mod_file_cache.html#mmapstatic">MMapStatic</a></code> yönergesini sağlar.
520         Apache bu dosyaya gelecek sonraki istekler için dosyanın bellekiçi
521         içeriğini kullanacaktır.</p>
522
523       <div class="example"><p><code>
524         MMapStatic /usr/local/apache2/htdocs/index.html
525       </code></p></div>
526
527       <p><code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code> yönergesinde
528         olduğu gibi bu dosyalarda Apache başlatıldıktan sonra yapılacak bir
529         değişiklikten Apache’nin haberi olmayacaktır.</p>
530
531       <p><code class="directive"><a href="./mod/mod_file_cache.html#mmapstatic">MMapStatic</a></code> yönergesi
532         ayırdığı belleğin toplam miktarı ile ilgilenmez, dolayısıyla
533         yönergenin aşırı kullanımından kaçınmalısınız. Apache’nin çocuk
534         süreçlerinin her biri bu belleğin kendilerine ait birer kopyasını
535         yapacağından belleğe eşlenen dosyaların çok yer kaplamaması büyük önem
536         taşımaktadır; aksi takdirde işletim sistemi belleği diske
537         takaslayacağından beklenen fayda sağlanamayacaktır.</p>
538     
539
540     <h3><code>mod_mem_cache</code> modülü ile</h3>
541       
542
543       <p><code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code> modülü HTTP belirtimine uygun olarak
544         bellekiçi önbelleklemeyi akıllıca uygular. Ayrıca yüksek belleği
545         doğrudan kullanabildiğinden <var>MMap</var> desteği olmayan
546         sistemlerde bile bellekiçi önbellekleme yapabilir.</p>
547
548       <p>Bu tür önbellekleme şöyle etkin kılınabilir:</p>
549
550       <div class="example"><p><code>
551         # Bellekiçi önbelleklemeyi etkin kılalım<br />
552         CacheEnable mem /<br />
553         <br />
554         # Önbellek 1 Megabayttan büyük olmasın<br />
555         MCacheSize 1024
556       </code></p></div>
557     
558   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
559 <div class="section">
560 <h2><a name="disk" id="disk">Disk Üzerinde Önbellekleme</a></h2>
561     
562
563      <table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yönergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_cache.html#cacheenable">CacheEnable</a></code></li><li><code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code></li></ul></td></tr></table>
564
565     <p><code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code> modülü önbelleklemenin
566       <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> için disk üzerinde yapılmasını mümkün kılar.
567       <code class="module"><a href="./mod/mod_mem_cache.html">mod_mem_cache</a></code> modülünde olduğu gibi bu önbellekleme de
568       akıllıca yapılır ve önbellekteki içerik sadece geçerli kabul edildiği
569       sürece sunulabilir.</p>
570
571     <p>Modül bu amaçla genelde şöyle kullanılır:</p>
572
573     <div class="example"><p><code>
574       CacheRoot   /var/cache/apache/<br />
575       CacheEnable disk /<br />
576       CacheDirLevels 2<br />
577       CacheDirLength 1
578     </code></p></div>
579
580     <p>En önemlisi önbelleklenen dosyaların yerel olarak saklanması olup
581       işletim sisteminin sağladığı bellekiçi önbelleklemeden de ayrıca
582       faydalanılmış olur. Bu bakımdan, dosyalar disk üzerinde saklansa bile
583       sıkça erişilen dosyalar işletim sistemi sayesinde aslında bellekten
584       sunulmuş olacaklardır.</p>
585
586     <h3>Önbellekte Saklamanın Anlamı</h3>
587       
588
589       <p><code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code> öğeleri önbellekte saklamak için
590         istek yapılan URL’nin 22 karakterlik özetini oluşturur. Bu özet, çok
591         sayıda URL’nin aynı özeti oluşturmaması için konak ismi, protokol,
592         port ve varsa CGI argümanlarından oluşur.</p>
593
594       <p>Özeti oluşturan karakterler 64 karakterlik bir karakter kümesinden
595         seçildiğinden oluşturulması olası farklı özet sayısı 64^22’dir.
596         Örneğin, bir URL’nin <code>xyTGxSMO2b68mBCykqkp1w</code> gibi bir
597         özeti olabilir. Bu özet, bu URL ile erişilen dosyalar önbellek içinde
598         saklanırken dosya ismi öneki olarak kullanılır. Ancak bununla
599         yetinilmez ve içerik <code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlevels">CacheDirLevels</a></code> ve <code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlength">CacheDirLength</a></code> yönergelerinin
600         değerlerine göre önce dizinlere ayrılır.</p>
601
602       <p><code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlevels">CacheDirLevels</a></code>
603         yönergesi kaç alt seviye dizin olacağını belirler. Örneğin, yukarıdaki
604         özete sahip bir dosyanın isminin başına yukarıdaki yapılandırma
605         örneğine uygun olarak
606         <code>/var/cache/apache/x/y/TGxSMO2b68mBCykqkp1w</code> gibi bir önek
607         getirilebilirdi.</p>
608
609       <p>Bu tekniğin asıl amacı belli bir dizin içinde bulunabilecek
610         dosyaların ve alt dizinlerin sayısını düşük tutmaktır. Bu sayının
611         büyük olması çoğu işletim sisteminde başarımın düşmesine sebep olur.
612         <code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlength">CacheDirLength</a></code>
613         yönergesi "1" değeriyle kullanıldığında her dizin altında en fazla 64
614         alt dizin veya dosya açılabilir. "2" değeriyle kullanıldığında ise bu
615         sayı 64^2’ye yükselir ve böyle artarak gider. İyi bir sebebiniz
616         olmadıkça <code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlength">CacheDirLength</a></code> için değer olarak
617         "1" belirtmenizi öneririz.</p>
618
619       <p><code class="directive"><a href="./mod/mod_disk_cache.html#cachedirlevels">CacheDirLevels</a></code>
620         yönergesine atanacak değer önbellekte saklamayı düşündüğünüz olası
621         dosya sayısı ile ilgilidir. Yukarıdaki örnekte olduğu gibi "2"
622         değerini belirtirseniz, toplamda en fazla 4096 dizin oluşturulabilir.
623         1 milyon dosyanın önbelleklendiği bir durumda bu, her dizinde yaklaşık
624         olarak 245 önbelleklenmiş URL demektir.</p>
625
626       <p>Her URL için önbellekte en az iki dosya saklanır. Biri genellikle URL
627         hakkındaki temel verilerden oluşan ".header" dosyasıdır, diğeri ise
628         sunulacak içeriğin bire bir kopyası olan ".data" dosyasıdır.</p>
629
630       <p>"Vary" başlığı üzerinden içeriğin uzlaşıldığı durumda URL için bir
631         ".vary" dizini oluşturulur. Bu dizin her biri farklı bir uzlaşıma ait
632         çok sayıda ".data" dosyası içerebilir.</p>
633     
634
635     <h3>Disk Önbelleğinin Bakımı</h3>
636       
637
638       <p><code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code> zaman aşımına uğrayan önbellekli
639         içeriği silse de önbelleğin toplam boyu ve ne kadar boş bellek kaldığı
640         hakkında bilgi vermez.</p>
641
642       <p>Bunun yerine Apache önbellek içeriğini düzenli aralıklarla
643         temizleyebilmeniz için <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code> adında bir araç
644         içerir.  Önbellek için azami ne kadar yer kullanılacağının ve bunun
645         üzerinde <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code>’i hangi sıklıkta
646         çalıştırılacağının tespiti biraz karmaşık bir işlem olup uygun değerler
647         genellikle deneme yanılma yoluyla bulunur.</p>
648
649       <p><code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code> iki işlem kipine sahiptir. Kalıcı bir
650         artalan süreci olarak çalışabileceği gibi cron üzerinden belli
651         aralıklarla da çalıştırılabilir. Çok büyük (onlarca GB) önbelleklerde
652         <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code>’in işini bitirmesi 1 saatten fazla
653         sürebileceğinden, cron ile çalıştırma durumunda aynı anda birden fazla
654         kopyanın çalışıyor durumda olmaması için
655         <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code>’in çalıştırılma aralığını iyi
656         belirlemek gerekir.</p>
657
658       <p class="figure">
659       <img src="images/caching_fig1.tr.png" alt="" width="600" height="406" /><br />
660       <a id="figure1" name="figure1"><dfn>Şekil 1</dfn></a>:
661  Önbelleğin büyümesi ve düzenli aralıklarla temizlenmesi.</p>
662
663       <p><code class="module"><a href="./mod/mod_disk_cache.html">mod_disk_cache</a></code> ne kadar önbellek alanı kullandığı
664         ile ilgili bir bilgi vermediğinden <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code>’in
665         bir temizlik sonrası yeterince büyük bir genişleme alanı kalacak
666         şekilde yapılandırılması önemlidir.</p>
667     
668
669   </div></div>
670 <div class="bottomlang">
671 <p><span>Mevcut Diller: </span><a href="./en/caching.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
672 <a href="./fr/caching.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
673 <a href="./tr/caching.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
674 </div><div id="footer">
675 <p class="apache">Copyright 2008 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p>
676 <p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="./faq/">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p></div>
677 </body></html>