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
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">
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/quickreference.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="<-" alt="<-" src="./images/left.gif" /></a></div>
22 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Sunucusu</a> > <a href="http://httpd.apache.org/docs/">Belgeleme</a> > <a href="./">Sürüm 2.5</a></div><div id="page-content"><div id="preamble"><h1>Önbellek Kullanım Kılavuzu</h1>
24 <p><span>Mevcut Diller: </span><a href="./en/caching.html" hreflang="en" rel="alternate" title="English"> en </a> |
25 <a href="./fr/caching.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
26 <a href="./tr/caching.html" title="Türkçe"> tr </a></p>
28 <div class="outofdate">Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.</div>
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>
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>
46 <h2><a name="introduction" id="introduction">Giriş</a></h2>
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>
53 <dt>Üç durumlu RFC2616 HTTP önbelleklemesi</dt>
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.
67 <dt>İki durumlu anahtar/değer paylaşımlı nesne önbellekleme</dt>
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.
77 <dt>Uzmanlaşmış dosya önbellekleme</dt>
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ı
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>
92 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
94 <h2><a name="http-caching" id="http-caching">Üç durumlu RFC2616 HTTP önbelleklemesi</a></h2>
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>
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>
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>
111 <p>HTTP önbelleğinde bulunan bir girdi şu üç durumdan birinde olabilir:</p>
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.
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>
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>
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.
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>
150 <h3>Sunucu ile etkileşim</h3>
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:
159 <dt>Çabuk eylem aşaması</dt>
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
166 <p>Bu senaryoda önbellek sunucunun önüne vidalanmış gibi
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>
175 <dt>Normal eylem aşaması</dt>
177 <p>Bu aşama geç bir aşama olup, isteğin tamamen işlenmesinin
180 <p>Bu senaryoda önbellek sunucunun arkasına vidalanmış gibi
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>
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>
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>
205 <h3>Önbelleğin Hızlandırılması</h3>
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>
218 <h3>Tazelik Ömrü</h3>
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>
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>
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>
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
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>
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
250 <h3>Şartlı İstekler için Özlü Kılavuz</h3>
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>
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>
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
273 <p>İçerik değişmişse, bir şartlı istek yapılmamış gibi içeriğin kendisi
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>
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>
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>
296 <h3>Neler Önbelleklenebilir?</h3>
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>
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>
307 <li>Yanıtın HTTP durum kodu 200, 203, 300, 301 veya 410 olmalıdır.</li>
309 <li>İstek bir HTTP GET isteği olmalıdır.</li>
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
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>
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>
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>
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>
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>
342 <h3>Neler Önbelleklenmemeli?</h3>
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
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
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>
361 <h3>Değişken/Uzlaşımlı İçerik</h3>
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
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>
375 <p>Örneğin, bir yanıt şöyle bir başlık ile alınmışsa,</p>
377 <div class="example"><p><code>
378 Vary: negotiate,accept-language,accept-charset
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>
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>
390 <h3><a name="disk" id="disk">Disk Üzerinde Önbellekleme</a></h3>
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>
397 <p>Tipik olarak modül şöyle yapılandırılır:</p>
399 <div class="example"><p><code>
400 CacheRoot /var/cache/apache/<br />
401 CacheEnable disk /<br />
402 CacheDirLevels 2<br />
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>
413 <h3>Önbellekte Saklamanın Anlamı</h3>
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>
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>
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
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>
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>
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>
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>
464 <h3>Disk Önbelleğinin Bakımı</h3>
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>
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>
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>
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>
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>
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>
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>
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>
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
514 <p>Her gerçeklenime uygun ek modüller de sağlanmıştır:</p>
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>
527 <h3><a name="mod_authn_socache-caching" id="mod_authn_socache-caching">Kimlik Doğrulama Bilgilerinin Önbelleklenmesi</a></h3>
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>
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
537 <h3><a name="mod_ssl-caching" id="mod_ssl-caching">SSL Oturumlarının Önbelleklenmesi</a></h3>
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>
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>
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>
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>
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>
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>
561 <h3><a name="filehandle" id="filehandle">Dosya Tanıtıcı Önbelleklemesi</a></h3>
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>
570 <h4><code>CacheFile</code> yönergesi ile</h4>
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
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ı
585 <div class="example"><p><code>
586 CacheFile /usr/local/apache2/htdocs/index.html
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>
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
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
608 <h3><a name="inmemory" id="inmemory">Sistem Belleğinde Önbellekleme</a></h3>
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
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>
628 <h4>İşletim Sistemi Önbelleklemesi</h4>
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>
637 <div class="example"><p><code>
638 colm@coroebus:~$ time cat testfile > /dev/null<br />
642 colm@coroebus:~$ time cat testfile > /dev/null<br />
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>
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
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>
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
670 <h4><code>MMapFile</code> yönergesi ile</h4>
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>
679 <div class="example"><p><code>
680 MMapFile /usr/local/apache2/htdocs/index.html
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>
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>
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>
701 <h3>Erişim Denetimi ve Yetkilendirme</h3>
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>
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
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>
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
736 <h3>Yerel İstismarcılar</h3>
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ı
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
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>
761 <h3>Önbellek Zehirlenmeleri</h3>
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>
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>
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>
784 <h3>Hizmet Reddi / Önbelleğin Engellenmesi</h3>
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>
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>
808 <div class="bottomlang">
809 <p><span>Mevcut Diller: </span><a href="./en/caching.html" hreflang="en" rel="alternate" title="English"> en </a> |
810 <a href="./fr/caching.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
811 <a href="./tr/caching.html" title="Türkçe"> tr </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&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';
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';
822 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
823 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
826 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
828 })(window, document);
829 //--><!]]></script></div><div id="footer">
830 <p class="apache">Copyright 2013 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/quickreference.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') {