<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="tr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>&Ouml;nbellek Kullanım Kılavuzu - Apache HTTP Sunucusu S&uuml;r&uuml;m 2.4</title>
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
<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">
<script src="./style/scripts/prettify.min.js">
</script>

<link href="./images/favicon.png" rel="shortcut icon"></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="./mod/">Mod&uuml;ller</a> | <a href="./mod/quickreference.html">Y&ouml;nergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Hata bildir</a></p>
<p class="apache">Apache HTTP Sunucusu S&uuml;r&uuml;m 2.4</p>
<img alt="" src="./images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="https://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="./">S&uuml;r&uuml;m 2.4</a></div><div id="page-content"><div id="preamble"><h1>&Ouml;nbellek Kullanım Kılavuzu</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Mevcut Diller: </span><a href="./en/caching.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./fr/caching.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="./tr/caching.html" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div>
<div class="outofdate">Bu &ccedil;eviri g&uuml;ncel olmayabilir. Son değişiklikler i&ccedil;in İngilizce s&uuml;r&uuml;m ge&ccedil;erlidir.</div>

    <p>Bu belge <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>,
      <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>
      mod&uuml;lleri ve <a href="programs/htcacheclean.html">htcacheclean</a>
      i&ccedil;in bir başvuru kılavuzu niteliğindedir. HTTP sunucusu ve vekil
      olarak &ccedil;alışmada işlemleri hızlandırmak i&ccedil;in bilinen sorunlar ve
      yanlış yapılandırmalardan ka&ccedil;ınarak Apache HTTPD sunucusunun &ouml;nbellekleme
      &ouml;zelliklerinin nasıl kullanılacağı a&ccedil;ıklanmıştır.</p>
  </div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif"> <a href="#introduction">Giriş</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#http-caching">&Uuml;&ccedil; durumlu RFC2616 HTTP &ouml;nbelleklemesi</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#examples">&Ouml;nbellek Ayarlama &Ouml;rnekleri</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#socache-caching">Genel İki durumlu Anahtar/Değer Paylaşımlı Nesne &Ouml;nbellekleme</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#file-caching">Uzmanlaşmış Dosya &Ouml;nbellekleme</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#security">G&uuml;venlik Kaygıları</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="introduction">Giriş <a title="Permanent link" href="#introduction" class="permalink">&para;</a></h2>
    

    <p>Apache HTTP sunucusu, sunucunun başarımını &ccedil;eşitli yollarla arttırmak
      &uuml;zere tasarlanmış bir dizi &ouml;nbellekleme &ouml;zelliğine sahiptir.</p>

    <dl>
        <dt>&Uuml;&ccedil; durumlu RFC2616 HTTP &ouml;nbelleklemesi</dt>
        <dd>
            <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> ve destek mod&uuml;l&uuml;
            <code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code> akılcı ve HTTP'ye uygun
            &ouml;nbellekleme sağlar. İ&ccedil;eriğin kendisi &ouml;nbellekte saklanır ve
            <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&ouml;l&uuml;m&uuml;</a>nde a&ccedil;ıklandığı gibi, i&ccedil;eriğin
            &ouml;nbelleklenebilirliğini denetleyen &ccedil;eşitli HTTP başlıklarının ve
            se&ccedil;eneklerinin t&uuml;m&uuml;n&uuml; onurlandırmayı hedefler.
            Devingen yerel i&ccedil;erik veya vekalet edilen i&ccedil;erik ile ilgilendiğiniz
            durumda veya muhtemel bir yavaş disk &uuml;zerinde yerel dosyalara
            erişimi hızlandırmak ihtiyacında olduğunuz durumda
            <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> hem basit hem de karmaşık &ouml;nbellekleme
            yapılandırmalarını hedefler.
        </dd>
        <dt>İki durumlu anahtar/değer paylaşımlı nesne &ouml;nbellekleme</dt>
        <dd>
            <a href="socache.html">Paylaşımlı nesne &ouml;nbellek API'si</a>
            (socache) ve destek mod&uuml;lleri sunucu taraflı bir anahtar/değer
            paylaşımlı nesne &ouml;nbelleklemesi sağlar. Bu mod&uuml;ller SSL oturumları
            ve kimlik doğrulama bilgileri gibi d&uuml;ş&uuml;k seviyeli verileri
            &ouml;nbelleklemek i&ccedil;in tasarlanmıştır. Destek mod&uuml;lleri verinin sunucu
            tarafı bir paylaşımlı bellekte veya veri merkezi tarafı memcache
            veya distcache gibi bir &ouml;nbellekte saklanmasını m&uuml;mk&uuml;n kılar.
        </dd>
        <dt>Uzmanlaşmış dosya &ouml;nbellekleme</dt>
        <dd>
            <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> dosyaların sunucunun başlatılması
            sırasında  belleğe y&uuml;klenmesi ile ilgilenir. B&ouml;ylece dosyalara
            erişim zamanını kısaltabilir, sık&ccedil;a erişilen dosyaların dosya
            tanıtıcılarını kaydedebilir, her istekte diske gitme ihtiyacını
            ortadan kaldırır.
        </dd>
    </dl>

    <p>Bu belgeden azami yararı sağlayabilmek i&ccedil;in temel bir HTTP bilginizin
      olması ve <a href="urlmapping.html">URL'lerin Dosya Sistemine
      Eşlenmesi</a> ile <a href="content-negotiation.html">İ&ccedil;erik Uzlaşımı</a>
      belgelerini okumuş olmanız gerekir.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="http-caching">&Uuml;&ccedil; durumlu RFC2616 HTTP &ouml;nbelleklemesi <a title="Permanent link" href="#http-caching" class="permalink">&para;</a></h2>

    

    <table class="related"><tr><th>İlgili Mod&uuml;ller</th><th>İlgili Y&ouml;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>

    <p>HTTP protokol&uuml;
      <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html">RFC2616'nın 13. b&ouml;l&uuml;m&uuml;</a>nde a&ccedil;ıklanan satıri&ccedil;i &ouml;nbellekleme
      mekanizması i&ccedil;in yerleşik bir destek i&ccedil;erir ve bunun getirilerinden
      yararlanmak i&ccedil;in <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> mod&uuml;l&uuml; kullanılabilir.</p>

    <p>İ&ccedil;eriğin taze olmadığı durumda i&ccedil;eriğin kaybolmasına sebep olan basit
      iki durumlu anahtar/değer &ouml;nbelleklemesinin tersine, HTTP &ouml;nbelleği
      eskimiş i&ccedil;eriği tutan ve bu eski i&ccedil;eriğin değişip değişmediğini &ouml;zg&uuml;n
      sunucuya soran ve duruma g&ouml;re onu tekrar taze duruma getiren bir
      mekanizma i&ccedil;erir.</p>

    <p>HTTP &ouml;nbelleğinde bulunan bir girdi şu &uuml;&ccedil; durumdan birinde olabilir:</p>

    <dl>
    <dt>Taze</dt>
    <dd>
        İ&ccedil;erik yeteri kadar yeni (<strong>tazelik &ouml;mr&uuml;</strong>nden daha gen&ccedil;)
        ise <strong>taze</strong> sayılır. Bir HTTP &ouml;nbelleği b&ouml;yle bir i&ccedil;eriği
        &ouml;zg&uuml;n sunucuya birşey sormadan sunabilir.
    </dd>
    <dt>Bayat</dt>
    <dd>
        <p>İ&ccedil;erik &ccedil;ok eski (<strong>tazelik &ouml;mr&uuml;</strong>nden daha yaşlı)
        ise <strong>bayat</strong> sayılır. Bir HTTP &ouml;nbelleği b&ouml;yle bir
        i&ccedil;eriği istemciye sunmadan &ouml;nce &ouml;zg&uuml;n sunucuya bağlanıp bayat i&ccedil;eriğin
        hala yeterince taze olup olmadığına bakmalıdır. &Ouml;zg&uuml;n sunucu, i&ccedil;erik
        ge&ccedil;ersizse yenisini g&ouml;nderecektir, aksi takdirde, (ideal olanı budur)
        i&ccedil;eriğin hala ge&ccedil;erli olduğunu belirten bir kod ile yanıt verecektir.
        İ&ccedil;erik tekrar taze hale gelince s&uuml;re&ccedil; kaldığı yerden devam eder.</p>

        <p>HTTP protokol&uuml; belli koşullar altında &ouml;nbelleğin bayat i&ccedil;eriği
        sunmasına izin vermez. &Ouml;rneğin, bir i&ccedil;eriği &ouml;zg&uuml;n sunucuda tazeleme
        &ccedil;abasının bir 5xx hatasıyla başarısız olması veya başka bir tazeleme
        isteğinin hen&uuml;z sonu&ccedil;lanmamış olması bu &ccedil;eşit koşullardandır. Bu
        durumlarda yanıta bir <code>Warning</code> başlığı eklenir.</p>
    </dd>
    <dt>Yok</dt>
    <dd>
        &Ouml;nbellekte yer kalmazsa yer a&ccedil;mak i&ccedil;in i&ccedil;eriğin silinmesi se&ccedil;enek
        dahilindedir. İ&ccedil;erik taze olsun olmasın her zaman silinebilir. &Ouml;nlem
        olarak <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code> elle veya bir artalan s&uuml;reci
        olarak &ccedil;alıştırılabilir. B&ouml;ylece &ouml;nbelleğin boyutunun belirtilen
        boyutta veya belirtilen dosya d&uuml;ğ&uuml;m&uuml; sayısında kalması sağlanabilir.
        Ara&ccedil; i&ccedil;eriği silerken bayat i&ccedil;eriğe &ouml;ncelik verir.
    </dd>
    </dl>

    <p>HTTP &ouml;nbelleklemesinin &ccedil;alışması ile ilgili b&uuml;t&uuml;n ayrıntılar
    <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html">RFC2616'nın 13. b&ouml;l&uuml;m&uuml;nde</a> bulunabilir.</p>

    <h3>Sunucu ile etkileşim</h3>
      

      <p><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> mod&uuml;l&uuml;
      <code class="directive"><a href="./mod/mod_cache.html#cachequickhandler">CacheQuickHandler</a></code> y&ouml;nergesinin
      değerine bağlı olarak iki olası yerde sunucuya bağlanır:
      </p>

      <dl>
      <dt>&Ccedil;abuk eylem aşaması</dt>
      <dd>
          <p>Bu aşama &ccedil;ok erken ger&ccedil;ekleşen bir aşama olup isteğin işlenmesi
          sırasında isteğin &ccedil;&ouml;z&uuml;mlenmesinin hemen sonrasıdır. İ&ccedil;erik
          &ouml;nbellekte mevcutsa hemen sunulur ve geri kalan istek işleme işlemi
          iptal edilir.</p>

          <p>Bu senaryoda &ouml;nbellek sunucunun &ouml;n&uuml;ne vidalanmış gibi
          davranır.</p>

          <p>Sunucuda ger&ccedil;ekleşecek bir dizi işlemin b&uuml;y&uuml;k &ccedil;oğunluğunun
          yapılmadan ge&ccedil;ilmesi nedeniyle bu en y&uuml;ksek başarımlı kiptir.
          Bu kip ayrıca, sunucu işlemlerinin kimlik doğrulama ve yetkilendirme
          aşamalarının da yapılmadan ge&ccedil;ilmesini sağlar. Bu bakımdan bu kip
          se&ccedil;ilirken bu durum dikkate alınmalıdır.</p>

          <p>"Authorization" başlığı i&ccedil;eren istekler (&ouml;rneğin, HTTP Temel
          Kimlik Kanıtlaması gibi) <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> bu kipte
          &ccedil;alışırken &ouml;nbelleğe alınmadıkları gibi &ouml;nbellekten bir işleme de
          sokulmazlar.</p>
      </dd>
      <dt>Normal eylem aşaması</dt>
      <dd>
          <p>Bu aşama ge&ccedil; bir aşama olup, isteğin tamamen işlenmesinin
          sonrasıdır.</p>

          <p>Bu senaryoda &ouml;nbellek sunucunun arkasına vidalanmış gibi
          davranır.</p>

          <p>Bu kip en esneğidir. &Ouml;nbelleğin, s&uuml;zme zincirinin hassas olarak
          denetlenen bir noktasında oluşması sağlanabilir ve &ouml;nbelleklenen
          i&ccedil;erik istemciye g&ouml;nderilmeden &ouml;nce s&uuml;z&uuml;l&uuml;p
          kişiselleştirilebilir.</p>
          </dd>
        </dl>

        <p>URL &ouml;nbellekte yoksa <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> mod&uuml;l&uuml; yanıtı
          &ouml;nbelleğe kaydetme aşamasında s&uuml;zge&ccedil; yığıtına bir
          <a href="filter.html">s&uuml;zge&ccedil;</a> ekler ve geri &ccedil;ekilerek normal istek
          işlemlerinin devam etmesine izin verir. İ&ccedil;eriğin &ouml;nbelleklenebilir
          olduğu saptanırsa i&ccedil;erik gelecekte sunulmak &uuml;zere &ouml;nbelleğe
          kaydedilir, aksi takdirde i&ccedil;erik yok sayılır.</p>

        <p>&Ouml;nbellekteki i&ccedil;erik bayatsa, <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> mod&uuml;l&uuml;
          isteği bir <strong>koşullu istek</strong> haline getirir. &Ouml;zg&uuml;n
          sunucu normal bir yanıt verirse bu yanıt mevcut i&ccedil;eriğin yerine
          &ouml;nbelleklenir. &Ouml;zg&uuml;n sunucu bir <code>304 Not Modified</code> yanıtı
          verirse i&ccedil;erik tekrar taze olarak imlenir ve &ouml;nbellekteki i&ccedil;erik
          s&uuml;zge&ccedil; tarafından kaydedilmeden sunulur.</p>
    

    <h3>&Ouml;nbelleğin Hızlandırılması</h3>
      

      <p>Bir sanal konak bir&ccedil;ok farklı sunucu takma adından biri olarak
        bilindiği takdirde <code class="directive"><a href="./mod/core.html#usecanonicalname">UseCanonicalName</a></code> y&ouml;nergesine <code>On</code>
        değeri atanmışsa &ouml;nbellekten sunulan sayfa sayısında b&uuml;y&uuml;k bir artış
        olduğu g&ouml;r&uuml;l&uuml;r. Bunun sebebi i&ccedil;eriği sunan sanal konağın isminin
        &ouml;nbellek anahtarının i&ccedil;inde kullanılmasıdır. Y&ouml;nergeye
        <code>On</code> değerini atamak suretiyle &ccedil;ok isimli ve rumuzlu sanal
        konaklar i&ccedil;in farklı &ouml;nbellek girdileri oluşturulmaz, bunun yerine her
        meşru sanal konak i&ccedil;in ayrı bir &ouml;nbellek tutulur.</p>
    

    <h3>Tazelik &Ouml;mr&uuml;</h3>
      

      <p>&Ouml;nbelleklenmek &uuml;zere tasarlanmış iyi bi&ccedil;imli bir i&ccedil;erik tazelik &ouml;mr&uuml;n&uuml;
        <code>Cache-Control</code> başlığının  <code>max-age</code> veya
        <code>s-maxage</code> alanlarıyla ya da bir <code>Expires</code>
        başlığını i&ccedil;ererek bildirmelidir.</p>

      <p>Aynı zamanda, &ouml;zg&uuml;n sunucunun tanımladığı tazelik &ouml;mr&uuml;, bir istemci
        tarafından istekte bir <code>Cache-Control</code> başlığı kullanılarak
        ge&ccedil;ersiz kılınmak istenebilir. Bu durumda hangi tazelik &ouml;mr&uuml; daha
        kısaysa o ge&ccedil;erli olur.</p>

      <p>Tazelik &ouml;mr&uuml; istekte veya yanıtta mevcut değilse &ouml;ntanımlı bir tazelik
        &ouml;mr&uuml; kullanılır. &Ouml;ntanımlı tazelik &ouml;mr&uuml; &ouml;nbellekli i&ccedil;erik i&ccedil;in bir saat
        olmakla birlikte <code class="directive"><a href="./mod/mod_cache.html#cachedefaultexpire">CacheDefaultExpire</a></code> y&ouml;nergesi
        kullanılarak kolayca değiştirilebilir.</p>

      <p>Bir yanıt <code>Expires</code> başlığını değil de
        <code>Last-Modified</code> başlığını i&ccedil;eriyorsa
        <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> tazelik &ouml;mr&uuml;n&uuml; <code class="directive"><a href="./mod/mod_cache.html#cachelastmodifiedfactor">CacheLastModifiedFactor</a></code> y&ouml;nergesine
        bakarak saptar.</p>

      <p>Yerel i&ccedil;erik i&ccedil;in, ya da kendi <code>Expires</code> başlığını
        tanımlamayan uzak i&ccedil;erik i&ccedil;in tazelik &ouml;mr&uuml;n&uuml; <code>max-age</code> ve
        <code>Expires</code> ekleyerek hassas olarak ayarlamak
        i&ccedil;in <code class="module"><a href="./mod/mod_expires.html">mod_expires</a></code> kullanılabilir.</p>

      <p>Tazelik &ouml;mr&uuml;n&uuml;n &uuml;st sınırı <code class="directive"><a href="./mod/mod_cache.html#cachemaxexpire">CacheMaxExpire</a></code> y&ouml;nergesi ile
        belirlenebilir.</p>
    

    <h3>Şartlı İstekler i&ccedil;in &Ouml;zl&uuml; Kılavuz</h3>
      

      <p>&Ouml;nbellekteki i&ccedil;eriğin zaman aşımına uğrayıp bayat hale gelmesi,
        httpd'nin &ouml;zg&uuml;n isteği aktarmak yerine isteği değişikliğe uğratarak
        şartlı bir istek yapması sonucunu doğurur.</p>

      <p>&Ouml;zg&uuml;n &ouml;nbellekli yanıtta bir <code>ETag</code> başlığı mevcutsa,
        <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> mod&uuml;l&uuml; &ouml;zg&uuml;n sunucuya yapılan isteğe
        bir <code>If-None-Match</code> başlığı ekler.
        &Ouml;zg&uuml;n &ouml;nbellekli yanıtta bir <code>Last-Modified</code> başlığı
        mevcutsa, <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> mod&uuml;l&uuml; &ouml;zg&uuml;n sunucuya yapılan
        isteğe bir <code>If-Modified-Since</code> başlığı ekler. Bunlardan
        birinin varlığı isteği <strong>koşullu</strong> yapar.</p>

      <p>Bir koşullu istek &ouml;zg&uuml;n sunucu tarafından alındığında, &ouml;zg&uuml;n sunucu
        <code>ETag</code> veya <code>Last-Modified</code> başlığının isteğe
        uygun olarak değişip değişmediğine bakmalıdır. Değişmemişse, &ouml;zg&uuml;n
        sunucu kısa ve &ouml;z bir "304 Not Modified" yanıtı ile yanıt vermelidir.
        Bunun &ouml;nbellekteki anlamı şudur: Eskimiş i&ccedil;erik hala tazedir ve i&ccedil;erik
        yeni tazelik &ouml;mr&uuml;ne ulaşıncaya kadar sonraki isteklerde
        kullanılmalıdır.</p>

      <p>İ&ccedil;erik değişmişse, bir şartlı istek yapılmamış gibi i&ccedil;eriğin kendisi
        sunulur.</p>

      <p>Şartlı istekler &ccedil;ifte yarar sağlar. Birinci olarak, b&ouml;yle bir istek
        &ouml;zg&uuml;n sunucuya yapılıyorsa ve iki i&ccedil;erik de aynıysa bunu saptamak kolay
        olur ve &ouml;zkaynağın tamamını aktarma k&uuml;lfetinden kurtulunur.</p>

      <p>İkinci olarak, iyi tasarlanmış bir &ouml;zg&uuml;n sunucu, koşullu istekler tam
        bir yanıt &uuml;retmekten &ouml;nemli &ouml;l&ccedil;&uuml;de ucuz olacak şekilde tasarlanmış
        olacaktır. Durağan dosyalar i&ccedil;in bu genellikle
        <code>stat()</code> veya  benzeri bir sistem &ccedil;ağrısıyla dosya
        boyutları ve değişiklik zamanına bakmak şeklinde ger&ccedil;ekleşir.
        B&ouml;ylelikle, yerel i&ccedil;eriği bir değişiklik olmadığı takdirde &ouml;nbellekten
        sunmak daha hızlı olacaktır.</p>

      <p>&Ouml;zg&uuml;n sunucular koşullu istekleri desteklemek i&ccedil;in her t&uuml;rl&uuml; &ccedil;abayı
        g&ouml;stermelidir. Ancak, koşullu istekler desteklenmiyorsa, &ouml;zg&uuml;n sunucu
        istek koşullu değilmiş gibi yanıt vermeli, &ouml;nbellek ise, i&ccedil;erik
        değişmiş ve yani i&ccedil;erik &ouml;nbelleğe kaydedilmiş gibi yanıt vermelidir. Bu
        durumda, &ouml;nbellek basit bir iki durumlu (i&ccedil;erik ya tazedir ya da
        silinmiş) &ouml;nbellek gibi davranacaktır.</p>
    

    <h3>Neler &Ouml;nbelleklenebilir?</h3>
      

      <p>HTTP &ouml;nbelleğin tarafından &ouml;nbelleklenebilecek i&ccedil;erik
