]> granicus.if.org Git - apache/blob - docs/manual/caching.html.tr.utf8
rebuild everything
[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" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
12 <script src="./style/scripts/prettify.js" type="text/javascript">
13 </script>
14
15 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
16 <body id="manual-page"><div id="page-header">
17 <p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p>
18 <p class="apache">Apache HTTP Sunucusu Sürüm 2.5</p>
19 <img alt="" src="./images/feather.gif" /></div>
20 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
21 <div id="path">
22 <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.5</a></div><div id="page-content"><div id="preamble"><h1>Önbellek Kullanım Kılavuzu</h1>
23 <div class="toplang">
24 <p><span>Mevcut Diller: </span><a href="./en/caching.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
25 <a href="./fr/caching.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
26 <a href="./tr/caching.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
27 </div>
28 <div class="outofdate">Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.</div>
29
30     <p>Bu belge <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>,
31       <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>
32       modülleri ve <a href="programs/htcacheclean.html">htcacheclean</a>
33       için bir başvuru kılavuzu niteliğindedir. HTTP sunucusu ve vekil
34       olarak çalışmada işlemleri hızlandırmak için bilinen sorunlar ve
35       yanlış yapılandırmalardan kaçınarak Apache HTTPD sunucusunun önbellekleme
36       özelliklerinin nasıl kullanılacağı açıklanmıştır.</p>
37   </div>
38 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#introduction">Giriş</a></li>
39 <li><img alt="" src="./images/down.gif" /> <a href="#http-caching">Üç durumlu RFC2616 HTTP önbelleklemesi</a></li>
40 <li><img alt="" src="./images/down.gif" /> <a href="#socache-caching">İki durumlu Anahtar/Değer Paylaşımlı Nesne Önbellekleme</a></li>
41 <li><img alt="" src="./images/down.gif" /> <a href="#file-caching">Uzmanlaşmış Dosya Önbellekleme</a></li>
42 <li><img alt="" src="./images/down.gif" /> <a href="#security">Güvenlik Kaygıları</a></li>
43 </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
44 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
45 <div class="section">
46 <h2><a name="introduction" id="introduction">Giriş</a></h2>
47     
48
49     <p>Apache HTTP sunucusu, sunucunun başarımını çeşitli yollarla arttırmak
50       üzere tasarlanmış bir dizi önbellekleme özelliğine sahiptir.</p>
51
52     <dl>
53         <dt>Üç durumlu RFC2616 HTTP önbelleklemesi</dt>
54         <dd>
55             <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> ve destek modülü
56             <code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code> akılcı ve HTTP'ye uygun
57             önbellekleme sağlar. İçeriğin kendisi önbellekte saklanır ve
58             <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>, <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html">RFC2616'nın 13. bölümü</a>nde açıklandığı gibi, içeriğin
59             önbelleklenebilirliğini denetleyen çeşitli HTTP başlıklarının ve
60             seçeneklerinin tümünü onurlandırmayı hedefler.
61             Devingen yerel içerik veya vekalet edilen içerik ile ilgilendiğiniz
62             durumda veya muhtemel bir yavaş disk üzerinde yerel dosyalara
63             erişimi hızlandırmak ihtiyacında olduğunuz durumda
64             <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> hem basit hem de karmaşık önbellekleme
65             yapılandırmalarını hedefler.
66         </dd>
67         <dt>İki durumlu anahtar/değer paylaşımlı nesne önbellekleme</dt>
68         <dd>
69             <a href="socache.html">Paylaşımlı nesne önbellek API'si</a>
70             (socache) ve destek modülleri sunucu taraflı bir anahtar/değer
71             paylaşımlı nesne önbelleklemesi sağlar. Bu modüller SSL oturumları
72             ve kimlik doğrulama bilgileri gibi düşük seviyeli verileri
73             önbelleklemek için tasarlanmıştır. Destek modülleri verinin sunucu
74             tarafı bir paylaşımlı bellekte veya veri merkezi tarafı memcache
75             veya distcache gibi bir önbellekte saklanmasını mümkün kılar.
76         </dd>
77         <dt>Uzmanlaşmış dosya önbellekleme</dt>
78         <dd>
79             <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> dosyaların sunucunun başlatılması
80             sırasında  belleğe yüklenmesi ile ilgilenir. Böylece dosyalara
81             erişim zamanını kısaltabilir, sıkça erişilen dosyaların dosya
82             tanıtıcılarını kaydedebilir, her istekte diske gitme ihtiyacını
83             ortadan kaldırır.
84         </dd>
85     </dl>
86
87     <p>Bu belgeden azami yararı sağlayabilmek için temel bir HTTP bilginizin
88       olması ve <a href="urlmapping.html">URL’lerin Dosya Sistemine
89       Eşlenmesi</a> ile <a href="content-negotiation.html">İçerik Uzlaşımı</a>
90       belgelerini okumuş olmanız gerekir.</p>
91
92   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
93 <div class="section">
94 <h2><a name="http-caching" id="http-caching">Üç durumlu RFC2616 HTTP önbelleklemesi</a></h2>
95
96     
97
98     <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></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/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>
99
100     <p>HTTP protokolü
101       <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html">RFC2616'nın 13. bölümü</a>nde açıklanan satıriçi önbellekleme
102       mekanizması için yerleşik bir destek içerir ve bunun getirilerinden
103       yararlanmak için <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> modülü kullanılabilir.</p>
104
105     <p>İçeriğin taze olmadığı durumda içeriğin kaybolmasına sebep olan basit
106       iki durumlu anahtar/değer önbelleklemesinin tersine, HTTP önbelleği
107       eskimiş içeriği tutan ve bu eski içeriğin değişip değişmediğini özgün
108       sunucuya soran ve duruma göre onu tekrar taze duruma getiren bir
109       mekanizma içerir.</p>
110
111     <p>HTTP önbelleğinde bulunan bir girdi şu üç durumdan birinde olabilir:</p>
112
113     <dl>
114     <dt>Taze</dt>
115     <dd>
116         İçerik yeteri kadar yeni (<strong>tazelik ömrü</strong>nden daha genç)
117         ise <strong>taze</strong> sayılır. Bir HTTP önbelleği böyle bir içeriği
118         özgün sunucuya birşey sormadan sunabilir.
119     </dd>
120     <dt>Bayat</dt>
121     <dd>
122         <p>İçerik çok eski (<strong>tazelik ömrü</strong>nden daha yaşlı)
123         ise <strong>bayat</strong> sayılır. Bir HTTP önbelleği böyle bir
124         içeriği istemciye sunmadan önce özgün sunucuya bağlanıp bayat içeriğin
125         hala yeterince taze olup olmadığına bakmalıdır. Özgün sunucu, içerik
126         geçersizse yenisini gönderecektir, aksi takdirde, (ideal olanı budur)
127         içeriğin hala geçerli olduğunu belirten bir kod ile yanıt verecektir.
128         İçerik tekrar taze hale gelince süreç kaldığı yerden devam eder.</p>
129
130         <p>HTTP protokolü belli koşullar altında önbelleğin bayat içeriği
131         sunmasına izin vermez. Örneğin, bir içeriği özgün sunucuda tazeleme
132         çabasının bir 5xx hatasıyla başarısız olması veya başka bir tazeleme
133         isteğinin henüz sonuçlanmamış olması bu çeşit koşullardandır. Bu
134         durumlarda yanıta bir <code>Warning</code> başlığı eklenir.</p>
135     </dd>
136     <dt>Yok</dt>
137     <dd>
138         Önbellekte yer kalmazsa yer açmak için içeriğin silinmesi seçenek
139         dahilindedir. İçerik taze olsun olmasın her zaman silinebilir. Önlem
140         olarak <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code> elle veya bir artalan süreci
141         olarak çalıştırılabilir. Böylece önbelleğin boyutunun belirtilen
142         boyutta veya belirtilen dosya düğümü sayısında kalması sağlanabilir.
143         Araç içeriği silerken bayat içeriğe öncelik verir.
144     </dd>
145     </dl>
146
147     <p>HTTP önbelleklemesinin çalışması ile ilgili bütün ayrıntılar
148     <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html">RFC2616'nın 13. bölümünde</a> bulunabilir.</p>
149
150     <h3>Sunucu ile etkileşim</h3>
151       
152
153       <p><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> modülü
154       <code class="directive"><a href="./mod/mod_cache.html#cachequickhandler">CacheQuickHandler</a></code> yönergesinin
155       değerine bağlı olarak iki olası yerde sunucuya bağlanır:
156       </p>
157
158       <dl>
159       <dt>Çabuk eylem aşaması</dt>
160       <dd>
161           <p>Bu aşama çok erken gerçekleşen bir aşama olup isteğin işlenmesi
162           sırasında isteğin çözümlenmesinin hemen sonrasıdır. İçerik
163           önbellekte mevcutsa hemen sunulur ve geri kalan istek işleme işlemi
164           iptal edilir.</p>
165
166           <p>Bu senaryoda önbellek sunucunun önüne vidalanmış gibi
167           davranır.</p>
168
169           <p>Sunucuda gerçekleşecek bir dizi işlemin büyük çoğunluğunun
170           yapılmadan geçilmesi nedeniyle bu en yüksek başarımlı kiptir.
171           Bu kip ayrıca, sunucu işlemlerinin kimlik doğrulama ve yetkilendirme
172           aşamalarının da yapılmadan geçilmesini sağlar. Bu bakımdan bu kip
173           seçilirken bu durum dikkate alınmalıdır.</p>
174       </dd>
175       <dt>Normal eylem aşaması</dt>
176       <dd>
177           <p>Bu aşama geç bir aşama olup, isteğin tamamen işlenmesinin
178           sonrasıdır.</p>
179
180           <p>Bu senaryoda önbellek sunucunun arkasına vidalanmış gibi
181           davranır.</p>
182
183           <p>Bu kip en esneğidir. Önbelleğin, süzme zincirinin hassas olarak
184           denetlenen bir noktasında oluşması sağlanabilir ve önbelleklenen
185           içerik istemciye gönderilmeden önce süzülüp
186           kişiselleştirilebilir.</p>
187           </dd>
188         </dl>
189
190         <p>URL önbellekte yoksa <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> modülü yanıtı
191           önbelleğe kaydetme aşamasında süzgeç yığıtına bir
192           <a href="filter.html">süzgeç</a> ekler ve geri çekilerek normal istek
193           işlemlerinin devam etmesine izin verir. İçeriğin önbelleklenebilir
194           olduğu saptanırsa içerik gelecekte sunulmak üzere önbelleğe
195           kaydedilir, aksi takdirde içerik yok sayılır.</p>
196
197         <p>Önbellekteki içerik bayatsa, <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> modülü
198           isteği bir <strong>koşullu istek</strong> haline getirir. Özgün
199           sunucu normal bir yanıt verirse bu yanıt mevcut içeriğin yerine
200           önbelleklenir. Özgün sunucu bir <code>304 Not Modified</code> yanıtı
201           verirse içerik tekrar taze olarak imlenir ve önbellekteki içerik
202           süzgeç tarafından kaydedilmeden sunulur.</p>
203     
204
205     <h3>Önbelleğin Hızlandırılması</h3>
206       
207
208       <p>Bir sanal konak birçok farklı sunucu takma adından biri olarak
209         bilindiği takdirde <code class="directive"><a href="./mod/core.html#usecanonicalname">UseCanonicalName</a></code> yönergesine <code>On</code>
210         değeri atanmışsa önbellekten sunulan sayfa sayısında büyük bir artış
211         olduğu görülür. Bunun sebebi içeriği sunan sanal konağın isminin
212         önbellek anahtarının içinde kullanılmasıdır. Yönergeye
213         <code>On</code> değerini atamak suretiyle çok isimli ve rumuzlu sanal
214         konaklar için farklı önbellek girdileri oluşturulmaz, bunun yerine her
215         meşru sanal konak için ayrı bir önbellek tutulur.</p>
216     
217
218     <h3>Tazelik Ömrü</h3>
219       
220
221       <p>Önbelleklenmek üzere tasarlanmış iyi biçimli bir içerik tazelik ömrünü
222         <code>Cache-Control</code> başlığının  <code>max-age</code> veya
223         <code>s-maxage</code> alanlarıyla ya da bir <code>Expires</code>
224         başlığını içererek bildirmelidir.</p>
225
226       <p>Aynı zamanda, özgün sunucunun tanımladığı tazelik ömrü, bir istemci
227         tarafından istekte bir <code>Cache-Control</code> başlığı kullanılarak
228         geçersiz kılınmak istenebilir. Bu durumda hangi tazelik ömrü daha
229         kısaysa o geçerli olur.</p>
230
231       <p>Tazelik ömrü istekte veya yanıtta mevcut değilse öntanımlı bir tazelik
232         ömrü kullanılır. Öntanımlı tazelik ömrü önbellekli içerik için bir saat
233         olmakla birlikte <code class="directive"><a href="./mod/mod_cache.html#cachedefaultexpire">CacheDefaultExpire</a></code> yönergesi
234         kullanılarak kolayca değiştirilebilir.</p>
235
236       <p>Bir yanıt <code>Expires</code> başlığını değil de
237         <code>Last-Modified</code> başlığını içeriyorsa
238         <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> tazelik ömrünü <code class="directive"><a href="./mod/mod_cache.html#cachelastmodifiedfactor">CacheLastModifiedFactor</a></code> yönergesine
239         bakarak saptar.</p>
240
241       <p>Yerel içerik için, ya da kendi <code>Expires</code> başlığını
242         tanımlamayan uzak içerik için tazelik ömrünü <code>max-age</code> ve
243         <code>Expires</code> ekleyerek hassas olarak ayarlamak
244         için <code class="module"><a href="./mod/mod_expires.html">mod_expires</a></code> kullanılabilir.</p>
245
246       <p>Tazelik ömrünün üst sınırı <code class="directive"><a href="./mod/mod_cache.html#cachemaxexpire">CacheMaxExpire</a></code> yönergesi ile
247         belirlenebilir.</p>
248     
249
250     <h3>Şartlı İstekler için Özlü Kılavuz</h3>
251       
252
253       <p>Önbellekteki içeriğin zaman aşımına uğrayıp bayat hale gelmesi,
254         httpd’nin özgün isteği aktarmak yerine isteği değişikliğe uğratarak
255         şartlı bir istek yapması sonucunu doğurur.</p>
256
257       <p>Özgün önbellekli yanıtta bir <code>ETag</code> başlığı mevcutsa,
258         <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> modülü özgün sunucuya yapılan isteğe
259         bir <code>If-None-Match</code> başlığı ekler.
260         Özgün önbellekli yanıtta bir <code>Last-Modified</code> başlığı
261         mevcutsa, <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> modülü özgün sunucuya yapılan
262         isteğe bir <code>If-Modified-Since</code> başlığı ekler. Bunlardan
263         birinin varlığı isteği <strong>koşullu</strong> yapar.</p>
264
265       <p>Bir koşullu istek özgün sunucu tarafından alındığında, özgün sunucu
266         <code>ETag</code> veya <code>Last-Modified</code> başlığının isteğe
267         uygun olarak değişip değişmediğine bakmalıdır. Değişmemişse, özgün
268         sunucu kısa ve öz bir "304 Not Modified" yanıtı ile yanıt vermelidir.
269         Bunun önbellekteki anlamı şudur: Eskimiş içerik hala tazedir ve içerik
270         yeni tazelik ömrüne ulaşıncaya kadar sonraki isteklerde
271         kullanılmalıdır.</p>
272
273       <p>İçerik değişmişse, bir şartlı istek yapılmamış gibi içeriğin kendisi
274         sunulur.</p>
275
276       <p>Şartlı istekler çifte yarar sağlar. Birinci olarak, böyle bir istek
277         özgün sunucuya yapılıyorsa ve iki içerik de aynıysa bunu saptamak kolay
278         olur ve özkaynağın tamamını aktarma külfetinden kurtulunur.</p>
279
280       <p>İkinci olarak, iyi tasarlanmış bir özgün sunucu, koşullu istekler tam
281         bir yanıt üretmekten önemli ölçüde ucuz olacak şekilde tasarlanmış
282         olacaktır. Durağan dosyalar için bu genellikle
283         <code>stat()</code> veya  benzeri bir sistem çağrısıyla dosya
284         boyutları ve değişiklik zamanına bakmak şeklinde gerçekleşir.
285         Böylelikle, yerel içeriği bir değişiklik olmadığı takdirde önbellekten
286         sunmak daha hızlı olacaktır.</p>
287
288       <p>Özgün sunucular koşullu istekleri desteklemek için her türlü çabayı
289         göstermelidir. Ancak, koşullu istekler desteklenmiyorsa, özgün sunucu
290         istek koşullu değilmiş gibi yanıt vermeli, önbellek ise, içerik
291         değişmiş ve yani içerik önbelleğe kaydedilmiş gibi yanıt vermelidir. Bu
292         durumda, önbellek basit bir iki durumlu (içerik ya tazedir ya da
293         silinmiş) önbellek gibi davranacaktır.</p>
294     
295
296     <h3>Neler Önbelleklenebilir?</h3>
297       
298
299       <p>HTTP önbelleğin tarafından önbelleklenebilecek içerik
300 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.4">
301        RFC2616 Section 13.4 Response Cacheability</a> belgesinde tanımlanmış
302        olup, bunlar şöyle özetlenebilir:</p>
303
304       <ol>
305         <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>
306
307         <li>Yanıtın HTTP durum kodu 200, 203, 300, 301 veya 410 olmalıdır.</li>
308
309         <li>İstek bir HTTP GET isteği olmalıdır.</li>
310
311         <li>Eğer yanıt bir "Authorization:" başlığı içeriyorsa ayrıca
312           "Cache-Control:" başlığında da "s-maxage", "must-revalidate" veya
313           "public" değerlerinden birini içermelidir, aksi takdirde
314           önbelleklenmez.</li>
315
316         <li>Eğer URL (GET yöntemi kullanan bir HTML formunun yaptığı gibi) bir
317           sorgu dizgesi içeriyorsa  yanıt, RFC2616’nın 13.9. bölümünde
318           açıklandığı gibi bir "Expires:" başlığı içermedikçe veya
319           "Cache-Control:" başlığının max-age veya max-age yönergesini
320           içermedikçe yanıt içeriği önbelleğe alınmayacaktır.</li>
321
322         <li><code class="directive"><a href="./mod/mod_cache.html#cacheignorenolastmod">CacheIgnoreNoLastMod</a></code>
323           yönergesinin kullanımını gerektiren bir durum olmadıkça 200 durum
324           koduna sahip bir yanıtın "Etag", "Last-Modified" ve "Expires"
325           başlıklarından birini veya "Cache-Control:" başlığının "max-age" veya
326           "s-maxage" yönergelerinden birini (en azından) içermesi gerekir.</li>
327
328         <li><code class="directive"><a href="./mod/mod_cache.html#cachestoreprivate">CacheStorePrivate</a></code>
329           yönergesinin kullanımını gerektiren bir durum olmadıkça yanıt
330           "private" değerli bir "Cache-Control:" başlığı içerdiği takdirde
331           yanıtın içeriği önbelleğe alınmayacaktır.</li>
332
333         <li>Benzer şekilde, <code class="directive"><a href="./mod/mod_cache.html#cachestorenostore">CacheStoreNoStore</a></code> yönergesi kullanılmamışsa yanıt
334           "no-store" değerli bir "Cache-Control:" başlığı içeriyorsa yanıt
335           içeriği önbelleğe alınmayacaktır.</li>
336
337         <li>Herşeyle eşleşen "*" değerli bir "Vary:" başlığı içeren bir
338           yanıtın içeriği önbelleğe alınmaz.</li>
339       </ol>
340     
341
342     <h3>Neler Önbelleklenmemeli?</h3>
343       
344
345       <p>İçerik zamana bağımlıysa ya da istek kısmen bile olsa HTTP uzlaşımıyla
346         bağdaşmıyorsa önbelleğe alınmamalıdır. Bu içerik önbelleklenemeyeceğini
347         <code>Cache-Control</code> başlığını kullanarak sunucuya
348         bildirmelidir.</p>
349
350       <p>İçerik sıkça değişiyorsa, tazelik ömrü dakikalar veya saniyelerle
351         ifade ediliyorsa, içerik yine de önbelleklenebilir. Ancak, tam
352         yanıtların düzenli olarak üretilmemesinin temini için  özgün sunucunun
353         <strong>koşullu istekleri</strong> doğru olarak desteklemesi
354         sağlanmalıdır.</p>
355
356       <p>İstemcinin sağladığı istek başlıklarına dayanarak değişen içerik,
357         <code>Vary</code> yanıt başlığının akıllıca kullanımıyla
358         önbelleklenebilir.</p>
359     
360
361     <h3>Değişken/Uzlaşımlı İçerik</h3>
362       
363
364       <p>Özgün sunucu, istekteki başlık değerlerine dayanarak farklı
365         içeriklerle yanıt vermeye ayarlandığı takdirde, örneğin aynı URL'de
366         farklı dillerde içerik sunmak gibi, HTTP'nin önbellekleme mekanizması
367         aynı URL'de aynı sayfanın değişik sürümlerini önbelleklemeyi mümkün
368         kılar.</p>
369
370       <p>Bu özgün sunucu tarafından bir <code>Vary</code> başlığı eklenerek
371         yapılır. Bir sayfanın farklı sürümleri arasındaki farkları saptarken
372         önbellek tarafından hangi başlıkların hesaba katılacağını
373         <code>Vary</code> başlığı belirler.</p>
374
375       <p>Örneğin, bir yanıt şöyle bir başlık ile alınmışsa,</p>
376
377       <div class="example"><p><code>
378         Vary: negotiate,accept-language,accept-charset
379       </code></p></div>
380
381       <p><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> sadece accept-language ve accept-charset
382         başlıkları özgün istekle eşleşen önbellekli içeriği sunacaktır.</p>
383
384       <p>İçeriğin farklı sürümleri yan yana önbelleklenebilir.
385         <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> modülü <code>Vary</code> başlığını
386         kullanarak başlıkta listelenmiş istek başlıklarının uygun değerlerini
387         saptar ve istemciye hangi sürümle yanıt verileceğine karar verir.</p>
388     
389
390     <h3><a name="disk" id="disk">Disk Üzerinde Önbellekleme</a></h3>
391       
392
393       <p><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> modülü önbelleği yönetmek için çeşitli
394       depolama ortamlarına özgü gerçeklenimleri kullanır. Diske önbellekleme
395       desteğini <code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code> sağlar.</p>
396
397       <p>Tipik olarak modül şöyle yapılandırılır:</p>
398
399       <div class="example"><p><code>
400 CacheRoot   /var/cache/apache/<br />
401 CacheEnable disk /<br />
402 CacheDirLevels 2<br />
403 CacheDirLength 1
404       </code></p></div>
405
406       <p>En önemlisi önbelleklenen dosyaların yerel olarak saklanması olup
407         işletim sisteminin sağladığı bellekiçi önbelleklemeden de ayrıca
408         faydalanılmış olur. Bu bakımdan, dosyalar disk üzerinde saklansa bile
409         sıkça erişilen dosyalar işletim sistemi sayesinde aslında bellekten
410         sunulmuş olacaklardır.</p>
411     
412
413     <h3>Önbellekte Saklamanın Anlamı</h3>
414       
415
416       <p><code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code> öğeleri önbellekte saklamak için
417         istek yapılan URL’nin 22 karakterlik özetini oluşturur. Bu özet, çok
418         sayıda URL’nin aynı özeti oluşturmaması için konak ismi, protokol,
419         port ve varsa CGI argümanlarından başka <code>Vary</code> başlığında
420         tanımlı elemanlardan oluşur.</p>
421
422       <p>Özeti oluşturan karakterler 64 karakterlik bir karakter kümesinden
423         seçildiğinden oluşturulması olası farklı özet sayısı 64^22’dir.
424         Örneğin, bir URL’nin <code>xyTGxSMO2b68mBCykqkp1w</code> gibi bir
425         özeti olabilir. Bu özet, bu URL ile erişilen dosyalar önbellek içinde
426         saklanırken dosya ismi öneki olarak kullanılır. Ancak bununla
427         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
428         değerlerine göre önce dizinlere ayrılır.</p>
429
430       <p><code class="directive"><a href="./mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code>
431         yönergesi kaç alt seviye dizin olacağını ve <code class="directive"><a href="./mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code> her dizinde kaç
432         karakter olacağını belirler. Örneğin, yukarıdaki
433         özete sahip bir dosyanın isminin başına yukarıdaki yapılandırma
434         örneğine uygun olarak
435         <code>/var/cache/apache/x/y/TGxSMO2b68mBCykqkp1w</code> gibi bir önek
436         getirilebilirdi.</p>
437
438       <p>Bu tekniğin asıl amacı belli bir dizin içinde bulunabilecek
439         dosyaların ve alt dizinlerin sayısını düşük tutmaktır. Bu sayının
440         büyük olması çoğu işletim sisteminde başarımın düşmesine sebep olur.
441         <code class="directive"><a href="./mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code>
442         yönergesi "1" değeriyle kullanıldığında her dizin altında en fazla 64
443         alt dizin veya dosya açılabilir. "2" değeriyle kullanıldığında ise bu
444         sayı 64^2’ye yükselir ve böyle artarak gider. İyi bir sebebiniz
445         olmadıkça <code class="directive"><a href="./mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code> için değer olarak
446         "1" belirtmenizi öneririz.</p>
447
448       <p><code class="directive"><a href="./mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code>
449         yönergesine atanacak değer önbellekte saklamayı düşündüğünüz olası
450         dosya sayısı ile ilgilidir. Yukarıdaki örnekte olduğu gibi "2"
451         değerini belirtirseniz, toplamda en fazla 4096 dizin oluşturulabilir.
452         1 milyon dosyanın önbelleklendiği bir durumda bu, her dizinde yaklaşık
453         olarak 245 önbelleklenmiş URL demektir.</p>
454
455       <p>Her URL için önbellekte en az iki dosya saklanır. Biri genellikle URL
456         hakkındaki temel verilerden oluşan ".header" dosyasıdır, diğeri ise
457         sunulacak içeriğin bire bir kopyası olan ".data" dosyasıdır.</p>
458
459       <p>"Vary" başlığı üzerinden içeriğin uzlaşıldığı durumda URL için bir
460         ".vary" dizini oluşturulur. Bu dizin her biri farklı bir uzlaşıma ait
461         çok sayıda ".data" dosyası içerebilir.</p>
462     
463
464     <h3>Disk Önbelleğinin Bakımı</h3>
465       
466
467       <p><code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code> zaman aşımına uğrayan önbellekli
468         içeriği silse de önbelleğin toplam boyu ve ne kadar boş bellek kaldığı
469         hakkında bilgi vermez.</p>
470
471       <p>Bunun yerine httpd önbellek içeriğini düzenli aralıklarla
472         temizleyebilmeniz için <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code> adında bir araç
473         içerir.  Önbellek için azami ne kadar yer kullanılacağının ve bunun
474         üzerinde <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code>’i hangi sıklıkta
475         çalıştırılacağının tespiti biraz karmaşık bir işlem olup uygun değerler
476         genellikle deneme yanılma yoluyla bulunur.</p>
477
478       <p><code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code> iki işlem kipine sahiptir. Kalıcı bir
479         artalan süreci olarak çalışabileceği gibi cron üzerinden belli
480         aralıklarla da çalıştırılabilir. Çok büyük (onlarca GB) önbelleklerde
481         <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code>’in işini bitirmesi 1 saatten fazla
482         sürebileceğinden, cron ile çalıştırma durumunda aynı anda birden fazla
483         kopyanın çalışıyor durumda olmaması için
484         <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code>’in çalıştırılma aralığını iyi
485         belirlemek gerekir.</p>
486
487       <p>Ayrıca, <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code> için uygun bir "nice" seviyesi
488         seçilmesi önerilr. Böylece, sunucu çalışırken aracın ölçüsüz disk g/ç
489         yapmasına sebebiyet verilmemiş olur.</p>
490
491       <p class="figure">
492       <img src="images/caching_fig1.tr.png" alt="" width="600" height="406" /><br />
493       <a id="figure1" name="figure1"><dfn>Şekil 1</dfn></a>:
494  Önbelleğin büyümesi ve düzenli aralıklarla temizlenmesi.</p>
495
496       <p><code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code> ne kadar bellek kullanıldığı hakkında
497         bilgi vermediğinden, <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code>'in bir temizliğin
498         ardından yeterli bir büyüme alanı kalacak şekilde yapılandırılması
499         temin edilmelidir.</p>
500     
501
502   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
503 <div class="section">
504 <h2><a name="socache-caching" id="socache-caching">İki durumlu Anahtar/Değer Paylaşımlı Nesne Önbellekleme</a></h2>
505     
506
507     <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_authn_socache.html">mod_authn_socache</a></code></li><li><code class="module"><a href="./mod/mod_socache_dbm.html">mod_socache_dbm</a></code></li><li><code class="module"><a href="./mod/mod_socache_dc.html">mod_socache_dc</a></code></li><li><code class="module"><a href="./mod/mod_socache_memcache.html">mod_socache_memcache</a></code></li><li><code class="module"><a href="./mod/mod_socache_shmcb.html">mod_socache_shmcb</a></code></li><li><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_authn_socache.html#authncachesocache">AuthnCacheSOCache</a></code></li><li><code class="directive"><a href="./mod/mod_ssl.html#sslsessioncache">SSLSessionCache</a></code></li><li><code class="directive"><a href="./mod/mod_ssl.html#sslstaplingcache">SSLStaplingCache</a></code></li></ul></td></tr></table>
508
509     <p>Apache HTTP sunucusu, SSL oturumları, kimlik doğrulama bilgileri gibi
510       önbelleklenebilen özel bilgiler için <a href="socache.html">socache</a>
511       arayüzü içinde düşük seviyeli bir paylaşımlı nesne önbelleğine
512       sahiptir.</p>
513
514     <p>Her gerçeklenime uygun ek modüller de sağlanmıştır:</p>
515
516     <dl>
517     <dt><code class="module"><a href="./mod/mod_socache_dbm.html">mod_socache_dbm</a></code></dt>
518     <dd>DBM tabanlı paylaşımlı nesne önbelleklemesi.</dd>
519     <dt><code class="module"><a href="./mod/mod_socache_dc.html">mod_socache_dc</a></code></dt>
520     <dd>Distcache tabanlı paylaşımlı nesne önbelleklemesi.</dd>
521     <dt><code class="module"><a href="./mod/mod_socache_memcache.html">mod_socache_memcache</a></code></dt>
522     <dd>Memcache tabanlı paylaşımlı nesne önbelleklemesi.</dd>
523     <dt><code class="module"><a href="./mod/mod_socache_shmcb.html">mod_socache_shmcb</a></code></dt>
524     <dd>Paylaşımlı belleğe dayalı paylaşımlı nesne önbelleklemesi.</dd>
525     </dl>
526
527     <h3><a name="mod_authn_socache-caching" id="mod_authn_socache-caching">Kimlik Doğrulama Bilgilerinin Önbelleklenmesi</a></h3>
528       
529
530       <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_authn_socache.html">mod_authn_socache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_authn_socache.html#authncachesocache">AuthnCacheSOCache</a></code></li></ul></td></tr></table>
531
532       <p><code class="module"><a href="./mod/mod_authn_socache.html">mod_authn_socache</a></code> modülü kimlik doğrulama araçlarının
533         yükünün hafifletilmesini, kimlik doğrulama sonucunun önbelleklenmesini
534         sağlar.</p>
535     
536
537     <h3><a name="mod_ssl-caching" id="mod_ssl-caching">SSL Oturumlarının Önbelleklenmesi</a></h3>
538       
539
540       <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_ssl.html">mod_ssl</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_ssl.html#sslsessioncache">SSLSessionCache</a></code></li><li><code class="directive"><a href="./mod/mod_ssl.html#sslstaplingcache">SSLStaplingCache</a></code></li></ul></td></tr></table>
541
542       <p><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code> modülü, oturum önbelleği ve önbellek
543        zımbalaması sağlamak için <code>socache</code> arayüzünü kullanır.</p>
544     
545   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
546 <div class="section">
547 <h2><a name="file-caching" id="file-caching">Uzmanlaşmış Dosya Önbellekleme</a></h2>
548     
549
550      <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_file_cache.html#mmapfile">MMapFile</a></code></li></ul></td></tr></table>
551
552     <p>Dosya sisteminin yavaş olabildiği veya dosya tanıtıcılarının
553       kullanımının pahalıya mal olduğu sistemlerde, sunucunun başlatılması
554       sırasında dosyaların belleğe yüklenmesi seçeneği vardır.</p>
555
556     <p>Dosyaların açılmasının yavaş olduğu sistemlerde, dosyaların sunucunun
557       başlatılması sırasında açılması ve dosya tanıtıcısını önbelleklenmesi
558       seçeneği vardır. Bu seçeneklerin duruk dosyalara erişimin yavaş olduğu
559       sistemlere de bir yardımı olabilir.</p>
560
561     <h3><a name="filehandle" id="filehandle">Dosya Tanıtıcı Önbelleklemesi</a></h3>
562       
563
564       <p>Bir dosyanın açılması işlemi, özellikle de ağ dosya sistemlerinde
565         bulunan dosyalar için önemli bir gecikme kaynağı olabilir. Önbellekte,
566         çok sunulan dosyaların kendilerinin değil, açık dosya tanıtıcılarının
567         saklanması httpd’yi bu tür gecikmelerden koruyabilir. httpd’de tek
568         türde dosya tanıtıcı önbelleklemesi yapılabilmektedir.</p>
569
570       <h4><code>CacheFile</code> yönergesi ile</h4>
571         
572
573         <p>httpd’de mevcut önbelleklemenin en temel şekli
574           <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> tarafından sağlanan dosya tanıtıcı
575           önbelleklemesidir. Bu önbellek türü dosyaların kendilerini değil açık
576           dosya tanıtıcılarının bir listesini saklar. Dosyaların bu anlamda
577           önbelleklenmesi, <code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code> yönergesi yapılandırma dosyasında belirtilerek
578           sağlanabilir.</p>
579
580         <p><code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code> yönergesi
581           belirtilen dosyanın httpd başlatıldığında açılmasını ve dosya için
582           yapılan sonraki her istekte bu dosya tanıtıcısının kullanılmasını
583           sağlar.</p>
584
585         <div class="example"><p><code>
586           CacheFile /usr/local/apache2/htdocs/index.html
587         </code></p></div>
588
589         <p>Büyük miktarda dosyayı bu anlamda önbelleklemeyi tasarlıyorsanız
590           işletim sisteminizin açık dosya tanıtıcılarının sayısı ile ilgili
591           sınırlamasını uygun bir değere ayarlamanız gerekebilir.</p>
592
593         <p><code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code> yönergesini
594           kullandığınız takdirde dosya içeriğindeki değişiklikleri anında
595           isteğe yansıtamazsınız. httpd dosyayı ilk başlatıldığındaki haliyle
596           sunar.</p>
597
598         <p>Eğer httpd çalışırken dosya silinmişse httpd ilk başlatıldığındaki
599           haline ilişkin dosya tanıtıcıyı sağlamaya ve dolayısıyla dosya
600           içeriğini sunmaya devam edecektir. Yani, dosya silinmiş ve artık
601           dosya sisteminde görünmüyor olsa bile httpd durdurulup dosya
602           tanıtıcıları kapanmadıkça dosyaların silinmesiyle açılan yer serbest
603           kalmayacaktır.</p>
604       
605
606     
607
608     <h3><a name="inmemory" id="inmemory">Sistem Belleğinde Önbellekleme</a></h3>
609       
610
611       <p>İçeriğin sistem belleğinden sunulması içerik sunmanın evrensel olarak
612       en hızlı yoludur. Dosyaların bir disk denetleyiciden okunması ya da daha
613       kötüsü uzak bir ağdan okunması bellekten okumayla karşılaştırılamayacak
614       ölçüde yavaş işlemlerdir. Disk denetleyiciler genellikle fiziksel
615       süreçleri denetlerler. Ağ erişimi ise band genişliği sınırlamalarından
616       etkilenir. Halbuki bellek erişimi sadece nano saniyeler mertebesinde
617       gerçekleşir.</p>
618
619       <p>Sistem belleği en pahalı saklama ortamı olması sebebiyle en verimli
620       şekilde kullanımı önemlidir. Dosyaları sistem belleğinde saklamakla
621       sistemin kullanabileceği bellek miktarını azaltmış olursunuz. İşletim
622       sistemi önbelleklemesinde göreceğiniz gibi bu öyle basit bir konu
623       değildir. httpd’nin kendi kullandığı belleğin bir kısmını önbellek
624       olarak ayırırken çok fazla bellek kullanmamak önemlidir. Aksi takdirde
625       işletim sistemi belleğin yetmediği noktada belleği diske
626       takaslayacağından istenen başarım artışı sağlanamayacaktır.</p>
627
628       <h4>İşletim Sistemi Önbelleklemesi</h4>
629         
630
631         <p>Günümüz iştetim sistemlerinin hemen hemen tamamında bellek içi
632         dosya/veri saklama işlemlerini çekirdek yönetir. Bu güçlü bir
633         özelliktir ve işletim sistemlerinin büyük çoğunluğu bunu böyle yapar.
634         Örneğin, Linux’ta bir dosyanın ilk defa okunduğunda ve ikinci kez
635         okunduğunda işlemcinin ne kadar meşgul edildiğine bakalım:</p>
636
637         <div class="example"><p><code>
638           colm@coroebus:~$ time cat testfile &gt; /dev/null<br />
639           real    0m0.065s<br />
640           user    0m0.000s<br />
641           sys     0m0.001s<br />
642           colm@coroebus:~$ time cat testfile &gt; /dev/null<br />
643           real    0m0.003s<br />
644           user    0m0.003s<br />
645           sys     0m0.000s
646         </code></p></div>
647
648         <p>Küçük bir dosya için bile okuma süresi bakımından büyük fark ortaya
649           çıkmaktadır. Bunun sebebi çekirdeğin dosya içeriğini bellek daha
650           güncel amaçlar için lazım olana dek bellek içinde saklamasıdır.</p>
651
652         <p>Sisteminizde yeterince yedek bellek olduğundan eminseniz, bu
653           önbellekte daha fazla dosya saklanacağından emin olabilirsiniz.
654           Bundan, önbelleğin sistem belleğinde verimli biçimde tutulması için
655           httpd’de ek bir yapılandırmaya gidilmesinin gerekmediği sonucu
656           çıkarılabilir.</p>
657
658         <p>Bundan başka, işletim sistemi dosyaların değiştiği ve silindiği
659           zamanları bildiğinden bu tür dosyaların içerikleri gerektiğinde
660           önbellekten kendiliğinden silinmiş olur. Bellek içinde dosya
661           saklarken dosyaların değiştirilme zamanlarını bilme olanağı
662           olmadığından bu durum httpd’ye büyük yarar sağlar.</p>
663       
664
665       <p>İşletim sisteminin dosyaların önbelleklenmesi için sağladığı bunca
666         yarara ve başarım artışına karşın bellek içinde dosya önbelleklemenin
667         httpd tarafından yerine getirilmesinin daha iyi olacağı bazı durumlar
668         vardır.</p>
669
670       <h4><code>MMapFile</code> yönergesi ile</h4>
671         
672
673         <p><code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> modülü, bir durağan dosyanın
674           içeriğini sunucunun başlatılması sırasında (mmap sistem çağrısıyla)
675           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.
676           httpd bu dosyaya gelecek sonraki istekler için dosyanın bellekiçi
677           içeriğini kullanacaktır.</p>
678
679         <div class="example"><p><code>
680           MMapFile /usr/local/apache2/htdocs/index.html
681         </code></p></div>
682
683         <p><code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code>
684           yönergesinde olduğu gibi bu dosyalarda httpd başlatıldıktan sonra
685           yapılacak bir değişiklikten httpd’nin haberi olmayacaktır.</p>
686
687         <p><code class="directive"><a href="./mod/mod_file_cache.html#mmapfile">MMapFile</a></code> yönergesi
688           ayırdığı belleğin toplam miktarı ile ilgilenmez, dolayısıyla
689           yönergenin aşırı kullanımından kaçınmalısınız. httpd’nin çocuk
690           süreçlerinin her biri bu belleğin kendilerine ait birer kopyasını
691           yapacağından belleğe eşlenen dosyaların çok yer kaplamaması büyük
692           önem taşımaktadır; aksi takdirde işletim sistemi belleği diske
693           takaslayacağından beklenen fayda sağlanamayacaktır.</p>
694       
695     
696   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
697 <div class="section">
698 <h2><a name="security" id="security">Güvenlik Kaygıları</a></h2>
699     
700
701     <h3>Erişim Denetimi ve Yetkilendirme</h3>
702       
703
704       <p><code class="directive"><a href="./mod/mod_cache.html#cachequickhandler">CacheQuickHandler</a></code>
705         yönergesine <code>On</code> değerinin atandığı öntanımlı durumda
706         <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> kullanımı, daha çok sunucunun önüne
707         vidalanmış önbelleklemeli bir karşı vekile sahip olmak gibidir. Özgün
708         sunucunun bir harici önbellekmiş gibi sorgulanmasını gerektirmeyen tüm
709         istekler önbellekleme modülü tarafından karşılanacaktır. Bu durum
710         httpd'nin güvenlik modelini büyük ölçüde değiştirir.</p>
711
712       <p>Olası <code>.htaccess</code> dosyalarının dosya sisteminin tamamında
713         taranması çok pahalı bir işlem olduğundan <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>,
714         (işlemi hızlandırmak için) önbelleğe almanın temel amacını kısmen
715         gözardı ederek, önbellekteki içeriğin sunumu için gerekli
716         yetkilendirmenin olup olmadığı konusunda bir karar üretmez. Başka bir
717         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
718         almışsa içerik zaman aşımına uğramadığı sürece bu içerik önbellekten
719         sunulacaktır.</p>
720
721       <p>Örneğin, yapılandırmanız bir özkaynağa IP adresine göre erişime izin
722         veriyorsa bu içeriğin önbelleğe alınmayacağından emin olmalısınız.
723         Bunu <code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code>
724         yönergesini veya <code class="module"><a href="./mod/mod_expires.html">mod_expires</a></code> modülünü kullanarak
725         yapabilirsiniz. Bunu yapmaz, olayı kendi haline bırakırsanız
726         <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> bir karşı vekil gibi çalışarak sunulan her
727         içeriği önbelleğe alacak ve hangi IP adresinden gelirse gelsin her
728         istemciye bunu sunacaktır.</p>
729
730       <p><code class="directive"><a href="./mod/mod_cache.html#cachequickhandler">CacheQuickHandler</a></code>
731         yönergesine <code>Off</code> atandığı takdirde, istek işleme
732         aşamalarının tamamı yerine getirilir ve güvenlik modeli değişmeden
733         kalır.</p>
734     
735
736     <h3>Yerel İstismarcılar</h3>
737       
738
739       <p>Son kullanıcılarıın isteklerine önbellekten hizmet sunulduğundan
740         önbelleğin kendisi içerikle etkileşime geçmek isteyenlerin veya
741         içeriği tahrif etmek isteyenlerin hedefi haline gelebilir. httpd’yi
742         çalıştıran kullanıcı tarafından her zaman önbelleğe yazılabileceğini
743         akıldan çıkarmamak önemlidir. Bu durumda alışılmışın tersine tüm
744         içeriğin Apache kullanıcısı tarafından yazılamamasının sağlanması
745         önerilir.</p>
746
747       <p>Eğer Apache kullanıcısı, örneğin bir CGI sürecindeki açık nedeniyle
748         tehlikeye atılırsa, önbellek hedef alınabilir.
749         <code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code> kullanılırken önbellekteki bir öğeyi
750         değiştirmek veya önbelleğe yeni bir öğe eklemek görece daha
751         kolaydır.</p>
752
753       <p>Bu risk, Apache kullanıcısını kullanan diğer saldırı türleriyle
754         karşılaştırıldığında daha yüksektir. <code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code>
755         kullanıyorsanız şunları aklınızdan çıkarmayın: (1) httpd güvenlik
756         güncellemelerini takip edin ve sunucunuzu buna göre güncelleyin. (2)
757         Mümkünse <a href="suexec.html">suEXEC</a> kullanarak CGI süreçlerini
758         Apache kullanıcısı olmayan bir kullanıcının aidiyetinde çalıştırın.</p>
759     
760
761     <h3>Önbellek Zehirlenmeleri</h3>
762       
763
764       <p>httpd bir önbellekli vekil sunucu olarak çalıştığında önbellek
765         zehirlenmesi adı verilen sorunla karşılaşılma olasılığı vardır.
766         Önbellek zehirlenmesi, vekil sunucunun özgün sunucudan yanlış (ve
767         genellikle istenmeyen) içerik almasına sebep olan bir saldırı türünü
768         betimlemek için yaygın olarak kullanılan bir terimdir.</p>
769
770       <p>Örneğin httpd’nin çalıştığı sistemin kullandığı DNS sunucuları DNS
771         önbellek zehirlenmesinden etkilenebilecek durumdaysa, bir saldırgan
772         httpd’nin istekleri almak için başvuracağı kaynak sunucunun yerini
773         değiştirebilir. Diğer bir örnek, HTTP istek kaçakçılığı adı verilen
774         bir saldırı türüdür.</p>
775
776       <p>Bu belge HTTP istek kaçakçılığını derinliğine incelenmesi için uygun
777         yer değildir (böyle kaynaklara arama motorunuzla erişebilirsiniz).
778         Bununla birlikte, vekil tarafından kaynak sunucudan alınan içeriği
779         tamamen denetim altına almak amacıyla kaynak sunucudaki bir açığı
780         istismar etmeye yönelik bir dizi istek yapılabileceğinin olasılık
781         dahilinde olduğunu bilmenizde yarar vardır.</p>
782     
783
784     <h3>Hizmet Reddi / Önbelleğin Engellenmesi</h3>
785       
786
787       <p>Vary mekanizması aynı URL'nin çok sayıda sürümünün yan yana
788         önbelleklenmesini mümkün kılar. İstemci tarafından sağlanan başlık
789         değerlerine bağlı olarak, önbellek istemciye gönderilecek doğru yanıtı
790         bulacaktır. Normal kullanımda olası değerlerin çok geniş olduğunun
791         bilindiği durumda bir başlığı (örn, <code>User-Agent</code>)
792         değişikliğe uğratma çabası bu mekanizmayı bir sorun haline getirebilir.
793         Sitenin tanınırlığına bağlı olarak aynı URL'nin binlerce hatta
794         milyonlarca önbellek girdisi oluşabilir ve bunlar önbellekteki diğer
795         girdilerin yerini alabilir.</p>
796
797       <p>Diğer yandan, belli bir özkaynağın URL'sinin her istekte
798       değiştirilmesi ihtiyacı ortaya çıkabilir. Bu normalde URL dizgesine bir
799       "cachebuster" dizgesi eklenerek yapılır. Bu içerik sunucu tarafından
800       anlamlı bir tazelik ömrüyle önbelleklenebilir olarak imlenmişse bu
801       girdiler kısa zamanda önbellekteki meşru girdilerin yerini alabilir.
802       <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> modülü bunun önlenmesi için <code class="directive"><a href="./mod/mod_cache.html#cacheignoreurlsessionidentifiers">CacheIgnoreURLSessionIdentifiers</a></code>
803       yönergesine sahipse de bu yönerge, yoldaki vekillerin veya tarayıcı
804       önbelleklerinin aynı hizmet reddi saldırısına maruz kalmamaları için
805       dikkatle kullanılmalıdır.</p>
806     
807   </div></div>
808 <div class="bottomlang">
809 <p><span>Mevcut Diller: </span><a href="./en/caching.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
810 <a href="./fr/caching.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
811 <a href="./tr/caching.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
812 </div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Yorum</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
813 <script type="text/javascript"><!--//--><![CDATA[//><!--
814 var comments_shortname = 'httpd';
815 var comments_identifier = 'http://httpd.apache.org/docs/trunk/caching.html';
816 (function(w, d) {
817     if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
818         d.write('<div id="comments_thread"><\/div>');
819         var s = d.createElement('script');
820         s.type = 'text/javascript';
821         s.async = true;
822         s.src = 'http://c.apaste.info/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
823         (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
824     }
825     else {
826         d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
827     }
828 })(window, document);
829 //--><!]]></script></div><div id="footer">
830 <p class="apache">Copyright 2012 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>
831 <p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
832 if (typeof(prettyPrint) !== 'undefined') {
833     prettyPrint();
834 }
835 //--><!]]></script>
836 </body></html>