diff options
author | Takashi Sato <takashi@apache.org> | 2008-07-10 17:13:38 +0200 |
---|---|---|
committer | Takashi Sato <takashi@apache.org> | 2008-07-10 17:13:38 +0200 |
commit | b6f431e754279cc4b395b69e1fb71a1116bebf46 (patch) | |
tree | c926f6398cd3e5b46bacdf53a9e3cdc1807c8525 | |
parent | remove outdated link (diff) | |
download | apache2-b6f431e754279cc4b395b69e1fb71a1116bebf46.tar.xz apache2-b6f431e754279cc4b395b69e1fb71a1116bebf46.zip |
new Turkish translations
Submitted by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@675612 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | docs/manual/caching.xml.tr | 728 | ||||
-rw-r--r-- | docs/manual/content-negotiation.xml.tr | 642 | ||||
-rw-r--r-- | docs/manual/filter.xml.tr | 163 | ||||
-rw-r--r-- | docs/manual/handler.xml.tr | 159 | ||||
-rw-r--r-- | docs/manual/images/caching_fig1.tr.png | bin | 0 -> 11460 bytes | |||
-rw-r--r-- | docs/manual/images/filter_arch.tr.png | bin | 0 -> 2502 bytes | |||
-rw-r--r-- | docs/manual/images/mod_filter_new.tr.png | bin | 0 -> 1326 bytes | |||
-rw-r--r-- | docs/manual/mod/mod_alias.xml.tr | 429 | ||||
-rw-r--r-- | docs/manual/mod/mod_dir.xml.tr | 157 |
9 files changed, 2278 insertions, 0 deletions
diff --git a/docs/manual/caching.xml.tr b/docs/manual/caching.xml.tr new file mode 100644 index 0000000000..2abe0fac5f --- /dev/null +++ b/docs/manual/caching.xml.tr @@ -0,0 +1,728 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE manualpage SYSTEM "style/manualpage.dtd"> +<?xml-stylesheet type="text/xsl" href="style/manual.tr.xsl"?> +<!-- English Revision: 572617 --> +<!-- ===================================================== + Translated by: Nilgün Belma Bugüner <nilgun belgeler.org> + Reviewed by: Orhan Berent <berent belgeler.org> +========================================================== --> + +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<manualpage metafile="caching.xml.meta"> + + <title>Önbellek Kullanım Kılavuzu</title> + + <summary> + <p>Bu belge <module>mod_cache</module>, + <module>mod_disk_cache</module>, <module>mod_mem_cache</module>, + <module>mod_file_cache</module> modülleri ve <a + href="programs/htcacheclean.html">htcacheclean</a> için bir başvuru + kılavuzu niteliğindedir. HTTP sunucusu ve vekil olarak çalışmada + işlemleri hızlandırmak için bilinen sorunlar ve yanlış + yapılandırmalardan kaçınarak Apache’nin önbellekleme özelliklerinin + nasıl kullanılacağı açıklanmıştır.</p> + </summary> + + <section id="introduction"> + <title>Giriş</title> + + <p>Apache HTTP sunucusunun 2.2 sürümünden itibaren + <module>mod_cache</module> ve <module>mod_file_cache</module> modülleri + deneysel olmaktan çıkarılmış ve üretim amaçlı kullanılabileceğine karar + verilmiştir. Bu önbellekleme mimarileri gerek HTTP sunucusu gerekse + vekili olarak çalışmada HTTP işlemlerini hızlandırmak anlamında sunucuya + güç katarlar.</p> + + <p><module>mod_cache</module>, ortam sağlayıcı modülleri olan + <module>mod_mem_cache</module> ve <module>mod_disk_cache</module> ile + birlikte HTTP önbelleklemesini akıllıca yerine getirir. İçeriğin kendisi + önbellekte saklanırken <module>mod_cache</module> içeriğin + önbelleklenebilmesini denetim altında tutan HTTP başlıkları ve + seçenekleri ile ilgilenir. Yerel ve vekalet edilen içeriğin her ikisinin + de aynı anda işlem görmesi sağlanabilir. <module>mod_cache</module>, + vekalet edilen içeriğe, devingen yerel içeriğe veya zamanla değişen + yerel dosyalara erişimi hızlandırma ihtiyacına yönelik olarak hem basit + hem de karmaşık önbellekleme yapılandırmalarını mümkün kılar.</p> + + <p><module>mod_file_cache</module> ise biraz daha temel ancak bazen daha + kullanışlı olabilen bir önbellekleme şekli ile ilgilenir. URL’lerin + önbelleklenebilmesini mümkün kılmanın karmaşıklığıyla boğuşmak yerine + <module>mod_file_cache</module>, dosyaların Apache’nin son başlatıldığı + zamanki durumlarını saklamak için dosyaların belleğe eşlenmek üzere ele + alınmasını sağlar. Böylelikle, <module>mod_file_cache</module>, çok sık + değişmeyen durağan yerel dosyalara erişim zamanını azaltmaya yardım + eder.</p> + + <p><directive module="mod_file_cache">CacheFile</directive> ve <directive + module="mod_file_cache">MMapStatic</directive> yönergeleri ile ilgili + bölümlerde anlatılanları saymazsak <module>mod_file_cache</module>, bu + belgenin asıl konusu olan <module>mod_cache</module> önbellekleme + mimarisine göre daha basit bir önbellekleme gerçeklenimidir.</p> + + <p>Bu belgeden azami yararı sağlayabilmek için temel bir HTTP bilginizin + olması ve <a href="urlmapping.html">URL’lerin Dosya Sistemine + Eşlenmesi</a> ile <a href="content-negotiation.html">İçerik Uzlaşımı</a> + belgelerini okumuş olmanız gerekir.</p> + + </section> + + <section id="overview"> + + <title>Önbelleklemeye Bir Bakış</title> + + <related> + <modulelist> + <module>mod_cache</module> + <module>mod_mem_cache</module> + <module>mod_disk_cache</module> + <module>mod_file_cache</module> + </modulelist> + <directivelist> + <directive module="mod_cache">CacheEnable</directive> + <directive module="mod_cache">CacheDisable</directive> + <directive module="mod_file_cache">MMapStatic</directive> + <directive module="mod_file_cache">CacheFile</directive> + <directive module="mod_file_cache">CacheFile</directive> + <directive module="core">UseCanonicalName</directive> + <directive module="mod_negotiation">CacheNegotiatedDocs</directive> + </directivelist> + </related> + + <p>Bir istek sonuçlanıncaya kadar <module>mod_cache</module> modülünde iki + aşamadan geçer. İlkinde <module>mod_cache</module> bir URL eşleme modülü + olarak çalışır ve URL önbellekteyse ve zaman aşımına uğramamışsa isteğin + doğrudan <module>mod_cache</module> tarafından sunulmasını sağlar.</p> + + <p>Yani isteğin sunumu sırasında, isteğin örneğin, + <module>mod_proxy</module> veya <module>mod_rewrite</module> tarafından + ele alınması gerekse bile bu yapılmaz. Önbelleklenen içerik ilk alındığı + haliyle sunulur.</p> + + <p>Eğer URL önbellekte yoksa, <module>mod_cache</module> isteği bir <a + href="filter.html">süzgece</a> tabi tutar. Apache içeriğin varlığını + saptamışsa içeriğin süzgeç tarafından sunulmasını sağladıktan sonra, + süzgeç içeriğin önbelleklenebileceğini saptamışsa gelecekte sunmak üzere + içeriği önbelleğe kaydeder.</p> + + <p>Eğer URL önbellekte bulunmuş fakat içeriğin zaman aşımına uğradığı + anlaşılmışsa süzgeç yine de eklenir fakat bu kez + <module>mod_cache</module> önbellekteki sürümün hala geçerli olup + olmadığını saptamak için kaynağın bulunduğu sunucuya bir koşullu istek + gönderir. Önbellekteki sürüm hala geçerliyse temel verileri güncellenir + ve istek önbellekten sunulur. Önbellekteki sürüm artık geçerli değilse, + önbellekteki sürüm silinir ve süzgeç güncel içeriği önbelleğe kaydeder + ve isteği oradan sunar.</p> + + <section> + <title>Önbelleğin Hızlandırılması</title> + + <p>Yerel içerik önbelleklendiği takdirde <directive + module="core">UseCanonicalName</directive> yönergesine <code>On</code> + değeri atanmışsa önbellekten sunulan sayfa sayısında büyük bir artış + olduduğu görülür. Bunun sebebi içeriği sunan sanal konağın isminin + önbellek anahtarının bir parçası olarak kullanılmasıdır. Yönergeye + <code>On</code> değerini atamak suretiyle çok isimli ve rumuzlu sanal + konaklar için farklı önbellek girdileri oluşturulmaz, bunun yerine her + meşru sanal konak için ayrı bir önbellek tutulur.</p> + + <p>Önbellekleme, URL’nin dosya ismine dönüştürülmesi aşamasında + gerçekleştiğinden önbelleklenen belgeler sadece URL isteklerine bir + yanıt olarak sunulurlar. <a href="howto/ssi.html">Sunucu Taraflı + İçerikleri</a> kullanmazsanız genellikle bunun fazla bir önemi + olmaz.</p> + + <example> + <!-- Bu içerik önbelleklenebilir. --><br /> + <!--#include virtual="/dipnot.html" --><br /> + <br /> + <!-- Bu içerik önbelleklenemez. --><br /> + <!--#include file="/bir/yol/dipnot.html" --> + </example> + + <p>Sunucu Taraflı İçerikleri kullanıyorsanız ve önbelleklemenin + sağladığı hız artışından da yaralanmak istiyorsanız içerik + yerleştirmek için <code>virtual</code> içerik türünü kullanınız.</p> + </section> + + <section> + <title>Zaman Aşımı Süreleri</title> + + <p>Önbellekli öğeler için öntanımlı zaman aşımı süresi bir saat olmakla + birlikte <directive module="mod_cache">CacheDefaultExpire</directive> + yönergesi kullanılarak bu değer kolaylıkla geçersiz kılınabilir. Bu + öntanımlı değer sadece içeriğin özgün kaynağı bir zaman aşımı süresi + veya son değişiklik tarihi belirtmediği takdirde kullanılır.</p> + + <p>Bir yanıt <code>Expires</code> başlığını değil de + <code>Last-Modified</code> başlığını içeriyorsa + <module>mod_cache</module> zaman aşımı süresini <directive + module="mod_cache">CacheLastModifiedFactor</directive> yönergesinin + nasıl kullanıldığına bakarak saptar.</p> + + <p>Yerel içerik için, zaman aşımı süresini hassas olarak ayarlamak + gerekirse <module>mod_expires</module> kullanılabilir.</p> + + <p>Zaman aşımı süresinin üst sınırı <directive + module="mod_cache">CacheMaxExpire</directive> yönergesi ile + belirlenebilir.</p> + + </section> + + <section> + <title>Şartlı İstekler için Özlü Kılavuz</title> + + <p>Önbellekteki içerik zaman aşımına uğrayıp, içerik sağlayıcıya veya + arka sunucuya özgün isteği aktarmak yerine ayrı bir istek yapılması + gereği Apache’nin şartlı bir istek yapması sonucunu doğurur.</p> + + <p>Bir istemcinin veya önbelleğin aynı içeriğin farklı sürümleri + arasında ayrım yapabilmesi için HTTP protokolü bazı başlık alanları + önerir. Örneğin, "Etag:" başlığıyla sunulan bir özkaynak için + "If-None-Match:" başlığıyla bir şartlı istek yapmak mümkün olduğu gibi + özkaynak "Last-Modified:" başlığıyla sunuluyorsa şartlı istek + "If-Modified-Since:" başlığıyla yapılabilir, vesaire.</p> + + <p>Böyle bir şartlı istek yapıldığında yanıt koşulun içerikle eşleşip + eşleşmediğine bağlı olarak farklı olur. Eğer istek bir + "If-Modified-Since:" başlığıyla yapılmışsa ve içerik istekte + belirtilen zamandan önce değiştirilmemişse kısa ve öz olarak bir "304 + Not Modified" (Bir değişiklik yok) iletisiyle yanıt verilir.</p> + + <p>Aksi takdirde bir şartlı istek yapılmamış gibi içeriğin kendisi + sunulur.</p> + + <p>Önbellekleme ile ilgili şartlı istekler çifte yarar sağlar. Birinci + olarak, böyle bir istek arkadaki sunucuya yapılıyorsa ve iki içerik de + aynıysa bunu saptamak kolay olur ve özkaynağın tamamını aktarma + külfetinden kurtulunur.</p> + + <p>İkinci olarak, şartlı istekler arka sunucuda normalden daha az + faaliyete sebep olur. Durağan dosyalar için bu genellikle + <code>stat()</code> veya benzeri bir sistem çağrısıyla dosya + boyutları ve değişiklik zamanına bakmak şeklinde gerçekleşir. + Böylelikle Apache yerel içeriği önbellekliyor olsa bile ve hatta + içerik zaman aşımına da uğrasa önbellekteki dosyada bir değişiklik + olmadığı takdirde içeriği önbellekten sunmak daha hızlı olacaktır. + Çünkü dosyayı önbellekten okumak, arka sunucudan okumaktan daha + hızlıdır (bu, bellekten okumayla diskten okumayı karşılaştırmak + gibidir).</p> + </section> + + <section> + <title>Neler Önbelleklenebilir?</title> + + <p>Evvelce bahsedildiği gibi Apache’de iki tür önbellekleme yapılır ve + bunlar farklı yöntemlerle çalışır. <module>mod_file_cache</module> + önbelleklemesinde dosyalar Apache başlatıldığı zamanki içerikle + saklanır. Bu modül tarafından önbelleğe alınmış bir dosya için istek + geldiğinde isteğin yolu kesilip önbellekteki dosya sunulur.</p> + + <p><module>mod_cache</module> önbelleklemesinde işler biraz daha + karışıktır. Bir isteğe hizmet sunulurken istenen içerik evvelce + önbelleklenmemişse önbellekleme modülü önce içeriğin + önbelleklenebilirliğine bakar. Bir yanıtın önbelleklenebilirliğini + belirleyen koşullar şunlardır:</p> + + <ol> + <li>Önbellekleme bu URL ile etkin kılınabilmelidir. <directive + module="mod_cache">CacheEnable</directive> ve <directive + module="mod_cache">CacheDisable</directive> yönergelerine bakınız.</li> + + <li>Yanıtın HTTP durum kodu 200, 203, 300, 301 veya 410 olmalıdır.</li> + + <li>İstek bir HTTP GET isteği olmalıdır.</li> + + <li>İstek bir "Authorization:" başlığı içeriyorsa yanıt önbelleğe + alınmayacaktır.</li> + + <li>Eğer yanıt bir "Authorization:" başlığı içeriyorsa ayrıca + "Cache-Control:" başlığında da "s-maxage", "must-revalidate" veya + "public" değerlerinden birini içermelidir.</li> + + <li>Eğer URL (GET yöntemi kullanan bir HTML formunun yaptığı gibi) bir + sorgu dizgesi içeriyorsa yanıt, RFC2616’nın 13.9. bölümünde + açıklandığı gibi bir "Expires:" başlığı içermedikçe yanıt içeriği + önbelleğe alınmayacaktır.</li> + + <li><directive module="mod_cache">CacheIgnoreNoLastMod</directive> + yönergesinin kullanımını gerektiren bir durum olmadıkça 200 durum + koduna sahip bir yanıtın "Etag", "Last-Modified" ve "Expires" + başlıklarından en az birini içermesi gerekir.</li> + + <li><directive module="mod_cache">CacheStorePrivate</directive> + yönergesinin kullanımını gerektiren bir durum olmadıkça yanıt + "private" değerli bir "Cache-Control:" başlığı içerdiği takdirde + yanıtın içeriği önbelleğe alınmayacaktır.</li> + + <li>Benzer şekilde, <directive module="mod_cache" + >CacheStoreNoStore</directive> yönergesi kullanılmamışsa yanıt + "no-store" değerli bir "Cache-Control:" başlığı içeriyorsa yanıt + içeriği önbelleğe alınmayacaktır.</li> + + <li>Herşeyle eşleşen "*" değerli bir "Vary:" başlığı içeren bir + yanıtın içeriği önbelleğe alınmaz.</li> + </ol> + </section> + + <section> + <title>Neler Önbelleklenmemeli?</title> + + <p>Kısaca, istek zamana aşırı bağımlıysa ya da istek kısmen bile olsa + HTTP uzlaşımıyla bağdaşmıyorsa önbelleğe alınmamalıdır.</p> + + <p>İçeriği istekçinin IP adresine bağlı olarak değişen veya her beş + dakikada bir değişikliğe uğrayan bir devingen içeriğe sahipseniz böyle + bir içerik asla önbelleğe alınmamalıdır.</p> + + <p>Diğer taraftan, içerik HTTP başlığındaki değerlere bağlı olarak + değişiyorsa içeriğin bir "Vary" başlığı kullanılarak akıllıca + önbelleklenmesi imkanı mevcuttur.</p> + </section> + + <section> + <title>Değişken/Uzlaşımlı İçerik</title> + + <p>"Vary" başlıklı bir yanıt arka sunucudan istenirken + <module>mod_cache</module> tarafından alınmışsa akıllıca ele alınmaya + çalışılacaktır. Mümkünse, <module>mod_cache</module> gelecekte bu + içerikle ilgili isteklerin "Vary" başlıklı yanıtları olacağını + saptayacak ve önbellekten doğru içerikle yanıt verecektir.</p> + + <p>Örneğin, bir yanıt şöyle bir başlık ile alınmışsa,</p> + + <example> + Vary: negotiate,accept-language,accept-charset + </example> + + <p><module>mod_cache</module> sadece accept-language ve accept-charset + başlıkları özgün istekle eşleşen önbellekli içeriği sunacaktır.</p> + </section> + + </section> + + <section id="security"> + <title>Güvenlik Kaygıları</title> + + <section> + <title>Erişim Denetimi ve Yetkilendirme</title> + + <p><module>mod_cache</module> çoğunlukla bir karşı vekile sahip olmak + amacıyla kullanılır. Arka sunucunun sorgulanmasını gerektirmeyen tüm + istekler önbellekleme modülü tarafından karşılanacaktır. Yerel + özkaynakların önbelleklenmesi söz konusu olduğunda Apache’nin güvenlik + modeli büyükçe bir değişikliğe uğrar.</p> + + <p>Olası <code>.htaccess</code> dosyalarının dosya sisteminin tamamında + taranması çok pahalı bir işlem olduğundan <module>mod_cache</module>, + (işlemi hızlandırmak için) önbelleğe almanın temel amacını kısmen + gözardı ederek, önbellekteki içeriğin sunumu için gerekli + yetkilendirmenin olup olmadığı konusunda bir karar üretmez. Başka bir + deyişle, eğer <module>mod_cache</module> bir kısım içeriği önbelleğe + almışsa içerik zaman aşımına uğramadığı sürece bu içerik önbellekten + sunulacaktır.</p> + + <p>Örneğin, yapılandırmanız bir özkaynağa IP adresine göre erişime izin + veriyorsa bu içeriğin önbelleğe alınmayacağından emin olmalısınız. + Bunu <directive module="mod_cache">CacheDisable</directive> + yönergesini veya <module>mod_expires</module> kullanarak + yapabilirsiniz. Bunu yapmaz, olayı kendi haline bırakırsanız + <module>mod_cache</module> bir karşı vekil gibi çalışarak sunulan her + içeriği arabelleğe alacak ve hangi IP adresinden gelirse gelsin her + istemciye bunu sunacaktır.</p> + </section> + + <section> + <title>Yerel İstismarcılar</title> + + <p>Son kullanıcılarıın isteklerine önbellekten hizmet sunulduğundan + önbelleğin kendisi içerikle etkileşime geçmek isteyenlerin veya + içeriği tahrif etmek isteyenlerin hedefi haline gelebilir. Apache’yi + çalıştıran kullanıcı tarafından her zaman önbelleğe yazılabileceğini + akıldan çıkarmamak önemlidir. Bu durumda alışılmışın tersine tüm + içeriğin Apache kullanıcısı tarafından yazılamamasının sağlanması + önerilir.</p> + + <p>Eğer Apache kullanıcısı, örneğin bir CGI sürecindeki açık nedeniyle + tehlikeye atılırsa, önbellek hedef alınabilir. + <module>mod_disk_cache</module> kullanılırken önbellekteki bir öğeyi + değiştirmek veya önbelleğe yeni bir öğe eklemek görece daha + kolaydır.</p> + + <p>Bu risk, Apache kullanıcısını kullanan diğer saldırı türleriyle + karşılaştırıldığında daha yüksektir. <module>mod_disk_cache</module> + kullanıyorsanız şunları aklınızdan çıkarmayın: (1) Apache güvenlik + güncellemelerini takip edin ve sunucunuzu buna göre güncelleyin. (2) + Mümkünse <a href="suexec.html">suEXEC</a> kullanarak CGI süreçlerini + Apache kullanıcısı olmayan bir kullanıcının aidiyetinde çalıştırın.</p> + + </section> + + <section> + <title>Önbellek Zehirlenmeleri</title> + + <p>Apache bir önbellekli vekil sunucu olarak çalıştığında önbellek + zehirlenmesi adı verilen sorunla karşılaşılma olasılığı vardır. + Önbellek zehirlenmesi, vekil sunucunun arka sunucudan yanlış (ve + genellikle istenmeyen) içerik almasına sebep olan bir saldırı türünü + betimlemek için yaygın olarak kullanılan bir terimdir.</p> + + <p>Örneğin Apache’nin çalıştığı sistemin kullandığı DNS sunucuları DNS + önbellek zehirlenmesinden etkilenebilecek durumdaysa, bir saldırgan + Apache’nin istekleri almak için başvuracağı kaynak sunucunun yerini + değiştirebilir. Diğer bir örnek, HTTP istek kaçakçılığı adı verilen + bir saldırı türüdür.</p> + + <p>Bu belge HTTP istek kaçakçılığını derinliğine incelenmesi için uygun + yer değildir (böyle kaynaklara arama motorunuzla erişebilirsiniz). + Bununla birlikte, vekil tarafından kaynak sunucudan alınan içeriği + tamamen denetim altına almak amacıyla kaynak sunucudaki bir açığı + istismar etmeye yönelik bir dizi istek yapılabileceğinin olasılık + dahilinde olduğunu bilmenizde yarar vardır.</p> + </section> + </section> + + <section id="filehandle"> + <title>Dosya Tanıtıcı Önbelleklemesi</title> + + <related> + <modulelist> + <module>mod_file_cache</module> + <module>mod_mem_cache</module> + </modulelist> + <directivelist> + <directive module="mod_file_cache">CacheFile</directive> + <directive module="mod_cache">CacheEnable</directive> + <directive module="mod_cache">CacheDisable</directive> + </directivelist> + </related> + + <p>Bir dosyanın açılması işlemi, özellikle de ağ dosya sistemlerinde + bulunan dosyalar için önemli bir gecikme kaynağı olabilir. Önbellekte, + çok sunulan dosyaların kendilerinin değil, açık dosya tanıtıcılarının + saklanması Apache’yi bu tür gecikmelerden koruyabilir. Apache’de iki tür + dosya tanıtıcı önbelleklemesi yapılabilmektedir.</p> + + <section> + <title><code>CacheFile</code> yönergesi ile</title> + + <p>Apache’de mevcut önbelleklemenin en temel şekli + <module>mod_file_cache</module> tarafından sağlanan dosya tanıtıcı + önbelleklemesidir. Bu önbellek türü dosyaların kendilerini değil açık + dosya tanıtıcılarının bir listesini saklar. Dosyaların bu anlamda + önbelleklenmesi, <directive module="mod_file_cache" + >CacheFile</directive> yönergesi yapılandırma dosyasında belirtilerek + sağlanabilir.</p> + + <p><directive module="mod_file_cache">CacheFile</directive> yönergesi + belirtilen dosyanın Apache başlatıldığında açılmasını ve dosya için + yapılan sonraki her istekte bu dosya tanıtıcısının kullanılmasını + sağlar.</p> + + <example> + CacheFile /usr/local/apache2/htdocs/index.html + </example> + + <p>Büyük miktarda dosyayı bu anlamda önbelleklemeyi tasarlıyorsanız + işletim sisteminizin açı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><directive module="mod_file_cache">CacheFile</directive> yönergesini + kullandığınız takdirde dosya içeriğindeki değişiklikleri anında isteğe + yansıtamazsınız. Apache dosyayı ilk başlatıldığındaki haliyle + sunar.</p> + + <p>Eğer Apache çalışırken dosya silinmişse Apache ilk başlatıldığındaki + haline ilişkin dosya tanıtıcıyı sağlamaya ve dolayısıyla dosya + içeriğini sunmaya devam edecektir. Yani, dosya silinmiş ve artık dosya + sisteminde görünmüyor olsa bile Apache durdurulup dosya tanıtıcıları + kapanmadıkça dosyaların silinmesiyle açılan yer serbest + kalmayacaktır.</p> + </section> + + <section> + <title><code>CacheEnable</code> yönergesi ile</title> + + <p><module>mod_mem_cache</module> modülünün ayrıca, <directive + module="mod_cache" >CacheEnable</directive> yönergesi üzerinden etkin + kılınabilen kendine özgü bir dosya tanıtıcı önbellekleme şeması + vardır.</p> + + <example> + CacheEnable fd / + </example> + + <p><module>mod_cache</module>’nin devreye girdiği her işlemde olduğu + gibi bu tür dosya tanıtıcı önbelleklemesi de akıllıca yapılır ve + önbellekteki içerik zaman aşımına uğradığı halde sunulmaya devam + edilmez.</p> + </section> + </section> + + <section id="inmemory"> + <title>Sistem Belleğinde Önbellekleme</title> + + <related> + <modulelist> + <module>mod_mem_cache</module> + <module>mod_file_cache</module> + </modulelist> + <directivelist> + <directive module="mod_cache">CacheEnable</directive> + <directive module="mod_cache">CacheDisable</directive> + <directive module="mod_file_cache">MMapStatic</directive> + </directivelist> + </related> + + <p>İçeriğin sistem belleğinden sunulması içerik sunmanın evrensel olarak + en hızlı yoludur. Dosyaların bir disk denetleyiciden okunması ya da daha + kötüsü uzak bir ağdan okunması bellekten okumayla karşılaştırılamayacak + ölçüde yavaş işlemlerdir. Disk denetleyiciler genellikle fiziksel + süreçleri denetlerler. Ağ erişimi ise band genişliği sınırlamalarından + etkilenir. Halbuki bellek erişimi sadece nano saniyeler mertebesinde + gerçekleşir.</p> + + <p>Sistem belleği en pahalı saklama ortamı olması sebebiyle en verimli + şekilde kullanımı önemlidir. Dosyaları sistem belleğinde saklamakla + sistemin kullanabileceği bellek miktarını azaltmış olursunuz. İşletim + sistemi önbelleklemesinde göreceğiniz gibi bu öyle basit bir konu + değildir. Apache’nin kendi kullandığı belleğin bir kısmını önbellek + olarak ayırırken çok fazla bellek kullanmamak ö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> + + <section> + <title>İşletim Sistemi Önbelleklemesi</title> + + <p>Günümüz iştetim sistemlerinin hemen hemen tamamında bellek içi + dosya/veri saklama işlemlerini çekirdek yönetir. Bu güçlü bir + özelliktir ve işletim sistemlerinin büyük çoğunluğu bunu böyle yapar. + Ö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> + + <example> + colm@coroebus:~$ time cat testfile > /dev/null<br /> + real 0m0.065s<br /> + user 0m0.000s<br /> + sys 0m0.001s<br /> + colm@coroebus:~$ time cat testfile > /dev/null<br /> + real 0m0.003s<br /> + user 0m0.003s<br /> + sys 0m0.000s + </example> + + <p>Küçük bir dosya için bile okuma süresi bakımından büyük fark ortaya + çıkmaktadır. Bunun sebebi çekirdeğin dosya içeriğini bellek daha + güncel amaçlar için lazım olana dek bellek içinde saklamasıdır.</p> + + <p>Sisteminizde yeterince yedek bellek olduğundan eminseniz, bu + önbellekte daha fazla dosya saklanacağından emin olabilirsiniz. + Bundan, önbelleğin sistem belleğinde verimli biçimde tutulması için + Apache’de ek bir yapılandırmaya gidilmesinin gerekmediği sonucu + çıkarılabilir.</p> + + <p>Bundan başka, işletim sistemi dosyaların değiştiği ve silindiği + zamanları bildiğinden bu tür dosyaların içerikleri gerektiğinde + önbellekten kendiliğinden silinmiş olur. Bellek içinde dosya saklarken + dosyaların değiştirilme zamanlarını bilme olanağı olmadığından bu + durum Apache’ye büyük yarar sağlar.</p> + </section> + + <p>İşletim sisteminin dosyaların önbelleklenmesi için sağladığı bunca + yarara ve başarım artışına karşın bellek içinde dosya önbelleklemenin + Apache tarafından yerine getirilmesinin daha iyi olacağı bazı durumlar + vardır.</p> + + <p>Öncelikle, işletim sistemi sadece bildiği dosyaları önbellekler (veya + önbelleklediği dosyaları bilir). Eğer Apache’yi bir vekil sunucu olarak + çalıştırıyorsanız, önbelleklediğiniz dosyalar yerel olarak saklanmadan + uzaktan sunulabilir. Ancak bellekiçi önbelleklemenin sağladığı hız + artışının dayanılmaz çekiciliğine karşı koyamıyorsanız, Apache’nin kendi + bellekiçi önbelleklemesine ihtiyacınız var demektir.</p> + + <section> + <title><code>MMapStatic</code> yönergesi ile</title> + + <p><module>mod_file_cache</module> modülü, bir durağan dosyanın + içeriğini sunucunun başlatılması sırasında (mmap sistem çağrısıyla) + belleğe eşlenmesini mümkün kılmak için <directive + module="mod_file_cache" >MMapStatic</directive> yönergesini sağlar. + Apache bu dosyaya gelecek sonraki istekler için dosyanın bellekiçi + içeriğini kullanacaktır.</p> + + <example> + MMapStatic /usr/local/apache2/htdocs/index.html + </example> + + <p><directive module="mod_file_cache">CacheFile</directive> yönergesinde + olduğu gibi bu dosyalarda Apache başlatıldıktan sonra yapılacak bir + değişiklikten Apache’nin haberi olmayacaktır.</p> + + <p><directive module="mod_file_cache">MMapStatic</directive> yönergesi + ayırdığı belleğin toplam miktarı ile ilgilenmez, dolayısıyla + yönergenin aşırı kullanımından kaçınmalısınız. Apache’nin çocuk + süreçlerinin her biri bu belleğin kendilerine ait birer kopyasını + yapacağından belleğe eşlenen dosyaların çok yer kaplamaması büyük önem + taşımaktadır; aksi takdirde işletim sistemi belleği diske + takaslayacağından beklenen fayda sağlanamayacaktır.</p> + </section> + + <section> + <title><code>mod_mem_cache</code> modülü ile</title> + + <p><module>mod_mem_cache</module> modülü HTTP belirtimine uygun olarak + bellekiçi önbelleklemeyi akıllıca uygular. Ayrıca yüksek belleği + doğrudan kullanabildiğinden <var>MMap</var> desteği olmayan + sistemlerde bile bellekiçi önbellekleme yapabilir.</p> + + <p>Bu tür önbellekleme şöyle etkin kılınabilir:</p> + + <example> + # Bellekiçi önbelleklemeyi etkin kılalım<br /> + CacheEnable mem /<br /> + <br /> + # Önbellek 1 Megabayttan büyük olmasın<br /> + MCacheSize 1024 + </example> + </section> + </section> + + <section id="disk"> + <title>Disk Üzerinde Önbellekleme</title> + + <related> + <modulelist> + <module>mod_disk_cache</module> + </modulelist> + <directivelist> + <directive module="mod_cache">CacheEnable</directive> + <directive module="mod_cache">CacheDisable</directive> + </directivelist> + </related> + + <p><module>mod_disk_cache</module> modülü önbelleklemenin + <module>mod_cache</module> için disk üzerinde yapılmasını mümkün kılar. + <module>mod_mem_cache</module> modülünde olduğu gibi bu önbellekleme de + akıllıca yapılır ve önbellekteki içerik sadece geçerli kabul edildiği + sürece sunulabilir.</p> + + <p>Modül bu amaçla genelde şöyle kullanılır:</p> + + <example> + CacheRoot /var/cache/apache/<br /> + CacheEnable disk /<br /> + CacheDirLevels 2<br /> + CacheDirLength 1 + </example> + + <p>En önemlisi önbelleklenen dosyaların yerel olarak saklanması olup + işletim sisteminin sağladığı bellekiçi önbelleklemeden de ayrıca + faydalanılmış olur. Bu bakımdan, dosyalar disk üzerinde saklansa bile + sıkça erişilen dosyalar işletim sistemi sayesinde aslında bellekten + sunulmuş olacaklardır.</p> + + <section> + <title>Önbellekte Saklamanın Anlamı</title> + + <p><module>mod_disk_cache</module> öğeleri önbellekte saklamak için + istek yapılan URL’nin 22 karakterlik özetini oluşturur. Bu özet, çok + sayıda URL’nin aynı özeti oluşturmaması için konak ismi, protokol, + port ve varsa CGI argümanlarından oluşur.</p> + + <p>Özeti oluşturan karakterler 64 karakterlik bir karakter kümesinden + seçildiğinden oluşturulması olası farklı özet sayısı 64^22’dir. + Örneğin, bir URL’nin <code>xyTGxSMO2b68mBCykqkp1w</code> gibi bir + özeti olabilir. Bu özet, bu URL ile erişilen dosyalar önbellek içinde + saklanırken dosya ismi öneki olarak kullanılır. Ancak bununla + yetinilmez ve içerik <directive + module="mod_disk_cache">CacheDirLevels</directive> ve <directive + module="mod_disk_cache">CacheDirLength</directive> yönergelerinin + değerlerine göre önce dizinlere ayrılır.</p> + + <p><directive module="mod_disk_cache">CacheDirLevels</directive> + yönergesi kaç alt seviye dizin olacağını belirler. Örneğin, yukarıdaki + özete sahip bir dosyanın isminin başına yukarıdaki yapılandırma + örneğine uygun olarak + <code>/var/cache/apache/x/y/TGxSMO2b68mBCykqkp1w</code> gibi bir önek + getirilebilirdi.</p> + + <p>Bu tekniğin asıl amacı belli bir dizin içinde bulunabilecek + dosyaların ve alt dizinlerin sayısını düşük tutmaktır. Bu sayının + büyük olması çoğu işletim sisteminde başarımın düşmesine sebep olur. + <directive module="mod_disk_cache">CacheDirLength</directive> + yönergesi "1" değeriyle kullanıldığında her dizin altında en fazla 64 + alt dizin veya dosya açılabilir. "2" değeriyle kullanıldığında ise bu + sayı 64^2’ye yükselir ve böyle artarak gider. İyi bir sebebiniz + olmadıkça <directive + module="mod_disk_cache">CacheDirLength</directive> için değer olarak + "1" belirtmenizi öneririz.</p> + + <p><directive module="mod_disk_cache">CacheDirLevels</directive> + yönergesine atanacak değer önbellekte saklamayı düşündüğünüz olası + dosya sayısı ile ilgilidir. Yukarıdaki örnekte olduğu gibi "2" + değerini belirtirseniz, toplamda en fazla 4096 dizin oluşturulabilir. + 1 milyon dosyanın önbelleklendiği bir durumda bu, her dizinde yaklaşık + olarak 245 önbelleklenmiş URL demektir.</p> + + <p>Her URL için ö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çeriğin bire bir kopyası olan ".data" dosyasıdır.</p> + + <p>"Vary" başlığı üzerinden içeriğin uzlaşıldığı durumda URL için bir + ".vary" dizini oluşturulur. Bu dizin her biri farklı bir uzlaşıma ait + çok sayıda ".data" dosyası içerebilir.</p> + </section> + + <section> + <title>Disk Önbelleğinin Bakımı</title> + + <p><module>mod_disk_cache</module> zaman aşımına uğrayan önbellekli + içeriği silse de önbelleğin toplam boyu ve ne kadar boş bellek kaldığı + hakkında bilgi vermez.</p> + + <p>Bunun yerine Apache önbellek içeriğini düzenli aralıklarla + temizleyebilmeniz için <program>htcacheclean</program> adında bir araç + içerir. Önbellek için azami ne kadar yer kullanılacağının ve bunun + üzerinde <program>htcacheclean</program>’i hangi sıklıkta + ç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><program>htcacheclean</program> iki işlem kipine sahiptir. Kalıcı bir + artalan süreci olarak çalışabileceği gibi cron üzerinden belli + aralıklarla da çalıştırılabilir. Çok büyük (onlarca GB) önbelleklerde + <program>htcacheclean</program>’in işini bitirmesi 1 saatten fazla + sürebileceğinden, cron ile çalıştırma durumunda aynı anda birden fazla + kopyanın çalışıyor durumda olmaması için + <program>htcacheclean</program>’in çalıştırılma aralığını iyi + belirlemek gerekir.</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>: + Önbelleğin büyümesi ve düzenli aralıklarla temizlenmesi.</p> + + <p><module>mod_disk_cache</module> ne kadar önbellek alanı kullandığı + ile ilgili bir bilgi vermediğinden <program>htcacheclean</program>’in + bir temizlik sonrası yeterince büyük bir genişleme alanı kalacak + şekilde yapılandırılması önemlidir.</p> + </section> + + </section> + +</manualpage> diff --git a/docs/manual/content-negotiation.xml.tr b/docs/manual/content-negotiation.xml.tr new file mode 100644 index 0000000000..42b64470c4 --- /dev/null +++ b/docs/manual/content-negotiation.xml.tr @@ -0,0 +1,642 @@ +<?xml version='1.0' encoding='UTF-8' ?> +<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd"> +<?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?> +<!-- English Revision: 675610 --> +<!-- ===================================================== + Translated by: Nilgün Belma Bugüner <nilgun belgeler.org> + Reviewed by: Orhan Berent <berent belgeler.org> +========================================================== --> + +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<manualpage metafile="content-negotiation.xml.meta"> + +<title>İçerik Uzlaşımı</title> + +<summary> + + <p>Apache, içerik uzlaşımını HTTP/1.1 belirtiminde bahsedildiği şekliyle + destekler. Bir özkaynağın en iyi gösterimini, tarayıcının sağladığı + karakter kodlaması, karakter kümesi, dil, ortam türü gibi kullanıcı + tercihlerine bağlı olarak seçebilir. Ayrıca, tarayıcının kullanıcı + tercihlerini tam yansıtamadığı durumlarda istekleri daha akıllıca ele + alabilmeyi sağlayacak bir takım özelliklere de sahiptir.</p> + + <p>İçerik uzlaşımı öntanımlı olarak derlenen + <module>mod_negotiation</module> modülü tarafından sağlanır.</p> +</summary> + +<section id="about"><title>İçerik Uzlaşımı Hakkında</title> + + <p>Bir özkaynağın bir çok farklı gösterimi olabilir. Örneğin, bir belgenin + farklı ortam türleri ve/veya farklı diller için gösterimleri olabilir. + En uygun seçimi yapmanın tek yolu kullanıcıya bir liste verip seçmesini + istemektir. Bununla birlikte sunucunun bu seçimi kendiliğinden yapması + da mümkündür. Tarayıcılar isteğin bir parçası olarak kullanıcı + tercihlerini de gönderdiğinden bu istendiği gibi çalışır. Örneğin bir + tarayıcı, kullanıcısınının mümkünse Fransızca içerik tercih ettiğini + yoksa İngilizce içeriğe de razı olabileceğini belirtebilirdi. + Tarayıcılar bu tercihleri başlıkta belirtirler. Tarayıcı sadece Türkçe + içerik istendiğini şöyle belirtebilirdi:</p> + + <example>Accept-Language: tr</example> + + <p>Bu tercihin yerine getirilebilmesininin sadece, desteklenen diller + arasında bu dilin varlığına ve istenen belgenin bu dilde bir + gösteriminin bulunmasına bağlı oluşuna dikkat ediniz.</p> + + <p>Daha karmaşık bir istek örneği olarak, tarayıcının Fransızca ve + İngilizce içerik kabul etmeye ayarlandığını fakat Fransızcayı tercih + ettiğini ve çeşitli ortam türlerini kabul etmekle birlikte salt metin ve + diğer metin türlerinden ziyade HTML tercih ettiğini, ayrıca, diğer ortam + türleri üzerinde GIF veya JPEG tercih ettiğini fakat başka çare yoksa + her ortam türüne de izin verdiğini belirtiyor olsun:</p> + + <example> + Accept-Language: fr; q=1.0, en; q=0.5<br /> + Accept: text/html; q=1.0, text/*; q=0.8, image/gif; q=0.6, image/jpeg; + q=0.6, image/*; q=0.5, */*; q=0.1 + </example> + + <p>Apache, HTTP/1.1 belirtiminde tanımlanan şekliyle ‘sunucu yönetiminde’ + içerik uzlaşımını destekler. <code>Accept</code>, + <code>Accept-Language</code>, <code>Accept-Charset</code> ve + <code>Accept-Encoding</code> istek başlıklarını tamamen destekler. + Apache ayrıca, RFC 2295 ve RFC 2296’da tanımlanan bir deneysel uzlaşım + olarak ‘şeffaf’ içerik uzlaşımını da destekler. Fakat ‘özellik + uzlaşımını’ bu RFC’lerde tanımlandığı gibi desteklemez.</p> + + <p>Bir <strong>özkaynak</strong> bir URI (RFC 2396) tarafından betimlenen + kavramsal bir öğedir. Apache gibi bir HTTP sunucusu, ortam türü, + karakter kümesi, kodlama ve saire ile tanımlanmış bir bayt dizisi + şeklindeki her gösterimiyle, özkaynaklara kendi isim alanları dahilinde + erişim sağlar. Her özkaynağın aynı anda bir veya daha fazla gösterimi + mevcut olabileceği gibi hiç mevcut olmayabilir de. Eğer çok sayıda + gösterim mevcutsa, bu özkaynağın <strong>uzlaşılabilir</strong> + olduğundan ve her gösteriminin bir <strong>çeşitlilik</strong> + oluşturduğundan bunun da uzlaşımın <strong>boyutlar</strong>ından + kaynaklandığından bahsedilebilir.</p> +</section> + +<section id="negotiation"><title>Apache’de İçerik Uzlaşımı</title> + + <p>Bir özkaynak üzerinde uzlaşılırken gösterim çeşitlerinin her biri + hakkında sunucuya bilgi verilmesi gerekir. Bu iki yolla yapılabilir:</p> + + <ul> + <li>Ya gösterim çeşitlerini içeren dosyaların isimleriyle eşleşmeyi + sağlayan bir tür eşlemi kullanılır (bir <code>*.var</code> dosyası + gibi).</li> + + <li>Ya da sunucu örtük bir dosya ismi kalıbı eşleşmesinin ardından + sonuçlar arasından seçim yapar; buna ‘Çoklu Görünüm’ araması adı + verilir.</li> + </ul> + + <section id="type-map"><title>Bir türeşlem dosyası kullanmak</title> + + <p>Bir türeşlem, <code>type-map</code> eylemcisi ile ilişkili bir belgedir + (ya da eski Apache yapılandırmaları ile geriye uyumluluk için, + <code>application/x-type-map</code> <glossary>MIME türü</glossary>nde + bir belgedir). Bu özelliği kullanmak için, yapılandırmada bir tür + eşleyici olarak bir dosya ismi uzantısı için bir <code>type-map</code> + eylemcisi tanımlamalısınız. Bu, sunucu yapılandırma dosyasında en iyi + şöyle yapılabilir:</p> + + <example>AddHandler type-map .var</example> + + <p>Türeşlem dosyaları kendilerini tanımlayan özkaynak ile aynı isimde + olmalı ve her gösterim çeşidi için bir girdi içermelidir; bu girdiler + ardarda belirtilen HTTP biçem başlık satırlarından oluşur. Farklı + gösterimlerin girdileri bir boş satırla diğerlerinden ayrılır. Aynı + girdi içinde boş satır kullanılamaz. Bir eşlem dosyasını bir birleşik + öğenin tamamı için bir girdi ile başlatmak adet olmuştur (ise de, bu + gerekli değildir, hele yoksayılacaksa hiç gerekli değildir). Eşlem + dosyası için aşağıda bir örnek verilmiştir. Dosya <code>misal</code> + isimli bir özkaynak hakkında olduğundan dosyaya <code>misal.var</code> + ismi verilebilir.</p> + + <example> + URI: misal<br /> + <br /> + URI: misal.en.html<br /> + Content-type: text/html<br /> + Content-language: en<br /> + <br /> + URI: misal.fr.de.html<br /> + Content-type: text/html;charset=iso-8859-2<br /> + Content-language: fr, de<br /> + </example> + + <p>Ayrıca, bir türeşlem dosyasının <code>MultiViews</code> etkin olsa bile + dosya ismi uzantısına göre öncelik alacağına dikkat ediniz. Eğer + gösterimler bu örnekteki resim dosyasında olduğu gibi farklı kaynak + üstünlüklerine sahipseler, ortam türünün <code>qs</code> parametresi + kullanılarak kaynak üstünlükleri belirtilebilir: </p> + + <example> + URI: misal<br /> + <br /> + URI: misal.jpeg<br /> + Content-type: image/jpeg; <strong>qs=0.8</strong><br /> + <br /> + URI: misal.gif<br /> + Content-type: image/gif; <strong>qs=0.5</strong><br /> + <br /> + URI: misal.txt<br /> + Content-type: text/plain; <strong>qs=0.01</strong><br /> + </example> + + <p><code>qs</code> değerleri 0.000-1.000 değer aralığı içinde + belirtilebilir. 0.000 <code>qs</code> değerine sahip gösterimin asla + seçilmeyeceğine dikkat ediniz. Bir <code>qs</code> değeri belirtilmeyen + gösterimlerin kaynak üstünlüğü 1.000 kabul edilir. <code>qs</code> + parametresinin belirttiği değer istemcinin yeteneklerinden bağımsız + olarak olası gösterimler arasında göreli bir üstünlük ifade eder. + Örneğin bir fotoğraf sözkonusu olduğunda bir JPEG dosyasının kaynak + üstünlüğü bir ASCII çiziminkinden yüksek olacaktır. Diğer taraftan özgün + resim bir ASCII çizim olduğu takdirde, ASCII çizim, bir JPEG gösterimine + göre öncelikli olacaktır. Bu nedenle <code>qs</code> değeri özkaynağın + doğasına bakarak belirlenir.</p> + + <p>Tanınan başlıkların tam listesini <a + href="mod/mod_negotiation.html#typemaps" >mod_negotation</a> modülünün + belgesinde bulabilirsiniz.</p> + </section> + + <section id="multiviews"><title>Çoklu Görünümler</title> + + <p><code>MultiViews</code>, <code>httpd.conf</code> dosyasındaki veya + (<directive module="core">AllowOverride</directive> yönergesinin + değerine bağlı olarak) <code>.htaccess</code> dosyalarındaki <directive + module="core" type="section">Directory</directive>, <directive + module="core" type="section">Location</directive> veya <directive + module="core" type="section">Files</directive> bölümleri içinde + <directive module="core">Options</directive> yönergeleri ile + belirtilebilen, dizine özgü bir seçenektir. Yalnız, dikkatli olun, + <code>Options All</code> yaparak <code>MultiViews</code> seçeneğini + etkin kılamazsınız; seçeneği ismiyle açıkça belirtmelisiniz.</p> + + <p><code>MultiViews</code> şöyle etki eder: Sunucudan, + <code>MultiViews</code> seçeneğinin etkin olduğu <code>/bir/dizin</code> + dizininden <code>filanca</code> dosyası için bir istekte bulunulmuşsa + fakat dizinde bu dosya yoksa, sunucu dizin içeriğini + <code>filanca.*</code> dosyaları için tarar ve bu dosyalar için + istemcinin ismiyle talep ettiği ortam türlerini ve kodlamaları + kullanarak bir türeşlem dosyası uydurup bu gösterimler arasından + istemcinin gereksinimlerine en uygun gösterimi seçer.</p> + + <p><code>MultiViews</code> ayrıca, sunucunun bir dizin içeriğini + listelemeye çalıştığı durumda <directive module="mod_dir" + >DirectoryIndex</directive> yönergesi ile belirtilen dosya için de bir + arama tertipleyebilir. Eğer yapılandırma dosyalarında</p> + + <example>DirectoryIndex index</example> + + <p>şeklinde bir atama varsa ve dizinde <code>index.html</code> ve + <code>index.html3</code> dosyaları varsa sunucu bunlar arasından hakem + sıfatıyla bir seçim yapacaktır; ama bu ikisi yerine dizinde sadece + <code>index.cgi</code> mevcutsa sunucu sadece bu dosyayı + çalıştıracaktır.</p> + + <p>Okunan dizinde bulunan dosyalar arasında <code>mod_mime</code> + tarafından tanınan karakter kümesi, içerik türü, dil ve kodlama + başlıklarına uygun gösterim uzantılarından birine sahip bir dosya yoksa + sonuç <directive module="mod_mime">MultiViewsMatch</directive> + yönergesiyle yapılan tanıma bağlı olur. Bu yönerge hangi diğer dosya + uzantılarının, eylemcilerin veya süzgeçlerin çok gösterimli uzlaşımla + ilintileneceğini belirler.</p> + </section> +</section> + +<section id="methods"><title>Uzlaşım Yöntemleri</title> + + <p>Apache’nin, bir türeşlem dosyası veya dizin içindeki bir dosya + sayesinde belli bir özkaynağın gösterim çeşitlerinin bir listesini elde + ettikten sonra ‘en uygun’ gösterime karar vermek için kullanabileceği + iki yöntem vardır. Apache’nin içerik uzlaşım özelliklerinin kullanımı + sırasında uzlaşımın nasıl yerine getirileceği ile ilgili ayrıntıları + bilmek aslında gerekli değildir. Bununla birlikte belgenin kalanında bu + konu açıklanmaya çalışılmıştır.</p> + + <p>İki uzlaşım yöntemi vardır:</p> + + <ol> + <li>Normal durumda <strong>sunucu yönetiminde Apache uzlaşım + algoritması</strong> kullanılır. Bu algoritma aşağıda ayrıntılı olarak + açıklanmıştır. Bu algoritma kullanıldığı zaman, Apache, en iyi sonuca + ulaşmak için bazen belli boyutların üstünlük katsayılarıyla ‘oynar’. + Apache’nin bu katsayılarla oynama işini nasıl yaptığı aşağıda daha + ayrıntılı açıklanmıştır.</li> + + <li>İstemci bu işlem için özellikle RFC 2295’te tanımlanan mekanizmanın + kullanılmasını isterse <strong>şeffaf içerik uzlaşımı</strong> + kullanılır. Bu uzlaşım yöntemi, en uygun gösterimin seçilmesi + konusunda tarayıcıya tam denetim imkanı verir; dolayısıyla sonuç + tarayıcının bu işlem için kullandığı algoritmanın başarısına bağlıdır. + Şeffaf uzlaşım sürecinin bir parçası olarak, tarayıcı, RFC 2296’da + tanımlanan ‘gösterim çeşidini uzaktan seçme algoritması’nın + çalıştırılmasını Apache’den isteyebilir.</li> + </ol> + + <section id="dimensions"><title>Uzlaşımın Boyutları</title> + + <table> + <columnspec><column width=".15"/><column width=".85"/></columnspec> + <tr valign="top"> + <th>Boyut</th> + + <th>Açıklama</th> + </tr> + + <tr valign="top"> + <td>Ortam Türü</td> + + <td>Tarayıcı ortam türü tercihlerini <code>Accept</code> başlık alanı + ile belirtir. Her öğenin kendine özgü bir üstünlük katsayısı + olabilir. Gösterimin açıklaması da ayrıca bir kaynak üstünlüğüne + (<code>qs</code> parametresi) sahip olabilir.</td> + </tr> + + <tr valign="top"> + <td>Dil</td> + + <td>Tarayıcı dil tercihlerini <code>Accept-Language</code> başlık + alanı ile belirtir. Her öğenin kendine özgü bir üstünlük katsayısı + olabilir. Gösterimler bir kaç dilde olabileceği gibi hiç bir dille + ilişkilendirimemiş de olabilir.</td> + </tr> + + <tr valign="top"> + <td>Kodlama</td> + + <td>Tarayıcı kodlama tercihlerini <code>Accept-Encoding</code> başlık + alanı ile belirtir. Her öğenin kendine özgü bir üstünlük katsayısı + olabilir.</td> + </tr> + + <tr valign="top"> + <td>Karakter Kümesi</td> + + <td>Tarayıcı karakter kümesi tercihlerini <code>Accept-Charset</code> + başlık alanı ile belirtir. Her öğenin kendine özgü bir üstünlük + katsayısı olabilir. Gösterim çeşitleri karakter kümesini ortam + türünün bir parametresi olarak belirtebilirler.</td> + </tr> + </table> + </section> + + <section id="algorithm"><title>Apache Uzlaşım Algoritması</title> + + <p>Apache, tarayıcıya döndürülecek en uygun gösterim çeşidini (varsa) + seçmek için aşağıdaki algoritmayı kullanabilir. Bu algoritma pek de + yapılandırılabilir değildir. Şöyle çalışır:</p> + + <ol> + <li>Önce her uzlaşım boyutu için ilgili <em>Accept*</em> başlık alanına + bakılıp her gösterim çeşidine bir üstünlük katsayısı atanır. Eğer + boyutlardan bazıları için ilgili <em>Accept*</em> başlığı + uygulanabilir değilse bu boyut elenir ve sonuçta hiçbir gösterim + çeşidi kalmasza 4. adıma atlanır.</li> + + <li>‘En uygun’ gösterim çeşidi bir eleme süreciyle seçilir. Bu süreç + sırasında aşağıdaki sınamalar sırayla uygulanır. Sınamalardan + geçemeyen bir gösterim çeşidi elenir. Sınamaların bir aşamasında tek + bir gösterim çeşidi kalırsa bu en uygun eşleşme olarak seçilmiş olur + ve 3. adıma atlanır. Eğer birden fazla gösterim çeşidi kalırsa sonraki + sınamaya geçilir. + + <ol> + <li><code>Accept</code> başlığındaki üstünlük katsayısı ile + gösterimin ortam türünde belirtilen kaynak üstünlüğünün çarpımı en + büyük olan gösterim çeşidi seçilir.</li> + + <li>En yüksek dil üstünlük katsayısına sahip gösterim çeşidi seçilir. + </li> + + <li>En uygun dil eşleşmesine sahip gösterim çeşidini seçmek için + önce varsa <code>Accept-Language</code> başlığındaki dil + sıralamasına bakılır, aksi takdirde <code>LanguagePriority</code> + yönergesi ile atanmışsa oradaki dil sıralamasına bakılır.</li> + + <li>En yüksek ‘seviyeden’ ortam parametresine (text/html ortam türü + sürümünü belirtmekte kullanılır) sahip gösterim çeşitleri + seçilir.</li> + + <li><code>Accept-Charset</code> başlık satırında belirtilene bakarak + en uygun karakter kümesine sahip gösterim çeşitleri seçilir. + Alenen dışlanmadıkça ISO-8859-1 kabul edilebilir karakter + kümesidir. <code>text/*</code> ortam türüne sahip gösterim + çeşitlerinden belli bir karakter kümesi ile ilişkilendirilmemiş + olanların karakter kümesinin ISO-8859-1 olduğu varsayılır.</li> + + <li>ISO-8859-1 karakter kümesi ile ilişkilendirilmemiş gösterim + çeşitleri seçilir. Böyle hiçbir gösterim yoksa bütün gösterimler + seçilir.</li> + + <li>En uygun kodlamaya sahip gösterim çeşitleri seçilir. Tarayıcı + tarafından kabul edilebilir kodlamaya sahip gösterim çeşitleri + varsa bunlar seçilir. Yoksa kodlanmış ve kodlanmamış gösterim + çeşitleri karışık olarak mevcutsa sadece kodlanmamış olanlar + seçilir. Eğer bütün gösterim çeşitlerinin sadece kodlanmış ya da + sadece kodlanmamış gösterimleri mevcutsa hepsi seçilir.</li> + + <li>En küçük içerik uzunluğuna sahip gösterim çeşitleri seçilir.</li> + + <li>Kalan gösterim çeşitlerinin ilki seçilir. Bu ilk, ya türeşlem + dosyasında listelenen ilk çeşittir ya da gösterimler bir dizinden + okunuyorsa ASCII kod sıralamasına göre ilk sıradaki dosya ismine + sahip gösterimdir.</li> + </ol> + </li> + + <li>Algoritma, artık seçilmiş en uygun gösterim çeşidine sahipse bu + artık yanıt olarak döndürülebilir. HTTP yanıt başlığı + <code>Vary</code>’ye uzlaşım boyutları atanır (tarayıcı ve + arabellekler özkaynağı kaydederken bu bilgiyi kullanırlar) + ve algoritma sonlandırılır.</li> + + <li>Buraya gelinmişse hiçbir gösterim seçilmemiş demektir (hiçbiri + tarayıcı tarafından kabul edilebilir bulunmadığından dolayı). + Gövdesinde mevcut gösterim çeşitlerini listeleyen bir HTML belgesi 406 + durum koduyla döndürülür (406: ‘kabul edilebilir bir gösterim yok’). + Ayrıca HTTP <code>Vary</code> başlığında gösterim çeşitliliğinin + boyutları belirtilir.</li> + </ol> + </section> +</section> + +<section id="better"><title>Üstünlük Değerleriyle Oynamak</title> + + <p>Apache bazen yukarıdaki Apache uzlaşım algoritmasının kesin sonucunun + beklenenden farklı olması için üstünlük değerleriyle oynar. Bunu tam ve + doğru bilgi göndermeyen tarayıcılar için algoritmadan en iyi sonucu elde + etmek amacıyla yapar. Bazen günümüzün en tanınmış tarayıcıları bile çoğu + durumda yanlış bir seçimle sonuçlanmayacaksa <code>Accept</code> başlık + bilgilerini göndermemektedir. Eğer tarayıcı eksiksiz ve doğru bilgi + gönderirse Apache bu değerlerle oynamayacaktır.</p> + + <section id="wildcards"><title>Ortam Türleri ve Dosyaismi Kalıpları</title> + + <p><code>Accept:</code> istek başlığı ortam türü tercihlerini yansıtır. + Ayrıca, * bir dizge ile eşleşmek üzere "image/*" veya "*/*" gibi ortam + türü kalıpları da içerebilir. Dolayısıyla şöyle bir istek,</p> + + <example>Accept: image/*, */*</example> + + <p>diğer türler gibi "image/" ile başlayan ortam türlerini kabul + edilebilir kılacaktır. Bazı tarayıcılar ortam türlerini örtük olarak + elde etmek amacıyla hep bu tür kalıplar gönderirler. Örnek:</p> + + <example> + Accept: text/html, text/plain, image/gif, image/jpeg, */* + </example> + + <p>Bunun amacı, açıkça listelenmiş türlerin tercih edildiğini, fakat + farklı gösterimler varsa onların da kabul edilebileceğini belirtmektir. + Üstünlük değerlerini doğrudan kullanarak tarayıcılar gerçekte ne + istediklerini şuna benzer şekilde belirtebilirler:</p> + + <example> + Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01 + </example> + + <p>Açıkça belirtilen türler için üstünlük katsayısı belirtilmemiştir, + dolayısıyla üstünlük katsayılarının 1.0 (en yüksek) olduğu + varsayılmaktadır. */* kalıbı 0.01 gibi çok daha düşük bir öncelik + belirtmektedir. Bu bakımdan, ancak, açıkça belirtilen türlerden + hiçbirinin bulunmaması halinde diğer türler eşleşecektir.</p> + + <p>Eğer <code>Accept:</code> başlığı <em>hiçbir</em> <code>q</code> + katsayısı içermiyorsa ve başlıkta "*/*" belirtilmişse, Apache istenen + davranışı taklit etmek için bu kalıba 0.01 katsayısını atar. Keza + "type/*" kalıbına da 0.02 katsayısını atar (yani, */* kalıbına göre + tercihli olur). Eğer <code>Accept:</code> alanındaki her ortam türü bir + <code>q</code> katsayısı içeriyorsa bu özel değerler uygulanmaz. + Dolayısıyla gerekli bilgiyi açıkça bildiren tarayıcılardan gelen + istekler umulduğu gibi işlem görecektir.</p> + </section> + + <section id="exceptions"><title>Dil Uzlaşımında İstisnalar</title> + + <p>Apache 2.0’dan itibaren, uzlaşım algoritmasına, bir eşleşme bulmak + konusunda algoritma başarılı olamadığı takdirde hoş bir son çareye izin + vermek için bazı istisnalar eklenmiştir.</p> + + <p>İstemci sunucudan bir sayfa istediğinde, sunucu, tarayıcı tarafından + gönderilen <code>Accept-language</code> başlığıyla eşleşen tek bir sayfa + bulamadığı takdirde istemciye ya “Kabul edilebilir bir gösterim çeşidi + yok” ya da “Çok sayıda seçim belirtilmiş” yanıtını döndürür. Bu hata + iletilerinden kaçınmak için bu gibi durumlarda Apache + <code>Accept-language</code> başlığını yoksaymaya ayarlanabilir. Böylece + istemcinin isteğine tam olarak uymasa da bir belge sağlanır. Bu hata + iletilerinin birini veya her ikisini de geçersiz kılmak için <directive + module="mod_negotiation">ForceLanguagePriority</directive> yönergesi + kullanılabilir ve sunucunun kararını <directive + module="mod_negotiation">LanguagePriority</directive> yönergesine + dayanarak vermesi sağlanabilir.</p> + + <p>Sunucu ayrıca, tam bir eşleşme bulunmadığı zaman lehçelerle de eşleşme + arayabilir. Örneğin, bir istemci Britanya İngilizcesi + (<code>en-GB</code>) ile yazılmış belgeler için istekte bulunursa, + sunucu normalde HTTP/1.1 standardına göre bir belgenin basitçe + <code>en</code> olarak imlenmesine izin vermez. (Bir okuyucu Britanya + İngilizcesini anlıyor ama genel İngilizceyi anlamıyor diye + <code>Accept-Language</code> başlığında <code>en</code> değil de + <code>en-GB</code>’yi belirtmesinin hemen hemen daima bir yapılandırma + hatasına yol açacağına dikkat ediniz. Maalesef, mevcut istemcilerin çoğu + öntanımlı yapılandırmalarında buna benzer şeyler yapmaktadır.) Bununla + birlikte, başka bir dille eşleşme mümkün değilse ve sunucu “Kabul + edilebilir bir gösterim çeşidi yok” hatasını döndürmeye hazırsa veya + <directive module="mod_negotiation" >LanguagePriority</directive> son + çaresine ayarlanmışsa alt küme belirtimini yok sayacak ve + <code>en</code> belge isteklerine <code>en-GB</code> belgelerle yanıt + verecektir. Apache, lehçenin üyesi olduğu anadili, istemcinin kabul + edilebilir diller listesine örtük olarak düşük bir üstünlük değeri ile + ekler. Yalnız şuna dikkat edin, eğer istemci tercihini "en-GB; q=0.9, + fr; q=0.8" olarak belirtirse ve sunucuda sadece "en" ve "fr" belgeleri + varsa sunucu "fr" belge ile yanıt verecektir. HTTP/1.1 belirtimi ile + uyumluluğu sağlamak ve düzgün yapılandırılmış istemcilerle gerektiği + gibi çalışabilmek için bu gereklidir.</p> + + <p>Gelişmiş tekniklerin (çerezler, özel URL yolları gibi) desteklenmesi + sırasında, kullanıcının tercih ettiği dili saptamak için Apache 2.0.47 + sürümünden beri <module>mod_negotiation</module> modülü + <code>prefer-language</code> <a href="env.html">ortam değişkenini</a> + tanımaktadır. Değişken mevcutsa ve uygun bir dil yaftası içeriyorsa + <module>mod_negotiation</module> uygun gösterimi seçmeyi deneyecektir. + Böyle bir gösterim çeşidi mevcut değilse normal uzlaşım işlemi + uygulanacaktır.</p> + + <example><title>Örnek</title> + SetEnvIf Cookie "language=(.+)" prefer-language=$1<br /> + Header append Vary cookie + </example> + </section> +</section> + +<section id="extensions"> + <title>Şeffaf İçerik Uzlaşımının Genişletilmesi</title> + + <p>Apache, şeffaf içerik uzlaşımı protokolünü (RFC 2295) şöyle genişletir: + Sadece içerik kodlamasına özgü olmak üzere gösterim çeşidi listelerinde + gösterim çeşitlerini imlemek için yeni bir <code>{encoding ..}</code> + elemanı kullanılır. RVSA/1.0 algoritmasının (RFC 2296) gerçeklenimi, + listedeki kodlanmış gösterim çeşitlerini tanımak ve onları + <code>Accept-Encoding</code> başlık alanıyla ilgili olarak kabul + edilebilir kodlamalara aday gösterim çeşitleri olarak kullanmak üzere + genişletilmiştir. RVSA/1.0 gerçeklenimi, en uygun gösterim çeşidi + seçiminin öncesinde hesaplanmış üstünlük katsayısını virgülden sonra beş + haneye yuvarlamaz.</p> +</section> + +<section id="naming"><title>Hiperbağlar ve İsimlendirme Uzlaşımları</title> + + <p>Eğer dil uzlaşımı kullanıyorsanız ve birden fazla dosya ismi uzantısına + sahip dosyalarınız varsa uzantıların sıralamasının normalde uygunsuz + düştüğü farklı isimlendirme yaklaşımlarında bulunabilirsiniz (ayrıntılar + için <a href="mod/mod_mime.html#multipleext">mod_mime</a> belgesine + bakınız).</p> + + <p>Bir MIME türü uzantısına sahip bir dosyanın (<code>html</code> gibi), + kodlanmış bir gösterimi (<code>gz</code> gibi) mevcut olabilir. Bu + dosyanın ayrıca farklı dillerdeki gösterimleri için de bir uzantısı + (<code>en</code> gibi) olabilir.</p> + + <p>Örnekler:</p> + + <ul> + <li>misal.en.html</li> + + <li>misal.html.en</li> + + <li>misal.en.html.gz</li> + </ul> + + <p>Hiperbağ olarak geçerli ve geçersiz bazı dosya ismi örnekleri:</p> + + <table border="1" cellpadding="8" cellspacing="0"> + <columnspec><column width=".2"/><column width=".2"/> + <column width=".2"/></columnspec> + <tr> + <th>Dosya ismi</th> + + <th>Geçerli Hiperbağ</th> + + <th>Geçersiz Hiperbağ</th> + </tr> + + <tr> + <td><em>misal.html.en</em></td> + + <td>misal<br /> + misal.html</td> + + <td>-</td> + </tr> + + <tr> + <td><em>misal.en.html</em></td> + + <td>misal</td> + + <td>misal.html</td> + </tr> + + <tr> + <td><em>misal.html.en.gz</em></td> + + <td>misal<br /> + misal.html</td> + + <td>misal.gz<br /> + misal.html.gz</td> + </tr> + + <tr> + <td><em>misal.en.html.gz</em></td> + + <td>misal</td> + + <td>misal.html<br /> + misal.html.gz<br /> + misal.gz</td> + </tr> + + <tr> + <td><em>misal.gz.html.en</em></td> + + <td>misal<br /> + misal.gz<br /> + misal.gz.html</td> + + <td>misal.html</td> + </tr> + + <tr> + <td><em>misal.html.gz.en</em></td> + + <td>misal<br /> + misal.html<br /> + misal.html.gz</td> + + <td>misal.gz</td> + </tr> + </table> + + <p>Yukarıdaki tabloya bakarak hiperbağlarda bir dosya ismini uzantısız + olarak (<code>misal</code> gibi) kullanmanın daima mümkün olduğunu + farkedeceksiniz. Böylece br belgenin asıl türünü gizleyebilir ve + sonradan bir hiperbağ değişikliği yapmaksızın örneğin + <code>html</code>’den <code>shtml</code> veya <code>cgi</code>’ye + geçebilirsiniz.</p> + + <p>Hiperbağlarda MIME türlerini (<code>misal.html</code> gibi) kullanmaya + devam etmek istiyorsanız dil uzantısı MIME türü uzantısının sağında + kalmalıdır (<code>misal.html.en</code> gibi).</p> +</section> + +<section id="caching"><title>Arabellekler Hakkında</title> + + <p>Bir arabellek, bir gösterimi istek URL’si ile ilişkilendirerek saklar. + Böylece, sonradan aynı URL için bir istek yapıldığında kaydettiği + gösterimi kullanabilir. Fakat özkaynak sunucuyla uzlaşılan türdeyse + arabelleğe ilk istenen çeşit saklanmış olacağından isteğe yanlış + gösterimle yanıt verilmiş olacaktır. Bunun olmaması için Apache, normal + olarak içerik uzlaşımının sonucu olarak döndürülen tüm yanıtları + HTTP/1.0 istemciler tarafından arabelleklenemez olarak imler. Apache + ayrıca, uzlaşımlı yanıtların arabelleklenmesini mümkün kılan HTTP/1.1 + protokolünü de destekler.</p> + + <p>HTTP/1.0 uyumlu istemcilerden (bir tarayıcı veya arabellek) gelen + istekler için, uzlaşıma konu yanıtların arabelleklenmesini mümkün kılmak + üzere <directive module="mod_negotiation" + >CacheNegotiatedDocs</directive> yönergesi kullanılabilir. Bu yönerge + argümansızdır ve sunucu genelinde veya sanal konakların + yapılandırılmasında kullanılabilir. Bunun HTTP/1.1 istemcilerinden gelen + isteklere bir etkisi yoktur.</p> + + <p>HTTP/1.1 istemciler için, Apache, yanıtın uzlaşım boyutlarını göstermek + üzere bir <code>Vary</code> HTTP yanıt başlığı gönderir. Arabellekler bu + bilgiyi sonraki istekleri yerel kopyadan sunarken kullanabilirler. Bir + arabelleğin uzlaşım boyutlarına bakmaksızın yerel kopyasını kullanmaya + teşvik etmek için <code>force-no-vary</code> <a href="env.html#special" + >ortam değişkenini</a> etkin kılabilirsiniz.</p> + +</section> +</manualpage> diff --git a/docs/manual/filter.xml.tr b/docs/manual/filter.xml.tr new file mode 100644 index 0000000000..b85483ea07 --- /dev/null +++ b/docs/manual/filter.xml.tr @@ -0,0 +1,163 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd"> +<?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?> +<!-- English Revision: 659902 --> +<!-- ===================================================== + Translated by: Nilgün Belma Bugüner <nilgun belgeler.org> + Reviewed by: Orhan Berent <berent belgeler.org> +========================================================== --> + +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<manualpage metafile="filter.xml.meta"> + + <title>Süzgeçler</title> + + <summary> + <p>Bu belge, Apache’de süzgeç kullanımı hakkındadır.</p> + </summary> + + <section id="intro"> <title>Apache 2’de Süzme İşlemi</title> + <related> + <modulelist> + <module>mod_filter</module> + <module>mod_deflate</module> + <module>mod_ext_filter</module> + <module>mod_include</module> + <module>mod_charset_lite</module> + </modulelist> + <directivelist> + <directive module="mod_filter">FilterChain</directive> + <directive module="mod_filter">FilterDeclare</directive> + <directive module="mod_filter">FilterProtocol</directive> + <directive module="mod_filter">FilterProvider</directive> + <directive module="mod_mime">AddInputFilter</directive> + <directive module="mod_mime">AddOutputFilter</directive> + <directive module="mod_mime">RemoveInputFilter</directive> + <directive module="mod_mime">RemoveOutputFilter</directive> + <directive module="mod_ext_filter">ExtFilterDefine</directive> + <directive module="mod_ext_filter">ExtFilterOptions</directive> + <directive module="core">SetInputFilter</directive> + <directive module="core">SetOutputFilter</directive> + </directivelist> + </related> + + <p>Apache 2.0 ve sonrasında mevcut olan Süzgeç Zinciri, uygulamaların + nereden geldiğine bakmaksızın gelen ve giden verileri oldukça esnek ve + yapılandırılabilir tarzda işlemesini mümkün kılar. Böylece, gelen veriyi + bir takım ön işlemlerden geçirebilir, giden veriyi de son bir defa bazı + işlemlere sokabiliriz. Bu işlem temel olarak geleneksel istek işleme + aşamalarından bağımsızdır.</p> + + <p class="figure"> + <img src="images/filter_arch.tr.png" width="569" height="392" + alt="Süzgeçler, İstek işleme eksenine dik bir veri eksenine peş peşe + yerleştirilebilir." /> + </p> + + <p>Standard Apache dağıtımıyla gelen süzgeç uygulamalarından bazıları:</p> + + <ul> + <li><module>mod_include</module>, sunucu taraflı içerik yerleştirmeyi + gerçekler.</li> + <li><module>mod_ssl</module>, SSL şifrelemesini gerçekler (https).</li> + <li><module>mod_deflate</module>, veri sıkıştırma/açma işlemlerini + çalışma anında gerçekleştirir.</li> + <li><module>mod_charset_lite</module>, karakter kümeleri arasında + dönüşümü gerçekleştirir.</li> + <li><module>mod_ext_filter</module>, harici bir yazılımı bir süzgeç + olarak çalıştırır.</li> + </ul> + + <p>Apache, bunlardan başka, bayt dizilerinin elde edilmesi ve içeriğin + bölünmesi gibi işlemleri gerçekleştirmek için bir takım dahili süzgeçler + de kullanabilir.</p> + + <p>Üçüncü parti süzgeç modülleri tarafından gerçeklenmiş çok geniş bir + uygulama alanı mevcuttur; <a href="http://modules.apache.org/" + >modules.apache.org</a> ve benzerlerinden temin edilebilecek bu tür + modüllerden bazılarının uygulama alanları:</p> + + <ul> + <li>HTML ve XML belgelerin işlenmesi ve yazılması</li> + <li>XSLT dönüşümleri ve XInclude’lar</li> + <li>XML İsim-alanı desteği</li> + <li>HTML Formlarının çözümlenmesi ve sunucuya dosya yükleme</li> + <li>Resim işleme</li> + <li>PHP betikleri gibi zararlı olabilecek uygulamalardan korunma</li> + <li>Metin düzenleme ve arama işlemleri</li> + </ul> + </section> + + <section id="smart"><title>Akıllı Süzme</title> + <p class="figure"> + <img src="images/mod_filter_new.tr.png" width="423" height="331" + alt="Farklı süzgeç üreticilerinin uygulamaları istek işlemenin durumuna + bağlı olarak akıllıca uygulanabilir."/> + </p> + + <p><module>mod_filter</module>, Apache 2.1 ve sonrasında mevcut olup, + süzgeç zincirinin çalışma anında devingen olarak yapılandırılabilmesini + mümkün kılar. Böylece, örneğin, bir vekili, özgün sunucunun ne + göndereceğini bilmeden HTML’yi bir HTML süzgeciyle yazmaya ve JPEG + resimleri tamamen farklı bir süzgeçten geçirmeye ayarlayabilirsiniz. Bu, + asıl içeriğe bağlı olarak çalışma anında içeriği farklı içerik + sağlayıcılara dağıtan bir süzgeç düzeneği kullanılarak çalışır. Bir + süzgeç, doğrudan zincire yerleştirilip koşulsuz olarak + çalıştırılabileceği gibi bir içerik sağlayıcı gibi kullanılarak zincire + devingen olarak yerleştirilebilir. Örneğin:</p> + + <ul> + <li>Bir HTML işleme süzgeci sadece içerik text/html veya + application/xhtml+xml olduğu takdirde çalışır.</li> + <li>Bir sıkıştırma süzgeci sadece girdi sıkıştırılabilir nitelikteyse ve + sıkıştırılmamışsa çalışır.</li> + <li>Bir karakter kümesi dönüşüm süzgeci, bir metin belgesi istenen + karakter kümesine sahip değilse zincire yerleştirilir.</li> + </ul> + </section> + + <section id="using"><title>Süzgeçlerin Kullanımı</title> + <p>Süzgeçler iki şekilde kullanılır: Basit ve Devingen. + Genelde ikisinden biri kullanılır; karışık kullanılırsa istenmeyen + sonuçlara yol açabilir (ise de, basit girdi süzme ile çıktı süzme işlemi + basit olsun olmasın karışık kullanılabilir).</p> + + <p>Basit yol, girdi süzgeçlerini yapılandırmanın tek yoludur ve bir + durağan süzgeç zincirinin gerektiği yerlerde çıktı süzgeçleri için + yeterlidir. İlgili yönergeler: + <directive module="core">SetInputFilter</directive>, + <directive module="core">SetOutputFilter</directive>, + <directive module="mod_mime">AddInputFilter</directive>, + <directive module="mod_mime">AddOutputFilter</directive>, + <directive module="mod_mime">RemoveInputFilter</directive> ve + <directive module="mod_mime">RemoveOutputFilter</directive>.</p> + + <p>Devingen yol, <module>mod_filter</module> belgesinde açıklandığı gibi, + çıktı süzgeçlerinin hem durağan hem de esnek ve devingen olarak + yapılandırılabilmesini mümkün kılar. İlgili yönergeler: + <directive module="mod_filter">FilterChain</directive>, + <directive module="mod_filter">FilterDeclare</directive> ve + <directive module="mod_filter">FilterProvider</directive>.</p> + + <p><directive module="core">AddOutputFilterByType</directive> yönergesi + hala desteklenmekteyse de sorun çıkarabilmesi sebebiyle kullanımı artık + önerilmemektedir. Onun yerine devingen yapılandırma kullanınız.</p> + + </section> +</manualpage> diff --git a/docs/manual/handler.xml.tr b/docs/manual/handler.xml.tr new file mode 100644 index 0000000000..74c9d7cf1f --- /dev/null +++ b/docs/manual/handler.xml.tr @@ -0,0 +1,159 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd"> +<?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?> +<!-- English Revision: 420990 --> +<!-- ===================================================== + Translated by: Nilgün Belma Bugüner <nilgun belgeler.org> + Reviewed by: Orhan Berent <berent belgeler.org> +========================================================== --> + +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<manualpage metafile="handler.xml.meta"> + + <title>Apache Eylemcilerinin Kullanımı</title> + + <summary> + <p>Bu belgede Apache Eylemcilerinin kullanımı açıklanmıştır.</p> + </summary> + + <section id="definition"> + <title>Eylemci Nedir?</title> + <related> + <modulelist> + <module>mod_actions</module> + <module>mod_asis</module> + <module>mod_cgi</module> + <module>mod_imagemap</module> + <module>mod_info</module> + <module>mod_mime</module> + <module>mod_negotiation</module> + <module>mod_status</module> + </modulelist> + <directivelist> + <directive module="mod_actions">Action</directive> + <directive module="mod_mime">AddHandler</directive> + <directive module="mod_mime">RemoveHandler</directive> + <directive module="core">SetHandler</directive> + </directivelist> + </related> + + + <p>Bir <em>eylemci</em> bir dosya çağrıldığında uygulanacak eylemin Apache + dahilindeki gösterimidir. Genellikle dosyaların kendi türüne bağlı + olarak örtük eylemcileri vardır. Normalde tüm dosyalar basitçe sunucu + tarafından sunulurlar, fakat bazı dosya türleri normalden farklı şekilde + ele alınırlar.</p> + + <p>Eylemciler, dosya türünden bağımsız olarak dosyanın bulunduğu yere veya + dosya ismi uzantısına göre de yapılandırılabilirler. Gerek, zarif bir + çözüm oluşuyla gerekse, hem dosya türünü hem de bir dosya ile ilişkili + bir eylemciyi mümkün kılması sebebiyle bunun getirisi daha yüksektir. + (Ayrıca, <a href="mod/mod_mime.html#multipleext">çok uzantılı + dosyalara</a> da bakınız.)</p> + + <p>Eylemciler sunucu içinde derlenebileceği gibi bir modül olarak ya da + <directive module="mod_actions">Action</directive> yönergesi ile de + sunucuya dahil edilebilirler. Standart dağıtımda bulunan yerleşik + eylemciler şunlardır:</p> + + <ul> + <li><strong>default-handler</strong>: Dosyayı, öntanımlı olarak durağan + içeriği işlemekte kullanılan <code>default_handler()</code> işlevini + kullanarak gönderir. (<module>core</module>)</li> + + <li><strong>send-as-is</strong>: Dosyayı HTTP başlıklarıyla olduğu gibi + gönderir. (<module>mod_asis</module>)</li> + + <li><strong>cgi-script</strong>: Dosyayı bir CGI betiği olarak ele alır. + (<module>mod_cgi</module>)</li> + + <li><strong>imap-file</strong>: Dosyayı bir resim eşleme kuralları + dosyası olarak çözümler. (<module>mod_imagemap</module>)</li> + + <li><strong>server-info</strong>: Sunucunun yapılandırma bilgisini + döndürür. (<module>mod_info</module>)</li> + + <li><strong>server-status</strong>: Sunucunun durum raporunu döndürür. + (<module>mod_status</module>)</li> + + <li><strong>type-map</strong>: Dosyayı içerik uzlaşımı için bir tür + eşlem dosyası olarak çözümler. (<module>mod_negotiation</module>)</li> + </ul> + </section> + + <section id="examples"> + <title>Örnekler</title> + + <section id="example1"> + <title>Bir CGI betiği kullanarak durağan içeriğin değiştirilmesi</title> + + <p>Aşağıdaki yönergeler sayesinde, <code>html</code> uzantılı dosyalar + için yapılan istekler <code>footer.pl</code> CGI betiğininin + çalıştırılmasına sebep olacaktır.</p> + + <example> + Action add-footer /cgi-bin/footer.pl<br/> + AddHandler add-footer .html + </example> + + <p>Bu yapılandırmayla, istenen belgenin özgün haliyle mi (yeri + <code>PATH_TRANSLATED</code> ortam değişkenindedir) yoksa istenen + değişiklikler veya eklemeler yapıldıktan sonra mı gönderileceğinden + CGI betiği sorumlu olacaktır.</p> + + </section> + <section id="example2"> + <title>HTTP başlıklı dosyalar</title> + + <p>Aşağıdaki yönergeler kendi HTTP başlıklarını içeren dosyalar için + kullanılan <code>send-as-is</code> eylemcisini etkinleştirmek amacıyla + kullanılmıştır. <code>/siteler/htdocs/asis/</code> dizinindeki tüm + dosyalar dosya ismi uzantılarına bakılmaksızın <code>send-as-is</code> + eylemcisi tarafından işleme sokulacaktır.</p> + + <example> + <Directory /siteler/htdocs/asis><br/> + <indent>SetHandler send-as-is</indent> + </Directory> + </example> + + </section> + </section> + <section id="programmer"> + <title>Yazılım Geliştirenler İçin</title> + + <p>Eylemci özellikleri gerçeklenirken kullanılmak üzere <a + href="developer/API.html">Apache API</a>’ye bir ekleme yapılmıştır. + Özellikle de, <code>request_rec</code> yapısına yeni bir kayıt + eklenmiştir:</p> + + <example> + char *handler + </example> + + <p>Modülünüzün bir eylemciyi devreye sokmasını isterseniz, tek yapacağınız + isteğin <code>invoke_handler</code> aşamasının hemen öncesinde + <code>r->handler</code> alanına eylemcinin ismini atamak olacaktır. + Eylemciler daha önce de bahsedildiği gibi bir içerik türü yerine bir + eylemci ismi kullanılarak gerçeklenirler. Çok gerekli olmamakla + birlikte, eylemciler için kullanılan adlandırma uzlaşımları gereğince, + ismi oluşturan sözcükler, ortam türü isim alanını ihlal etmemek amacıyla + bölü imleri ile değil tire imleri ile ayrılırlar.</p> + </section> +</manualpage> diff --git a/docs/manual/images/caching_fig1.tr.png b/docs/manual/images/caching_fig1.tr.png Binary files differnew file mode 100644 index 0000000000..0ccf94e99f --- /dev/null +++ b/docs/manual/images/caching_fig1.tr.png diff --git a/docs/manual/images/filter_arch.tr.png b/docs/manual/images/filter_arch.tr.png Binary files differnew file mode 100644 index 0000000000..9696fccbb9 --- /dev/null +++ b/docs/manual/images/filter_arch.tr.png diff --git a/docs/manual/images/mod_filter_new.tr.png b/docs/manual/images/mod_filter_new.tr.png Binary files differnew file mode 100644 index 0000000000..8ec1371a33 --- /dev/null +++ b/docs/manual/images/mod_filter_new.tr.png diff --git a/docs/manual/mod/mod_alias.xml.tr b/docs/manual/mod/mod_alias.xml.tr new file mode 100644 index 0000000000..5031b80b97 --- /dev/null +++ b/docs/manual/mod/mod_alias.xml.tr @@ -0,0 +1,429 @@ +<?xml version="1.0"?> +<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> +<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?> +<!-- English Revision: 554716 --> +<!-- ===================================================== + Translated by: Nilgün Belma Bugüner <nilgun belgeler.org> + Reviewed by: Orhan Berent <berent belgeler.org> +========================================================== --> + +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<modulesynopsis metafile="mod_alias.xml.meta"> + +<name>mod_alias</name> +<description>Belge ağacının parçalarının dosya sisteminin parçalarıyla +eşlenmesini sağlar ve URL yönlendirmesi yapar.</description> +<status>Base</status> +<sourcefile>mod_alias.c</sourcefile> +<identifier>alias_module</identifier> + + <summary> + <p>Bu modülde bulunan yönergeler sunucuya istek olarak gelen URL’lerin + denetlenmesini ve değiştirilmesini mümkün kılar. <directive + module="mod_alias" >Alias</directive> ve <directive module="mod_alias" + >ScriptAlias</directive> yönergeleri URL’lerin dosya sisteminin + dizinlerine eşlenmesini sağlar. Böylece, kök dizini <directive + module="core">DocumentRoot</directive> ile belirtilen site belge ağacı + altında bulunmayan içeriğe erişmek mümkün olur. <directive + module="mod_alias" >ScriptAlias</directive> yönergesi buna ek olarak + hedef dizini sadece CGI betiklerini içeren dizin olarak imler.</p> + + <p><directive module="mod_alias">Redirect</directive> yönergesi, + farklı bir URL ile yeni bir istek yapmaları için istemcileri + yönlendirmekte kullanılır. Çoğunlukla özkaynak başka bir yere + taşındığında kullanılır.</p> + + <p><module>mod_alias</module> modülü basit URL değiştirme görevlerini + yerine getirmek için tasarlanmıştır. Sorgu dizgelerini işleme sokmak + gibi daha karmaşık görevler için <module>mod_rewrite</module> modülü ile + sağlanan araçlar kullanılır.</p> + + </summary> + + <seealso><module>mod_rewrite</module></seealso> <seealso><a + href="../urlmapping.html">URL’lerin Dosya sistemi ile Eşlenmesi</a> + </seealso> + + <section id="order"><title>İşlem Sırası</title> + + <p>Farklı bağlamlarda bulunan <directive module="mod_alias" + >Alias</directive> ve <directive module="mod_alias">Redirect</directive> + yönergeleri standart <a href="../sections.html#mergin">katıştırma + kuralları</a> ile ilgili diğer yönergeler gibi işleme sokulur. Fakat + aynı bağlam dahilinde (örneğin, aynı <directive type="section" + module="core">VirtualHost</directive> bölümünde) çok fazla <directive + module="mod_alias" >Alias</directive> ve <directive + module="mod_alias">Redirect</directive> varsa bunlar belli bir + sıraya göre işleme sokulurlar.</p> + + <p>İlk adımda, <directive module="mod_alias">Alias</directive>’lardan önce + bütün <directive module="mod_alias">Redirect</directive> yönergeleri + işleme sokulur. Bu bakımdan bir <directive module="mod_alias" + >Redirect</directive> veya <directive module="mod_alias" + >RedirectMatch</directive> ile eşleşen bir istek için + hiçbir <directive module="mod_alias" >Alias</directive> + uygulanmayacaktır. İkinci adımda yapılandırma dosyasında yer aldıkları + sıraya göre <directive module="mod_alias" >Redirect</directive> ve + <directive module="mod_alias" >Alias</directive> yönergeleri işleme + sokulurlar, dolayısıyla ilk eşleşme öncelikli olmuş olur.</p> + + <p>İlk eşleşmenin öncelikli olması sebebiyle, bu yönergelerin birden + fazlası aynı alt yola uygulandığı takdirde, tüm yönergelerin etkili + olabilmesi için en uzun yolu sıralamada en öne almalısınız. Örneğin + aşağıdaki yapılandırma beklendiği gibi çalışacaktır:</p> + + <example> + Alias /foo/bar /baz<br /> + Alias /foo /gaz + </example> + + <p>Ama yukarıdaki iki satır ters sırada yerleştirilmiş olsaydı, + <code>/foo</code> rumuzu daima <code>/foo/bar</code> rumuzundan önce + eşleşecek, dolayısıyla ikinci yönerge yok sayılacaktı.</p> + + </section> + +<directivesynopsis> +<name>Alias</name> +<description>URL’leri dosya sistemi konumlarıyla eşler.</description> +<syntax>Alias <var>URL-yolu</var> +<var>dosya-yolu</var>|<var>dizin-yolu</var></syntax> +<contextlist><context>server config</context><context>virtual host</context> +</contextlist> + + <usage> + + <p><directive>Alias</directive> yönergesi, belgelerin <directive + module="core">DocumentRoot</directive> dizininden farklı bir yerde + saklanmasını mümkün kılar. <code><em>URL-yolu</em></code> ile başlayan + URL’ler (% imlemesi çözüldükten sonra) <code><em>dizin-yolu</em></code> + ile başlayan yerel dosyalarla eşlenir. <code><em>URL-yolu</em></code>, + harf büyüklüğüne duyarsız sistemlerde bile harf büyüklüğüne + duyarlıdır.</p> + + <example><title>Örnek:</title> + Alias /image /ftp/pub/image + </example> + + <p><code>http://sunucum/image/foo.gif</code> şeklinde bir istek, sunucunun + <code>/ftp/pub/image/foo.gif</code> dosyasıyla yanıt vermesine sebep + olurdu. Sadece tam yol parçaları eşleştirilir; bu bakımdan yukarıdaki + <directive>Alias</directive> yapılandırması + <code>http://sunucum/imagefoo.gif</code> ile eşleşmez. Düzenli + ifadelerin kullanıldığı daha karmaşık eşleşmeler için <directive + module="mod_alias" >AliasMatch</directive> yönergesine bakınız.</p> + + <p><code><em>URL-yolu</em></code>’nu bir <code>/</code> ile + sonlandırırsanız <directive>Alias</directive> yönergesini yorumlarken + sunucunun da sona bir <code>/</code> ekleyeceğine dikkat ediniz. Yani, + eğer <example>Alias /icons/ /usr/local/apache/icons/</example> diye bir + tanım yaparsanız <code>/icons</code> URL’si için bir + <directive>Alias</directive> kullanılmayacaktır.</p> + + <p><directive>Alias</directive> <em>hedefleri</em> için ek <directive + type="section" module="core" >Directory</directive> bölümleri + belirtmeniz gerekebileceğine dikkat ediniz. <directive type="section" + module="core" >Directory</directive> bölümlerinden önce yer alan + <directive>Alias</directive> yönergelerine özellikle bakılır, + dolayısıyla sadece <directive>Alias</directive> hedefleri etkilenir. + (Bununla birlikte, <directive>Alias</directive> yönergelerinden önce + işleme sokulan <directive type="section" + module="core">Location</directive> bölümlerinin uygulanacağına dikkat + ediniz.)</p> + + <p>Özellikle, <directive module="core">DocumentRoot</directive> dışında + bir dizine bir <directive>Alias</directive> oluşturuyorsanız hedef + dizine doğrudan erişim izni vermeniz gerekebilir.</p> + + <example><title>Örnek:</title> + Alias /image /ftp/pub/image<br /> + <Directory /ftp/pub/image><br /> + <indent> + Order allow,deny<br /> + Allow from all<br /> + </indent> + </Directory> + </example> + </usage> +</directivesynopsis> + +<directivesynopsis> +<name>AliasMatch</name> +<description>URL’leri dosya sistemi konumlarıyla düzenli ifadeleri kullanarak +eşler.</description> +<syntax>AliasMatch <var>düzenli-ifade</var> +<var>dosya-yolu</var>|<var>dizin-yolu</var></syntax> +<contextlist><context>server config</context><context>virtual host</context> +</contextlist> + + <usage> + <p>Bu yönerge <code><em>URL-yolu</em></code> ile eşleşmek üzere bir + <glossary ref="regex">düzenli ifade</glossary> kabul etmesi dışında + <directive module="mod_alias">Alias</directive> yönergesine eşdeğerdir. + Belirtilen düzenli ifade <code><em>URL-yolu</em></code> ile eşleşiyorsa + sunucu parantezli eşleşmeleri belirtilen dizgede kullanarak dosya yolunu + elde eder. Örneğin, <code>/icons</code> dizinini etkinleştirmek için şu + yazılabilir:</p> + + <example> + AliasMatch ^/icons(.*) /usr/local/apache/icons$1 + </example> + + <p>Ayrıca, <code><em>URL-yolu</em></code> ile harf büyüklüğüne duyarsız + eşleşmeler sağlayacak düzenli ifadeler de kullanılabilir:</p> + + <example> + AliasMatch (?i)^/image(.*) /ftp/pub/image$1 + </example> + </usage> +</directivesynopsis> + +<directivesynopsis> +<name>Redirect</name> +<description>İstemciyi, bir yönlendirme isteği döndürerek farklı bir URL’ye +yönlendirir.</description> +<syntax>Redirect [<var>durum</var>] <var>URL-yolu</var> +<var>URL</var></syntax> +<contextlist><context>server config</context><context>virtual host</context> +<context>directory</context><context>.htaccess</context></contextlist> +<override>FileInfo</override> + + <usage> + <p><directive>Redirect</directive> yönergesi istemciye bir yönlendirme + isteği döndürerek eski URL’yi yenisiyle eşler.</p> + + <p>Eski <code><em>URL-yolu</em></code> bir bölü çizgisi ile başlar ve harf + büyüklüğüne duyarlıdır (% imlemesi çözüldükten sonra). + <code><em>URL-yolu</em></code> olarak göreli yollara izin verilmez. + <code><em>URL</em></code> ise ya bir şema ve konak ismi ile başlayan bir + mutlak URL ya da bir bölü çizgisi ile başlayan bir URL yolu olmalıdır. + İkinci durumda URL yolunun başına geçerli sunucu ismi ve şemayı sunucu + ekler.</p> + + <p><code><em>URL-yolu</em></code> ile başlayan istekler istemciye hedef + <code><em>URL</em></code> konumuna bir yönlendirme isteği olarak + dönecektir. <code><em>URL-yolu</em></code>’nun devamı niteliğindeki ek + yol hedef URL’ye eklenir.</p> + + <example><title>Örnek:</title> + Redirect /hizmet http://iki.mesela.dom/hizmet + </example> + + <p>İstemcinin yaptığı <code>http://mesela.dom/hizmet/fesmekan.txt</code> + isteğine karşılık istemciye isteği + <code>http://iki.mesela.dom/hizmet/fesmekan.txt</code> olarak yapması + söylenecektir. Sadece tam yol parçaları eşleştirilir, bu nedenle + <code>http://mesela.dom/hizmetfesmekan.txt</code> isteği yukarıdaki + yönlendirme ile eşleşmeyecektir. Düzenli ifadelerin kullanıldığı daha + karmaşık eşleşmeler için <directive module="mod_alias" + >RedirectMatch</directive> yönergesine bakınız.</p> + + + <note><title>Bilginize</title> + <p>Yapılandırma dosyasında yer alış sırasına bakmaksızın + <directive>Redirect</directive> yönergeleri + <directive>Alias</directive> ve <directive>ScriptAlias</directive> + yönergelerinden önce ele alınır.</p></note> + + <p>Herhangi bir <code><em>durum</em></code> belirtilmemişse "geçici" + yönlendirme (HTTP durum kodu: 302) yapılır. Bu, istemciye özkaynağın + geçici olarak başka yere taşındığını belirtir. Diğer HTTP durum + kodlarını döndürmek için kullanılabilecek <code><em>durum</em></code> + değerleri:</p> + + <dl> + <dt><code>permanent</code></dt> + <dd>İstemciye özkaynağın kalıcı olarak taşındığını belirten kalıcı + yönlendirme durumu (301) döndürülür.</dd> + + <dt><code>temp</code></dt> + <dd>İstemciye geçici yönlendirme durumu (302) döner. Bu öntanımlıdır. + </dd> + + <dt><code>seeother</code></dt> + <dd>İstemciye özkaynağın yerine başka bir şey konduğunu belirten + "diğerine bak" durumu (303) döndürülür.</dd> + + <dt><code>gone</code></dt> + <dd>İstemciye özkaynağın kalıcı olarak kaldırıldığını belirten "ölü + bağlantı" durumu (410) döner. Bu durumda <code><em>URL</em></code> + belirtilmez.</dd> + </dl> + + <p>Diğer durum kodları için <code><em>durum</em></code> olarak sayısal + durum kodu belirtilir. Eğer durum 300 ile 399 arasındaysa bir + <code><em>URL</em></code> belirtmek gereklidir, yoksa belirtilmez. + Belirtilecek durum kodunu Apache’nin bilmesi gerektiğine dikkat ediniz + (<code>http_protocol.c</code> dosyasında bulunan + <code>send_error_response</code> işlevine bakınız).</p> + + <example><title>Örnek:</title> + Redirect permanent /bir http://mesela.dom/iki<br /> + Redirect 303 /yedi http://mesela.dom/baskabisey + </example> + </usage> +</directivesynopsis> + +<directivesynopsis> +<name>RedirectMatch</name> +<description>Geçerli URL ile eşleşen bir düzenli ifadeye dayanarak bir harici +yönlendirme gönderir.</description> +<syntax>RedirectMatch [<var>durum</var>] <var>düzenli-ifade</var> +<var>URL</var></syntax> +<contextlist><context>server config</context><context>virtual host</context> +<context>directory</context><context>.htaccess</context></contextlist> +<override>FileInfo</override> + + <usage> + <p>Bu yönerge <code><em>URL-yolu</em></code> ile eşleşmek üzere bir + <glossary ref="regex">düzenli ifade</glossary> kabul etmesi dışında + <directive module="mod_alias">Redirect</directive> yönergesine + eşdeğerdir. Belirtilen düzenli ifade <code><em>URL-yolu</em></code> ile + eşleşiyorsa sunucu parantezli eşleşmeleri belirtilen dizgede kullanarak + dosya yolunu elde eder. Örneğin, tüm GIF dosyası isteklerini başka bir + sunucudaki aynı isimli JPEG dosyalarına yönlendirmek için şu + yazılabilir:</p> + + <example> + RedirectMatch (.*)\.gif$ http://baska.sunucu.dom$1.jpg + </example> + </usage> +</directivesynopsis> + +<directivesynopsis> +<name>RedirectTemp</name> +<description>İstemciyi, geçici bir yönlendirme isteği döndürerek farklı bir +URL’ye yönlendirir.</description> +<syntax>RedirectTemp <var>URL-yolu</var> <var>URL</var></syntax> +<contextlist><context>server config</context><context>virtual host</context> +<context>directory</context><context>.htaccess</context></contextlist> +<override>FileInfo</override> + + <usage> + <p>Bu yönerge istemciye daima geçici yönlendirme durumu (302) döndürür. + Yani, <code>Redirect temp</code> ile aynı işi yapar.</p> + </usage> +</directivesynopsis> + +<directivesynopsis> +<name>RedirectPermanent</name> +<description>İstemciyi, kalıcı bir yönlendirme isteği döndürerek farklı bir +URL’ye yönlendirir.</description> +<syntax>RedirectPermanent <var>URL-yolu</var> <var>URL</var></syntax> +<contextlist><context>server config</context><context>virtual host</context> +<context>directory</context><context>.htaccess</context></contextlist> +<override>FileInfo</override> + + <usage> + <p>Bu yönerge istemciye daima kalıcı yönlendirme durumu (301) döndürür. + Yani, <code>Redirect permanent</code> ile aynı işi yapar.</p> + </usage> +</directivesynopsis> + +<directivesynopsis> +<name>ScriptAlias</name> +<description>Bir URL’yi dosya sistemindeki bir yere eşler ve hedefi bir CGI betiği olarak çalıştırır.</description> +<syntax>ScriptAlias <var>URL-yolu</var> +<var>dosya-yolu</var>|<var>dizin-yolu</var></syntax> +<contextlist><context>server config</context><context>virtual host</context> +</contextlist> + + <usage> + <p>Hedef dizini, <module>mod_cgi</module> modülünün CGI betiği + yorumlayıcısı tarafından çalıştırılacak betikleri içeren dizin olarak + imlemesi dışında <directive module="mod_alias">Alias</directive> + yönergesinin yaptığı işi yapar. <code><em>URL-yolu</em></code> ile + başlayan harf büyüklüğüne duyarlı URL’ler (% imlemesi çözüldükten + sonra), dosya sistemindeki bir tam yol olarak belirtilmiş + <code><em>dizin-yolu</em></code> ile başlayan betiklerle eşlenir.</p> + + <example><title>Örnek:</title> + ScriptAlias /cgi-bin/ /siteler/cgi-bin/ + </example> + + <p><code>http://sunucum/cgi-bin/foo</code> şeklindeki bir istek sunucunun + <code>/siteler/cgi-bin/foo</code> betiğini çalıştırmasına sebep olur. Bu + yapılandırma aslında şuna eşdeğerdir:</p> + + <example> + Alias /cgi-bin/ /siteler/cgi-bin/<br /> + <Location /cgi-bin ><br /> + <indent> + SetHandler cgi-script<br /> + Options +ExecCGI<br /> + </indent> + </Location> + </example> + + <note type="warning">Yapılandırma değiştiğinde kaynak kodlarının ister + istemez açığa çıkmasını istemiyorsanız CGI betiklerinizi <directive + module="core">DocumentRoot</directive> altına koymayınız. + <directive>ScriptAlias</directive> yönergesi URL’yi doğru yere + eşlemekten başka orayı bir CGI betikleri dizini olarak imler. CGI + betiklerinizi <directive module="core">DocumentRoot</directive> altına + koyarsanız çalıştırmak için <directive>ScriptAlias</directive> değil, + <directive module="core" type="section" >Directory</directive>, + <directive module="core">SetHandler</directive> ve <directive + module="core">Options</directive> yönergelerini örnekteki gibi kullanın: + + <example> + <Directory /usr/local/apache2/htdocs/cgi-bin ><br /> + <indent> + SetHandler cgi-script<br /> + Options ExecCGI<br /> + </indent> + </Directory> + </example> + + Aynı dosya sistemi konumu ile çok sayıda <code><em>URL-yolu</em></code> + eşleşebileceğinden, bir <directive module="core">Directory</directive> + bölümü ile sınırlanmadığı takdirde CGI betiklerinin kaynak kodları açığa + çıkabilir; bu bakımdan <directive>ScriptAlias</directive> yönergesini yok + sayan URL yollarının belirtilebilme olasılığı gözardı + edilmemelidir.</note> + + </usage> + <seealso><a href="../howto/cgi.html">CGI Öğreticisi</a></seealso> +</directivesynopsis> + +<directivesynopsis> +<name>ScriptAliasMatch</name> +<description>Bir URL’yi dosya sistemindeki bir yere düzenli ifade kullanarak +eşler ve hedefi bir CGI betiği olarak çalıştırır.</description> +<syntax>ScriptAliasMatch <var>düzenli-ifade</var> +<var>dosya-yolu</var>|<var>dizin-yolu</var></syntax> +<contextlist><context>server config</context><context>virtual host</context> +</contextlist> + + <usage> + <p>Bu yönerge <code><em>URL-yolu</em></code> ile eşleşmek üzere bir + <glossary ref="regex">düzenli ifade</glossary> kabul etmesi dışında + <directive module="mod_alias">ScriptAlias</directive> yönergesine + eşdeğerdir. Belirtilen düzenli ifade <code><em>URL-yolu</em></code> ile + eşleşiyorsa sunucu parantezli eşleşmeleri belirtilen dizgede kullanarak + dosya yolunu elde eder. Örneğin, standart <code>/cgi-bin</code> dizinini + etkin kılmak için şu yazılabilir:</p> + + <example> + ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1 + </example> + </usage> +</directivesynopsis> + +</modulesynopsis> diff --git a/docs/manual/mod/mod_dir.xml.tr b/docs/manual/mod/mod_dir.xml.tr new file mode 100644 index 0000000000..02d3af08a7 --- /dev/null +++ b/docs/manual/mod/mod_dir.xml.tr @@ -0,0 +1,157 @@ +<?xml version="1.0"?> +<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> +<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?> +<!-- English Revision: 420990 --> +<!-- ===================================================== + Translated by: Nilgün Belma Bugüner <nilgun belgeler.org> + Reviewed by: Orhan Berent <berent belgeler.org> +========================================================== --> + +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<modulesynopsis metafile="mod_dir.xml.meta"> +<name>mod_dir</name> +<description>Bölü çizgisiyle biten yönlendirmeleri yapar ve dizin içeriği dosyalarını sunar.</description> +<status>Base</status> +<sourcefile>mod_dir.c</sourcefile> +<identifier>dir_module</identifier> + +<summary> + <p>Bir dizin içerik dosyası şu iki kaynaktan birinden gelebilir:</p> + + <ul> + <li>Kullanıcı tarafından yazılmış ve ismi genellikle + <code>index.html</code> olan bir dosya. Dosya ismi <directive + module="mod_dir" >DirectoryIndex</directive> yönergesi ile belirlenir. + Bu, <module>mod_dir</module> modülü tarafından denetlenir.</li> + + <li>Aksi takdirde içerik listesi sunucu tarafından üretilir. Bu, + <module>mod_autoindex</module> modülü tarafından sağlanır.</li> + </ul> + <p>Bu iki işlev tamamen birbirinden ayrıdır, dolayısıyla eğer isterseniz + kendiliğinden dizin içerik listesi üretimini tamamen iptal + edebilirsiniz.</p> + + <p>Sunucu <code>http://sunucum/filanca/birdizin</code> şeklinde bir istek + aldığında <code>birdizin</code> bir dizinin ismiyse ‘bölü çizgisiyle + biten’ bir yönlendirme söz konusudur. Dizinler URL sonuna bir bölü + çizgisi eklenmesini gerektirir, bu bakımdan <module>mod_dir</module> + modülü isteği <code>http://sunucum/filanca/birdizin/</code> şeklinde + yönlendirir.</p> +</summary> + +<directivesynopsis> +<name>DirectoryIndex</name> +<description>İstemci bir dizin istediğinde dizin içeriğini listeler. +</description> +<syntax>DirectoryIndex + <var>yerel-url</var> [<var>yerel-url</var>] ...</syntax> +<default>DirectoryIndex index.html</default> +<contextlist><context>server config</context><context>virtual host</context> +<context>directory</context><context>.htaccess</context></contextlist> +<override>Indexes</override> + +<usage> + <p><directive>DirectoryIndex</directive> yönergesi, istemci, dizinin + sonuna bir bölü çizgisi ekleyerek dizin içeriğinin listelenmesini + istediğinde bakılmak üzere özkaynakları listeler. + <code><em>yerel-url</em></code>, sunucu üstünde istenen dizine göreli + bir belgenin URL’sidir; normal olarak dizin içindeki bir dosyanın + ismidir. Çeşitli URL’ler verilebilirse de sunucu daima ilk bulduğuyla + dönecektir. Eğer özkaynakların hiçbiri yoksa ve <code>Indexes</code> + seçeneği atanmışsa sunucu dizin içeriğinden bir liste üretecektir.</p> + + <example><title>Örnek:</title> + DirectoryIndex index.html + </example> + + <p>Bu yapılandırmadan sonra yapılan bir + <code>http://sunucum/belgeler/</code> isteğine karşılık, sunucu, + mevcutsa <code>http://sunucum/belgeler/index.html</code> dosyasını + döndürecek, değilse ürettiği dizin içerik listesini gönderecektir.</p> + + <p>Belgelerin dizine göreli olmasının gerekmediğine dikkat ediniz.</p> + + <example> + DirectoryIndex index.html index.txt /cgi-bin/index.pl + </example> + + <p>Bu örnekte ise dizin içinde ne <code>index.html</code> ne de + <code>index.txt</code> mevcut olduğunda <code>/cgi-bin/index.pl</code> + CGI betiği çalıştırılacaktır.</p> +</usage> +</directivesynopsis> + +<directivesynopsis> +<name>DirectorySlash</name> +<description>Bölü çizgisi ile biten yönlendirmeleri açar/kapar.</description> +<syntax>DirectorySlash On|Off</syntax> +<default>DirectorySlash On</default> +<contextlist><context>server config</context><context>virtual host</context> +<context>directory</context><context>.htaccess</context></contextlist> +<override>Indexes</override> +<compatibility>Apache 2.0.51 ve sonrasında mevcuttur.</compatibility> + +<usage> + <p><directive>DirectorySlash</directive> yönergesi, bir dizin isteğinde + bulunan URL’lerin sonuna <module>mod_dir</module> modülü tarafından bir + bölü çizgisi eklenip eklenmeyeceğini belirler.</p> + + <p>Normalde, bir kullanıcı sona bir bölü çizgisi eklemeden bir dizin için + istekte bulunursa <module>mod_dir</module> zaten onu aynı özkaynağa + yönlendirir, fakat isteğin sonuna bir bölü çizgisi eklenmesinin bazı iyi + sebepleri vardır:</p> + + <ul> + <li>Kullanıcı bunun sonucunda meşru bir URL ile istekte bulunmuş olur.</li> + <li><module>mod_autoindex</module> gerektiği gibi çalışır. Yoksa + bağlantıdaki yolu sunamayacağından yanlış yolu gösterirdi.</li> + <li><directive module="mod_dir">DirectoryIndex</directive> yönergesi + sadece bölü çizgisi ile biten dizin istekleri için değerlendirilir.</li> + <li>HTML sayfa içindeki göreli URL başvuruları gerektiği gibi + çalışacaktır.</li> + </ul> + + <p>Siz yine de bu etkiyi istemezseniz ve yukarıdaki sebepler de size uygun + değilse yönlendirmeyi şöyle kapatabilirsiniz:</p> + + <example> + # Aşağıdaki güvenlik uyarısına bakınız!<br /> + <Location /bir/yol><br /> + <indent> + DirectorySlash Off<br /> + SetHandler bir-eylemci<br /> + </indent> + </Location> + </example> + + <note type="warning"><title>Güvenlik Uyarı</title> + <p>Bölü çizgisi ile biten yönlendirmelerin kapatılması bir bilginin + istemeyek açığa çıkmasına sebep olabilir. <module>mod_autoindex</module> + modülünün etkin olduğunu (<code>Options +Indexes</code>) ve <directive + module="mod_dir" >DirectoryIndex</directive> ile geçerli bir özkaynağın + (<code>index.html</code> olsun) atandığını ama bu URL için başka hiçbir + özel eylemci tanımlanmadığını varsayalım. Bu durumda bölü çizgisi ile + biten bir istek olduğunda <code>index.html</code> dosyası sunulurdu. + <strong>Fakat bölü çizgisi ile bitmeyen bir istek dizin içeriğinin + listelenmesi ile sonuçlanırdı.</strong></p> + </note> +</usage> +</directivesynopsis> + +</modulesynopsis> |