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