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