<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.4">
       RFC2616 Section 13.4 Response Cacheability</a> belgesinde tanımlanmış
       olup, bunlar ş&ouml;yle &ouml;zetlenebilir:</p>

      <ol>
        <li>&Ouml;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&ouml;nergelerine bakınız.</li>

        <li>Yanıtın HTTP durum kodu 200, 203, 300, 301 veya 410 olmalıdır.</li>
        
        <li>Yanıtın HTTP durum kodu 200, 203, 300, 301 veya 410 değilse 
          yanıtın ayrıca, "Expires" veya "Cache-Control" başlığı da i&ccedil;ermesi 
          gerekir.</li>

        <li>İstek bir HTTP GET isteği olmalıdır.</li>

        <li>Eğer yanıt bir "Authorization:" başlığı i&ccedil;eriyorsa ayrıca
          "Cache-Control:" başlığında da "s-maxage", "must-revalidate" veya
          "public" değerlerinden birini i&ccedil;ermelidir, aksi takdirde
          &ouml;nbelleklenmez.</li>

        <li>Eğer URL (GET y&ouml;ntemi kullanan bir HTML formunun yaptığı gibi) bir
          sorgu dizgesi i&ccedil;eriyorsa  yanıt, RFC2616'nın 13.9. b&ouml;l&uuml;m&uuml;nde
          a&ccedil;ıklandığı gibi bir "Expires:" başlığı i&ccedil;ermedik&ccedil;e veya
          "Cache-Control:" başlığının max-age veya max-age y&ouml;nergesini
          i&ccedil;ermedik&ccedil;e yanıt i&ccedil;eriği &ouml;nbelleğe alınmayacaktır.</li>

        <li><code class="directive"><a href="./mod/mod_cache.html#cacheignorenolastmod">CacheIgnoreNoLastMod</a></code>
          y&ouml;nergesinin kullanımını gerektiren bir durum olmadık&ccedil;a 200 durum
          koduna sahip bir yanıtın "Etag", "Last-Modified" ve "Expires"
          başlıklarından birini veya "Cache-Control:" başlığının "max-age" veya
          "s-maxage" y&ouml;nergelerinden birini (en azından) i&ccedil;ermesi gerekir.</li>

        <li><code class="directive"><a href="./mod/mod_cache.html#cachestoreprivate">CacheStorePrivate</a></code>
          y&ouml;nergesinin kullanımını gerektiren bir durum olmadık&ccedil;a yanıt
          "private" değerli bir "Cache-Control:" başlığı i&ccedil;erdiği takdirde
          yanıtın i&ccedil;eriği &ouml;nbelleğe alınmayacaktır.</li>

        <li>Benzer şekilde, <code class="directive"><a href="./mod/mod_cache.html#cachestorenostore">CacheStoreNoStore</a></code> y&ouml;nergesi kullanılmamışsa yanıt
          "no-store" değerli bir "Cache-Control:" başlığı i&ccedil;eriyorsa yanıt
          i&ccedil;eriği &ouml;nbelleğe alınmayacaktır.</li>

        <li>Herşeyle eşleşen "*" değerli bir "Vary:" başlığı i&ccedil;eren bir
          yanıtın i&ccedil;eriği &ouml;nbelleğe alınmaz.</li>
      </ol>
    

    <h3>Neler &Ouml;nbelleklenmemeli?</h3>
      

      <p>İ&ccedil;erik zamana bağımlıysa ya da istek kısmen bile olsa HTTP uzlaşımıyla
        bağdaşmıyorsa &ouml;nbelleğe alınmamalıdır. Bu i&ccedil;erik &ouml;nbelleklenemeyeceğini
        <code>Cache-Control</code> başlığını kullanarak sunucuya
        bildirmelidir.</p>

      <p>İ&ccedil;erik sık&ccedil;a değişiyorsa, tazelik &ouml;mr&uuml; dakikalar veya saniyelerle
        ifade ediliyorsa, i&ccedil;erik yine de &ouml;nbelleklenebilir. Ancak, tam
        yanıtların d&uuml;zenli olarak &uuml;retilmemesinin temini i&ccedil;in  &ouml;zg&uuml;n sunucunun
        <strong>koşullu istekleri</strong> doğru olarak desteklemesi
        sağlanmalıdır.</p>

      <p>İstemcinin sağladığı istek başlıklarına dayanarak değişen i&ccedil;erik,
        <code>Vary</code> yanıt başlığının akıllıca kullanımıyla
        &ouml;nbelleklenebilir.</p>
    

    <h3>Değişken/Uzlaşımlı İ&ccedil;erik</h3>
      

      <p>&Ouml;zg&uuml;n sunucu, istekteki başlık değerlerine dayanarak farklı
        i&ccedil;eriklerle yanıt vermeye ayarlandığı takdirde, &ouml;rneğin aynı URL'de
        farklı dillerde i&ccedil;erik sunmak gibi, HTTP'nin &ouml;nbellekleme mekanizması
        aynı URL'de aynı sayfanın değişik s&uuml;r&uuml;mlerini &ouml;nbelleklemeyi m&uuml;mk&uuml;n
        kılar.</p>

      <p>Bu &ouml;zg&uuml;n sunucu tarafından bir <code>Vary</code> başlığı eklenerek
        yapılır. Bir sayfanın farklı s&uuml;r&uuml;mleri arasındaki farkları saptarken
        &ouml;nbellek tarafından hangi başlıkların hesaba katılacağını
        <code>Vary</code> başlığı belirler.</p>

      <p>&Ouml;rneğin, bir yanıt ş&ouml;yle bir başlık ile alınmışsa,</p>

      <div class="example"><p><code>
        Vary: negotiate,accept-language,accept-charset
      </code></p></div>

      <p><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> sadece accept-language ve accept-charset
        başlıkları &ouml;zg&uuml;n istekle eşleşen &ouml;nbellekli i&ccedil;eriği sunacaktır.</p>

      <p>İ&ccedil;eriğin farklı s&uuml;r&uuml;mleri yan yana &ouml;nbelleklenebilir.
        <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> mod&uuml;l&uuml; <code>Vary</code> başlığını
        kullanarak başlıkta listelenmiş istek başlıklarının uygun değerlerini
        saptar ve istemciye hangi s&uuml;r&uuml;mle yanıt verileceğine karar verir.</p>
    

  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="examples">&Ouml;nbellek Ayarlama &Ouml;rnekleri <a title="Permanent link" href="#examples" class="permalink">&para;</a></h2>

    

    <table class="related"><tr><th>İlgili Mod&uuml;ller</th><th>İlgili Y&ouml;nergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code></li><li><code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code></li><li><code class="module"><a href="./mod/mod_cache_socache.html">mod_cache_socache</a></code></li><li><code class="module"><a href="./mod/mod_socache_memcache.html">mod_socache_memcache</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_disk.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="./mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="./mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="./mod/mod_cache_socache.html#cachesocache">CacheSocache</a></code></li></ul></td></tr></table>

    <h3 id="disk">Disk &Uuml;zerinde &Ouml;nbellekleme</h3>
      

      <p><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> mod&uuml;l&uuml; &ouml;nbelleği y&ouml;netmek i&ccedil;in &ccedil;eşitli
      depolama ortamlarına &ouml;zg&uuml; ger&ccedil;eklenimleri kullanır. Diske &ouml;nbellekleme
      desteğini <code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code> sağlar.</p>

      <p>Tipik olarak mod&uuml;l ş&ouml;yle yapılandırılır:</p>

      <pre class="prettyprint lang-config">CacheRoot   "/var/cache/apache/"
