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