CacheEnable disk /
CacheDirLevels 2
CacheDirLength 1</pre>


      <p>En &ouml;nemlisi &ouml;nbelleklenen dosyaların yerel olarak saklanması olup
        işletim sisteminin sağladığı belleki&ccedil;i &ouml;nbelleklemeden de ayrıca
        faydalanılmış olur. Bu bakımdan, dosyalar disk &uuml;zerinde saklansa bile
        sık&ccedil;a erişilen dosyalar işletim sistemi sayesinde aslında bellekten
        sunulmuş olacaklardır.</p>
    

    <h3>&Ouml;nbellekte Saklamanın Anlamı</h3>
      

      <p><code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code> &ouml;ğeleri &ouml;nbellekte saklamak i&ccedil;in
        istek yapılan URL'nin 22 karakterlik &ouml;zetini oluşturur. Bu &ouml;zet, &ccedil;ok
        sayıda URL'nin aynı &ouml;zeti oluşturmaması i&ccedil;in konak ismi, protokol,
        port ve varsa CGI arg&uuml;manlarından başka <code>Vary</code> başlığında
        tanımlı elemanlardan oluşur.</p>

      <p>&Ouml;zeti oluşturan karakterler 64 karakterlik bir karakter k&uuml;mesinden
        se&ccedil;ildiğinden oluşturulması olası farklı &ouml;zet sayısı 64^22'dir.
        &Ouml;rneğin, bir URL'nin <code>xyTGxSMO2b68mBCykqkp1w</code> gibi bir
        &ouml;zeti olabilir. Bu &ouml;zet, bu URL ile erişilen dosyalar &ouml;nbellek i&ccedil;inde
        saklanırken dosya ismi &ouml;neki olarak kullanılır. Ancak bununla
        yetinilmez ve i&ccedil;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&ouml;nergelerinin
        değerlerine g&ouml;re &ouml;nce dizinlere ayrılır.</p>

      <p><code class="directive"><a href="./mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code>
        y&ouml;nergesi ka&ccedil; alt seviye dizin olacağını ve <code class="directive"><a href="./mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code> her dizinde ka&ccedil;
        karakter olacağını belirler. &Ouml;rneğin, yukarıdaki
        &ouml;zete sahip bir dosyanın isminin başına yukarıdaki yapılandırma
        &ouml;rneğine uygun olarak
        <code>/var/cache/apache/x/y/TGxSMO2b68mBCykqkp1w</code> gibi bir &ouml;nek
        getirilebilirdi.</p>

      <p>Bu tekniğin asıl amacı belli bir dizin i&ccedil;inde bulunabilecek
        dosyaların ve alt dizinlerin sayısını d&uuml;ş&uuml;k tutmaktır. Bu sayının
        b&uuml;y&uuml;k olması &ccedil;oğu işletim sisteminde başarımın d&uuml;şmesine sebep olur.
        <code class="directive"><a href="./mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code>
        y&ouml;nergesi "1" değeriyle kullanıldığında her dizin altında en fazla 64
        alt dizin veya dosya a&ccedil;ılabilir. "2" değeriyle kullanıldığında ise bu
        sayı 64^2'ye y&uuml;kselir ve b&ouml;yle artarak gider. İyi bir sebebiniz
        olmadık&ccedil;a <code class="directive"><a href="./mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code> i&ccedil;in değer olarak
        "1" belirtmenizi &ouml;neririz.</p>

      <p><code class="directive"><a href="./mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code>
        y&ouml;nergesine atanacak değer &ouml;nbellekte saklamayı d&uuml;ş&uuml;nd&uuml;ğ&uuml;n&uuml;z olası
        dosya sayısı ile ilgilidir. Yukarıdaki &ouml;rnekte olduğu gibi "2"
        değerini belirtirseniz, toplamda en fazla 4096 dizin oluşturulabilir.
        1 milyon dosyanın &ouml;nbelleklendiği bir durumda bu, her dizinde yaklaşık
        olarak 245 &ouml;nbelleklenmiş URL demektir.</p>

      <p>Her URL i&ccedil;in &ouml;nbellekte en az iki dosya saklanır. Biri genellikle URL
        hakkındaki temel verilerden oluşan ".header" dosyasıdır, diğeri ise
        sunulacak i&ccedil;eriğin bire bir kopyası olan ".data" dosyasıdır.</p>

      <p>"Vary" başlığı &uuml;zerinden i&ccedil;eriğin uzlaşıldığı durumda URL i&ccedil;in bir
        ".vary" dizini oluşturulur. Bu dizin her biri farklı bir uzlaşıma ait
        &ccedil;ok sayıda ".data" dosyası i&ccedil;erebilir.</p>
    

    <h3>Disk &Ouml;nbelleğinin Bakımı</h3>
      

      <p><code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code> zaman aşımına uğrayan &ouml;nbellekli
        i&ccedil;eriği silse de &ouml;nbelleğin toplam boyu ve ne kadar boş bellek kaldığı
        hakkında bilgi vermez.</p>

      <p>Bunun yerine httpd &ouml;nbellek i&ccedil;eriğini d&uuml;zenli aralıklarla
        temizleyebilmeniz i&ccedil;in <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code> adında bir ara&ccedil;
        i&ccedil;erir.  &Ouml;nbellek i&ccedil;in azami ne kadar yer kullanılacağının ve bunun
        &uuml;zerinde <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code>'i hangi sıklıkta
        &ccedil;alıştırılacağının tespiti biraz karmaşık bir işlem olup uygun değerler
        genellikle deneme yanılma yoluyla bulunur.</p>

      <p><code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code> iki işlem kipine sahiptir. Kalıcı bir
        artalan s&uuml;reci olarak &ccedil;alışabileceği gibi cron &uuml;zerinden belli
        aralıklarla da &ccedil;alıştırılabilir. &Ccedil;ok b&uuml;y&uuml;k (onlarca GB) &ouml;nbelleklerde
        <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code>'in işini bitirmesi 1 saatten fazla
        s&uuml;rebileceğinden, cron ile &ccedil;alıştırma durumunda aynı anda birden fazla
        kopyanın &ccedil;alışıyor durumda olmaması i&ccedil;in
        <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code>'in &ccedil;alıştırılma aralığını iyi
        belirlemek gerekir.</p>

      <p>Ayrıca, <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code> i&ccedil;in uygun bir "nice" seviyesi
        se&ccedil;ilmesi &ouml;nerilr. B&ouml;ylece, sunucu &ccedil;alışırken aracın &ouml;l&ccedil;&uuml;s&uuml;z disk g/&ccedil;
        yapmasına sebebiyet verilmemiş olur.</p>

      <p class="figure">
      <img src="images/caching_fig1.tr.png" alt="" width="600" height="406"><br>
      <a id="figure1" name="figure1"><dfn>Şekil 1</dfn></a>:
 &Ouml;nbelleğin b&uuml;y&uuml;mesi ve d&uuml;zenli aralıklarla temizlenmesi.</p>

      <p><code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code> ne kadar bellek kullanıldığı hakkında
        bilgi vermediğinden, <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code>'in bir temizliğin
        ardından yeterli bir b&uuml;y&uuml;me alanı kalacak şekilde yapılandırılması
        temin edilmelidir.</p>
    
    
    <h3 id="memcache">memcached ile &ouml;nbellekleme</h3>
      

      <p><code class="module"><a href="./mod/mod_cache_socache.html">mod_cache_socache</a></code> mod&uuml;l&uuml;n&uuml; kullanarak, 
        <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> &ccedil;eşitli ger&ccedil;eklenimlerden (diğer adıyla: 
        "sağlayıcılar"dan) gelen veriyi &ouml;nbellekleyebilir.   
        <code class="module"><a href="./mod/mod_socache_memcache.html">mod_socache_memcache</a></code> mod&uuml;l&uuml; kullanılarak, &ouml;rneğin, 
        artalan saklama mekanizması olarak 
        <a href="http://memcached.org">memcached</a> kullanıldığı 
        s&ouml;ylenebilir.</p>

      <p>Genelde mod&uuml;l ş&ouml;yle yapılandırılır:</p>

      <pre class="prettyprint lang-config">CacheEnable socache /
CacheSocache memcache:memcd.example.com:11211</pre>


      <p>İlave <code>memcached</code> sunucular 
        <code>CacheSocache memcache:</code> satırının ardına virg&uuml;llerle 
        ayrılarak eklenebilir:</p>

      <pre class="prettyprint lang-config">CacheEnable socache /
CacheSocache memcache:mem1.example.com:11211,mem2.example.com:11212</pre>


      <p>Bu bi&ccedil;im diğer <code class="module"><a href="./mod/mod_cache_socache.html">mod_cache_socache</a></code> sağlayıcıları i&ccedil;in de kullanılabilir:</p>

      <pre class="prettyprint lang-config">CacheEnable socache /
CacheSocache shmcb:/path/to/datafile(512000)</pre>


      <pre class="prettyprint lang-config">CacheEnable socache /
CacheSocache dbm:/path/to/datafile</pre>


    

  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="socache-caching">Genel İki durumlu Anahtar/Değer Paylaşımlı Nesne &Ouml;nbellekleme <a title="Permanent link" href="#socache-caching" class="permalink">&para;</a></h2>
    

    <table class="related"><tr><th>İlgili Mod&uuml;ller</th><th>İlgili Y&ouml;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>

    <p>Apache HTTP sunucusu, SSL oturumları, kimlik doğrulama bilgileri gibi
      &ouml;nbelleklenebilen &ouml;zel bilgiler i&ccedil;in <a href="socache.html">socache</a>
      aray&uuml;z&uuml; i&ccedil;inde d&uuml;ş&uuml;k seviyeli bir paylaşımlı nesne &ouml;nbelleğine
      sahiptir.</p>

    <p>Her ger&ccedil;eklenime uygun ek mod&uuml;ller de sağlanmıştır:</p>

    <dl>
    <dt><code class="module"><a href="./mod/mod_socache_dbm.html">mod_socache_dbm</a></code></dt>
    <dd>DBM tabanlı paylaşımlı nesne &ouml;nbelleklemesi.</dd>
    <dt><code class="module"><a href="./mod/mod_socache_dc.html">mod_socache_dc</a></code></dt>
    <dd>Distcache tabanlı paylaşımlı nesne &ouml;nbelleklemesi.</dd>
    <dt><code class="module"><a href="./mod/mod_socache_memcache.html">mod_socache_memcache</a></code></dt>
    <dd>Memcache tabanlı paylaşımlı nesne &ouml;nbelleklemesi.</dd>
    <dt><code class="module"><a href="./mod/mod_socache_shmcb.html">mod_socache_shmcb</a></code></dt>
    <dd>Paylaşımlı belleğe dayalı paylaşımlı nesne &ouml;nbelleklemesi.</dd>
    </dl>

    <h3 id="mod_authn_socache-caching">Kimlik Doğrulama Bilgilerinin &Ouml;nbelleklenmesi</h3>
      

      <table class="related"><tr><th>İlgili Mod&uuml;ller</th><th>İlgili Y&ouml;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>

      <p><code class="module"><a href="./mod/mod_authn_socache.html">mod_authn_socache</a></code> mod&uuml;l&uuml; kimlik doğrulama ara&ccedil;larının
        y&uuml;k&uuml;n&uuml;n hafifletilmesini, kimlik doğrulama sonucunun &ouml;nbelleklenmesini
        sağlar.</p>
    

    <h3 id="mod_ssl-caching">SSL Oturumlarının &Ouml;nbelleklenmesi</h3>
      

      <table class="related"><tr><th>İlgili Mod&uuml;ller</th><th>İlgili Y&ouml;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>

      <p><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code> mod&uuml;l&uuml;, oturum &ouml;nbelleği ve &ouml;nbellek
       zımbalaması sağlamak i&ccedil;in <code>socache</code> aray&uuml;z&uuml;n&uuml; kullanır.</p>
    
  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="file-caching">Uzmanlaşmış Dosya &Ouml;nbellekleme <a title="Permanent link" href="#file-caching" class="permalink">&para;</a></h2>
    

     <table class="related"><tr><th>İlgili Mod&uuml;ller</th><th>İlgili Y&ouml;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>

    <p>Dosya sisteminin yavaş olabildiği veya dosya tanıtıcılarının
      kullanımının pahalıya mal olduğu sistemlerde, sunucunun başlatılması
      sırasında dosyaların belleğe y&uuml;klenmesi se&ccedil;eneği vardır.</p>

    <p>Dosyaların a&ccedil;ılmasının yavaş olduğu sistemlerde, dosyaların sunucunun
      başlatılması sırasında a&ccedil;ılması ve dosya tanıtıcısını &ouml;nbelleklenmesi
      se&ccedil;eneği vardır. Bu se&ccedil;eneklerin duruk dosyalara erişimin yavaş olduğu
      sistemlere de bir yardımı olabilir.</p>

    <h3 id="filehandle">Dosya Tanıtıcı &Ouml;nbelleklemesi</h3>
      

      <p>Bir dosyanın a&ccedil;ılması işlemi, &ouml;zellikle de ağ dosya sistemlerinde
        bulunan dosyalar i&ccedil;in &ouml;nemli bir gecikme kaynağı olabilir. &Ouml;nbellekte,
        &ccedil;ok sunulan dosyaların kendilerinin değil, a&ccedil;ık dosya tanıtıcılarının
        saklanması httpd'yi bu t&uuml;r gecikmelerden koruyabilir. httpd'de tek
        t&uuml;rde dosya tanıtıcı &ouml;nbelleklemesi yapılabilmektedir.</p>

      <h4><code>CacheFile</code> y&ouml;nergesi ile</h4>
        

        <p>httpd'de mevcut &ouml;nbelleklemenin en temel şekli
          <code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> tarafından sağlanan dosya tanıtıcı
          &ouml;nbelleklemesidir. Bu &ouml;nbellek t&uuml;r&uuml; dosyaların kendilerini değil a&ccedil;ık
          dosya tanıtıcılarının bir listesini saklar. Dosyaların bu anlamda
          &ouml;nbelleklenmesi, <code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code> y&ouml;nergesi yapılandırma dosyasında belirtilerek
          sağlanabilir.</p>

        <p><code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code> y&ouml;nergesi
          belirtilen dosyanın httpd başlatıldığında a&ccedil;ılmasını ve dosya i&ccedil;in
          yapılan sonraki her istekte bu dosya tanıtıcısının kullanılmasını
          sağlar.</p>

        <pre class="prettyprint lang-config">CacheFile /usr/local/apache2/htdocs/index.html</pre>


        <p>B&uuml;y&uuml;k miktarda dosyayı bu anlamda &ouml;nbelleklemeyi tasarlıyorsanız
          işletim sisteminizin a&ccedil;ık dosya tanıtıcılarının sayısı ile ilgili
          sınırlamasını uygun bir değere ayarlamanız gerekebilir.</p>

        <p><code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code> y&ouml;nergesini
          kullandığınız takdirde dosya i&ccedil;eriğindeki değişiklikleri anında
          isteğe yansıtamazsınız. httpd dosyayı ilk başlatıldığındaki haliyle
          sunar.</p>

        <p>Eğer httpd &ccedil;alışırken dosya silinmişse httpd ilk başlatıldığındaki
          haline ilişkin dosya tanıtıcıyı sağlamaya ve dolayısıyla dosya
          i&ccedil;eriğini sunmaya devam edecektir. Yani, dosya silinmiş ve artık
          dosya sisteminde g&ouml;r&uuml;nm&uuml;yor olsa bile httpd durdurulup dosya
          tanıtıcıları kapanmadık&ccedil;a dosyaların silinmesiyle a&ccedil;ılan yer serbest
          kalmayacaktır.</p>
      

    

    <h3 id="inmemory">Sistem Belleğinde &Ouml;nbellekleme</h3>
      

      <p>İ&ccedil;eriğin sistem belleğinden sunulması i&ccedil;erik sunmanın evrensel olarak
      en hızlı yoludur. Dosyaların bir disk denetleyiciden okunması ya da daha
      k&ouml;t&uuml;s&uuml; uzak bir ağdan okunması bellekten okumayla karşılaştırılamayacak
      &ouml;l&ccedil;&uuml;de yavaş işlemlerdir. Disk denetleyiciler genellikle fiziksel
      s&uuml;re&ccedil;leri denetlerler. Ağ erişimi ise band genişliği sınırlamalarından
      etkilenir. Halbuki bellek erişimi sadece nano saniyeler mertebesinde
      ger&ccedil;ekleşir.</p>

      <p>Sistem belleği en pahalı saklama ortamı olması sebebiyle en verimli
      şekilde kullanımı &ouml;nemlidir. Dosyaları sistem belleğinde saklamakla
      sistemin kullanabileceği bellek miktarını azaltmış olursunuz. İşletim
      sistemi &ouml;nbelleklemesinde g&ouml;receğiniz gibi bu &ouml;yle basit bir konu
      değildir. httpd'nin kendi kullandığı belleğin bir kısmını &ouml;nbellek
      olarak ayırırken &ccedil;ok fazla bellek kullanmamak &ouml;nemlidir. Aksi takdirde
      işletim sistemi belleğin yetmediği noktada belleği diske
      takaslayacağından istenen başarım artışı sağlanamayacaktır.</p>

      <h4>İşletim Sistemi &Ouml;nbelleklemesi</h4>
        

        <p>G&uuml;n&uuml;m&uuml;z iştetim sistemlerinin hemen hemen tamamında bellek i&ccedil;i
        dosya/veri saklama işlemlerini &ccedil;ekirdek y&ouml;netir. Bu g&uuml;&ccedil;l&uuml; bir
        &ouml;zelliktir ve işletim sistemlerinin b&uuml;y&uuml;k &ccedil;oğunluğu bunu b&ouml;yle yapar.
        &Ouml;rneğin, Linux'ta bir dosyanın ilk defa okunduğunda ve ikinci kez
        okunduğunda işlemcinin ne kadar meşgul edildiğine bakalım:</p>

        <div class="example"><p><code>
          colm@coroebus:~$ time cat testfile &gt; /dev/null<br>
          real    0m0.065s<br>
          user    0m0.000s<br>
          sys     0m0.001s<br>
          colm@coroebus:~$ time cat testfile &gt; /dev/null<br>
          real    0m0.003s<br>
          user    0m0.003s<br>
          sys     0m0.000s
        </code></p></div>

        <p>K&uuml;&ccedil;&uuml;k bir dosya i&ccedil;in bile okuma s&uuml;resi bakımından b&uuml;y&uuml;k fark ortaya
          &ccedil;ıkmaktadır. Bunun sebebi &ccedil;ekirdeğin dosya i&ccedil;eriğini bellek daha
          g&uuml;ncel ama&ccedil;lar i&ccedil;in lazım olana dek bellek i&ccedil;inde saklamasıdır.</p>

        <p>Sisteminizde yeterince yedek bellek olduğundan eminseniz, bu
          &ouml;nbellekte daha fazla dosya saklanacağından emin olabilirsiniz.
          Bundan, &ouml;nbelleğin sistem belleğinde verimli bi&ccedil;imde tutulması i&ccedil;in
          httpd'de ek bir yapılandırmaya gidilmesinin gerekmediği sonucu
          &ccedil;ıkarılabilir.</p>

        <p>Bundan başka, işletim sistemi dosyaların değiştiği ve silindiği
          zamanları bildiğinden bu t&uuml;r dosyaların i&ccedil;erikleri gerektiğinde
          &ouml;nbellekten kendiliğinden silinmiş olur. Bellek i&ccedil;inde dosya
          saklarken dosyaların değiştirilme zamanlarını bilme olanağı
          olmadığından bu durum httpd'ye b&uuml;y&uuml;k yarar sağlar.</p>
      

      <p>İşletim sisteminin dosyaların &ouml;nbelleklenmesi i&ccedil;in sağladığı bunca
        yarara ve başarım artışına karşın bellek i&ccedil;inde dosya &ouml;nbelleklemenin
        httpd tarafından yerine getirilmesinin daha iyi olacağı bazı durumlar
        vardır.</p>

      <h4><code>MMapFile</code> y&ouml;nergesi ile</h4>
        

        <p><code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code> mod&uuml;l&uuml;, bir durağan dosyanın
          i&ccedil;eriğini sunucunun başlatılması sırasında (mmap sistem &ccedil;ağrısıyla)
          belleğe eşlenmesini m&uuml;mk&uuml;n kılmak i&ccedil;in <code class="directive"><a href="./mod/mod_file_cache.html#mmapfile">MMapFile</a></code> y&ouml;nergesini sağlar.
          httpd bu dosyaya gelecek sonraki istekler i&ccedil;in dosyanın belleki&ccedil;i
          i&ccedil;eriğini kullanacaktır.</p>

        <pre class="prettyprint lang-config">MMapFile /usr/local/apache2/htdocs/index.html</pre>


        <p><code class="directive"><a href="./mod/mod_file_cache.html#cachefile">CacheFile</a></code>
          y&ouml;nergesinde olduğu gibi bu dosyalarda httpd başlatıldıktan sonra
          yapılacak bir değişiklikten httpd'nin haberi olmayacaktır.</p>

        <p><code class="directive"><a href="./mod/mod_file_cache.html#mmapfile">MMapFile</a></code> y&ouml;nergesi
          ayırdığı belleğin toplam miktarı ile ilgilenmez, dolayısıyla
          y&ouml;nergenin aşırı kullanımından ka&ccedil;ınmalısınız. httpd'nin &ccedil;ocuk
          s&uuml;re&ccedil;lerinin her biri bu belleğin kendilerine ait birer kopyasını
          yapacağından belleğe eşlenen dosyaların &ccedil;ok yer kaplamaması b&uuml;y&uuml;k
          &ouml;nem taşımaktadır; aksi takdirde işletim sistemi belleği diske
          takaslayacağından beklenen fayda sağlanamayacaktır.</p>
      
    
  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="security">G&uuml;venlik Kaygıları <a title="Permanent link" href="#security" class="permalink">&para;</a></h2>
    

    <h3>Erişim Denetimi ve Yetkilendirme</h3>
      

      <p><code class="directive"><a href="./mod/mod_cache.html#cachequickhandler">CacheQuickHandler</a></code>
        y&ouml;nergesine <code>On</code> değerinin atandığı &ouml;ntanımlı durumda
        <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> kullanımı, daha &ccedil;ok sunucunun &ouml;n&uuml;ne
        vidalanmış &ouml;nbelleklemeli bir karşı vekile sahip olmak gibidir. &Ouml;zg&uuml;n
        sunucunun bir harici &ouml;nbellekmiş gibi sorgulanmasını gerektirmeyen t&uuml;m
        istekler &ouml;nbellekleme mod&uuml;l&uuml; tarafından karşılanacaktır. Bu durum
        httpd'nin g&uuml;venlik modelini b&uuml;y&uuml;k &ouml;l&ccedil;&uuml;de değiştirir.</p>

      <p>Olası <code>.htaccess</code> dosyalarının dosya sisteminin tamamında
        taranması &ccedil;ok pahalı bir işlem olduğundan <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>,
        (işlemi hızlandırmak i&ccedil;in) &ouml;nbelleğe almanın temel amacını kısmen
        g&ouml;zardı ederek, &ouml;nbellekteki i&ccedil;eriğin sunumu i&ccedil;in gerekli
        yetkilendirmenin olup olmadığı konusunda bir karar &uuml;retmez. Başka bir
        deyişle, eğer <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> bir kısım i&ccedil;eriği &ouml;nbelleğe
        almışsa i&ccedil;erik zaman aşımına uğramadığı s&uuml;rece bu i&ccedil;erik &ouml;nbellekten
        sunulacaktır.</p>

      <p>&Ouml;rneğin, yapılandırmanız bir &ouml;zkaynağa IP adresine g&ouml;re erişime izin
        veriyorsa bu i&ccedil;eriğin &ouml;nbelleğe alınmayacağından emin olmalısınız.
        Bunu <code class="directive"><a href="./mod/mod_cache.html#cachedisable">CacheDisable</a></code>
        y&ouml;nergesini veya <code class="module"><a href="./mod/mod_expires.html">mod_expires</a></code> mod&uuml;l&uuml;n&uuml; kullanarak
        yapabilirsiniz. Bunu yapmaz, olayı kendi haline bırakırsanız
        <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> bir karşı vekil gibi &ccedil;alışarak sunulan her
        i&ccedil;eriği &ouml;nbelleğe alacak ve hangi IP adresinden gelirse gelsin her
        istemciye bunu sunacaktır.</p>

      <p><code class="directive"><a href="./mod/mod_cache.html#cachequickhandler">CacheQuickHandler</a></code>
        y&ouml;nergesine <code>Off</code> atandığı takdirde, istek işleme
        aşamalarının tamamı yerine getirilir ve g&uuml;venlik modeli değişmeden
        kalır.</p>
    

    <h3>Yerel İstismarcılar</h3>
      

      <p>Son kullanıcılarıın isteklerine &ouml;nbellekten hizmet sunulduğundan
        &ouml;nbelleğin kendisi i&ccedil;erikle etkileşime ge&ccedil;mek isteyenlerin veya
        i&ccedil;eriği tahrif etmek isteyenlerin hedefi haline gelebilir. httpd'yi
        &ccedil;alıştıran kullanıcı tarafından her zaman &ouml;nbelleğe yazılabileceğini
        akıldan &ccedil;ıkarmamak &ouml;nemlidir. Bu durumda alışılmışın tersine t&uuml;m
        i&ccedil;eriğin Apache kullanıcısı tarafından yazılamamasının sağlanması
        &ouml;nerilir.</p>

      <p>Eğer Apache kullanıcısı, &ouml;rneğin bir CGI s&uuml;recindeki a&ccedil;ık nedeniyle
        tehlikeye atılırsa, &ouml;nbellek hedef alınabilir.
        <code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code> kullanılırken &ouml;nbellekteki bir &ouml;ğeyi
        değiştirmek veya &ouml;nbelleğe yeni bir &ouml;ğe eklemek g&ouml;rece daha
        kolaydır.</p>

      <p>Bu risk, Apache kullanıcısını kullanan diğer saldırı t&uuml;rleriyle
        karşılaştırıldığında daha y&uuml;ksektir. <code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code>
        kullanıyorsanız şunları aklınızdan &ccedil;ıkarmayın: (1) httpd g&uuml;venlik
        g&uuml;ncellemelerini takip edin ve sunucunuzu buna g&ouml;re g&uuml;ncelleyin. (2)
        M&uuml;mk&uuml;nse <a href="suexec.html">suEXEC</a> kullanarak CGI s&uuml;re&ccedil;lerini
        Apache kullanıcısı olmayan bir kullanıcının aidiyetinde &ccedil;alıştırın.</p>
    

    <h3>&Ouml;nbellek Zehirlenmeleri</h3>
      

      <p>httpd bir &ouml;nbellekli vekil sunucu olarak &ccedil;alıştığında &ouml;nbellek
        zehirlenmesi adı verilen sorunla karşılaşılma olasılığı vardır.
        &Ouml;nbellek zehirlenmesi, vekil sunucunun &ouml;zg&uuml;n sunucudan yanlış (ve
        genellikle istenmeyen) i&ccedil;erik almasına sebep olan bir saldırı t&uuml;r&uuml;n&uuml;
        betimlemek i&ccedil;in yaygın olarak kullanılan bir terimdir.</p>

      <p>&Ouml;rneğin httpd'nin &ccedil;alıştığı sistemin kullandığı DNS sunucuları DNS
        &ouml;nbellek zehirlenmesinden etkilenebilecek durumdaysa, bir saldırgan
        httpd'nin istekleri almak i&ccedil;in başvuracağı kaynak sunucunun yerini
        değiştirebilir. Diğer bir &ouml;rnek, HTTP istek ka&ccedil;ak&ccedil;ılığı adı verilen
        bir saldırı t&uuml;r&uuml;d&uuml;r.</p>

      <p>Bu belge HTTP istek ka&ccedil;ak&ccedil;ılığını derinliğine incelenmesi i&ccedil;in uygun
        yer değildir (b&ouml;yle kaynaklara arama motorunuzla erişebilirsiniz).
        Bununla birlikte, vekil tarafından kaynak sunucudan alınan i&ccedil;eriği
        tamamen denetim altına almak amacıyla kaynak sunucudaki bir a&ccedil;ığı
        istismar etmeye y&ouml;nelik bir dizi istek yapılabileceğinin olasılık
        dahilinde olduğunu bilmenizde yarar vardır.</p>
    

    <h3>Hizmet Reddi / &Ouml;nbelleğin Engellenmesi</h3>
      

      <p>Vary mekanizması aynı URL'nin &ccedil;ok sayıda s&uuml;r&uuml;m&uuml;n&uuml;n yan yana
        &ouml;nbelleklenmesini m&uuml;mk&uuml;n kılar. İstemci tarafından sağlanan başlık
        değerlerine bağlı olarak, &ouml;nbellek istemciye g&ouml;nderilecek doğru yanıtı
        bulacaktır. Normal kullanımda olası değerlerin &ccedil;ok geniş olduğunun
        bilindiği durumda bir başlığı (&ouml;rn, <code>User-Agent</code>)
        değişikliğe uğratma &ccedil;abası bu mekanizmayı bir sorun haline getirebilir.
        Sitenin tanınırlığına bağlı olarak aynı URL'nin binlerce hatta
        milyonlarca &ouml;nbellek girdisi oluşabilir ve bunlar &ouml;nbellekteki diğer
        girdilerin yerini alabilir.</p>

      <p>Diğer yandan, belli bir &ouml;zkaynağın URL'sinin her istekte
      değiştirilmesi ihtiyacı ortaya &ccedil;ıkabilir. Bu normalde URL dizgesine bir
      "cachebuster" dizgesi eklenerek yapılır. Bu i&ccedil;erik sunucu tarafından
      anlamlı bir tazelik &ouml;mr&uuml;yle &ouml;nbelleklenebilir olarak imlenmişse bu
      girdiler kısa zamanda &ouml;nbellekteki meşru girdilerin yerini alabilir.
      <code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> mod&uuml;l&uuml; bunun &ouml;nlenmesi i&ccedil;in <code class="directive"><a href="./mod/mod_cache.html#cacheignoreurlsessionidentifiers">CacheIgnoreURLSessionIdentifiers</a></code>
      y&ouml;nergesine sahipse de bu y&ouml;nerge, yoldaki vekillerin veya tarayıcı
      &ouml;nbelleklerinin aynı hizmet reddi saldırısına maruz kalmamaları i&ccedil;in
      dikkatle kullanılmalıdır.</p>
    
  </div></div>
<div class="bottomlang">
<p><span>Mevcut Diller: </span><a href="./en/caching.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./fr/caching.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="./tr/caching.html" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br><a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p>
<p class="menu"><a href="./mod/">Mod&uuml;ller</a> | <a href="./mod/quickreference.html">Y&ouml;nergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Hata bildir</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>