From b6f431e754279cc4b395b69e1fb71a1116bebf46 Mon Sep 17 00:00:00 2001 From: Takashi Sato Date: Thu, 10 Jul 2008 15:13:38 +0000 Subject: [PATCH] new Turkish translations MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Submitted by: Nilgün Belma Bugüner Reviewed by: Orhan Berent git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@675612 13f79535-47bb-0310-9956-ffa450edef68 --- docs/manual/caching.xml.tr | 728 +++++++++++++++++++++++ docs/manual/content-negotiation.xml.tr | 642 ++++++++++++++++++++ docs/manual/filter.xml.tr | 163 +++++ docs/manual/handler.xml.tr | 159 +++++ docs/manual/images/caching_fig1.tr.png | Bin 0 -> 11460 bytes docs/manual/images/filter_arch.tr.png | Bin 0 -> 2502 bytes docs/manual/images/mod_filter_new.tr.png | Bin 0 -> 1326 bytes docs/manual/mod/mod_alias.xml.tr | 429 +++++++++++++ docs/manual/mod/mod_dir.xml.tr | 157 +++++ 9 files changed, 2278 insertions(+) create mode 100644 docs/manual/caching.xml.tr create mode 100644 docs/manual/content-negotiation.xml.tr create mode 100644 docs/manual/filter.xml.tr create mode 100644 docs/manual/handler.xml.tr create mode 100644 docs/manual/images/caching_fig1.tr.png create mode 100644 docs/manual/images/filter_arch.tr.png create mode 100644 docs/manual/images/mod_filter_new.tr.png create mode 100644 docs/manual/mod/mod_alias.xml.tr create mode 100644 docs/manual/mod/mod_dir.xml.tr 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 @@ + + + + + + + + + + + Önbellek Kullanım Kılavuzu + + +

Bu belge mod_cache, + mod_disk_cache, mod_mem_cache, + mod_file_cache modülleri ve htcacheclean 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.

+
+ +
+ Giriş + +

Apache HTTP sunucusunun 2.2 sürümünden itibaren + mod_cache ve mod_file_cache 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.

+ +

mod_cache, ortam sağlayıcı modülleri olan + mod_mem_cache ve mod_disk_cache ile + birlikte HTTP önbelleklemesini akıllıca yerine getirir. İçeriğin kendisi + önbellekte saklanırken mod_cache 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. mod_cache, + 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.

+ +

mod_file_cache 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 + mod_file_cache, 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, mod_file_cache, çok sık + değişmeyen durağan yerel dosyalara erişim zamanını azaltmaya yardım + eder.

+ +

CacheFile ve MMapStatic yönergeleri ile ilgili + bölümlerde anlatılanları saymazsak mod_file_cache, bu + belgenin asıl konusu olan mod_cache önbellekleme + mimarisine göre daha basit bir önbellekleme gerçeklenimidir.

+ +

Bu belgeden azami yararı sağlayabilmek için temel bir HTTP bilginizin + olması ve URL’lerin Dosya Sistemine + Eşlenmesi ile İçerik Uzlaşımı + belgelerini okumuş olmanız gerekir.

+ +
+ +
+ + Önbelleklemeye Bir Bakış + + + + mod_cache + mod_mem_cache + mod_disk_cache + mod_file_cache + + + CacheEnable + CacheDisable + MMapStatic + CacheFile + CacheFile + UseCanonicalName + CacheNegotiatedDocs + + + +

Bir istek sonuçlanıncaya kadar mod_cache modülünde iki + aşamadan geçer. İlkinde mod_cache bir URL eşleme modülü + olarak çalışır ve URL önbellekteyse ve zaman aşımına uğramamışsa isteğin + doğrudan mod_cache tarafından sunulmasını sağlar.

+ +

Yani isteğin sunumu sırasında, isteğin örneğin, + mod_proxy veya mod_rewrite tarafından + ele alınması gerekse bile bu yapılmaz. Önbelleklenen içerik ilk alındığı + haliyle sunulur.

+ +

Eğer URL önbellekte yoksa, mod_cache isteği bir süzgece 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.

+ +

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 + mod_cache ö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.

+ +
+ Önbelleğin Hızlandırılması + +

Yerel içerik önbelleklendiği takdirde UseCanonicalName yönergesine On + 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 + On 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.

+ +

Ö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. Sunucu Taraflı + İçerikleri kullanmazsanız genellikle bunun fazla bir önemi + olmaz.

+ + + <!-- Bu içerik önbelleklenebilir. -->
+ <!--#include virtual="/dipnot.html" -->
+
+ <!-- Bu içerik önbelleklenemez. -->
+ <!--#include file="/bir/yol/dipnot.html" --> +
+ +

Sunucu Taraflı İçerikleri kullanıyorsanız ve önbelleklemenin + sağladığı hız artışından da yaralanmak istiyorsanız içerik + yerleştirmek için virtual içerik türünü kullanınız.

+
+ +
+ Zaman Aşımı Süreleri + +

Önbellekli öğeler için öntanımlı zaman aşımı süresi bir saat olmakla + birlikte CacheDefaultExpire + 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.

+ +

Bir yanıt Expires başlığını değil de + Last-Modified başlığını içeriyorsa + mod_cache zaman aşımı süresini CacheLastModifiedFactor yönergesinin + nasıl kullanıldığına bakarak saptar.

+ +

Yerel içerik için, zaman aşımı süresini hassas olarak ayarlamak + gerekirse mod_expires kullanılabilir.

+ +

Zaman aşımı süresinin üst sınırı CacheMaxExpire yönergesi ile + belirlenebilir.

+ +
+ +
+ Şartlı İstekler için Özlü Kılavuz + +

Ö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.

+ +

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.

+ +

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.

+ +

Aksi takdirde bir şartlı istek yapılmamış gibi içeriğin kendisi + sunulur.

+ +

Ö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.

+ +

İkinci olarak, şartlı istekler arka sunucuda normalden daha az + faaliyete sebep olur. Durağan dosyalar için bu genellikle + stat() 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).

+
+ +
+ Neler Önbelleklenebilir? + +

Evvelce bahsedildiği gibi Apache’de iki tür önbellekleme yapılır ve + bunlar farklı yöntemlerle çalışır. mod_file_cache + ö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.

+ +

mod_cache ö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:

+ +
    +
  1. Önbellekleme bu URL ile etkin kılınabilmelidir. CacheEnable ve CacheDisable yönergelerine bakınız.
  2. + +
  3. Yanıtın HTTP durum kodu 200, 203, 300, 301 veya 410 olmalıdır.
  4. + +
  5. İstek bir HTTP GET isteği olmalıdır.
  6. + +
  7. İstek bir "Authorization:" başlığı içeriyorsa yanıt önbelleğe + alınmayacaktır.
  8. + +
  9. 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.
  10. + +
  11. 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.
  12. + +
  13. CacheIgnoreNoLastMod + 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.
  14. + +
  15. CacheStorePrivate + 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.
  16. + +
  17. Benzer şekilde, CacheStoreNoStore 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.
  18. + +
  19. Herşeyle eşleşen "*" değerli bir "Vary:" başlığı içeren bir + yanıtın içeriği önbelleğe alınmaz.
  20. +
+
+ +
+ Neler Önbelleklenmemeli? + +

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.

+ +

İç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.

+ +

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.

+
+ +
+ Değişken/Uzlaşımlı İçerik + +

"Vary" başlıklı bir yanıt arka sunucudan istenirken + mod_cache tarafından alınmışsa akıllıca ele alınmaya + çalışılacaktır. Mümkünse, mod_cache gelecekte bu + içerikle ilgili isteklerin "Vary" başlıklı yanıtları olacağını + saptayacak ve önbellekten doğru içerikle yanıt verecektir.

+ +

Örneğin, bir yanıt şöyle bir başlık ile alınmışsa,

+ + + Vary: negotiate,accept-language,accept-charset + + +

mod_cache sadece accept-language ve accept-charset + başlıkları özgün istekle eşleşen önbellekli içeriği sunacaktır.

+
+ +
+ +
+ Güvenlik Kaygıları + +
+ Erişim Denetimi ve Yetkilendirme + +

mod_cache ç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.

+ +

Olası .htaccess dosyalarının dosya sisteminin tamamında + taranması çok pahalı bir işlem olduğundan mod_cache, + (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 mod_cache 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.

+ +

Ö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 CacheDisable + yönergesini veya mod_expires kullanarak + yapabilirsiniz. Bunu yapmaz, olayı kendi haline bırakırsanız + mod_cache 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.

+
+ +
+ Yerel İstismarcılar + +

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.

+ +

Eğer Apache kullanıcısı, örneğin bir CGI sürecindeki açık nedeniyle + tehlikeye atılırsa, önbellek hedef alınabilir. + mod_disk_cache kullanılırken önbellekteki bir öğeyi + değiştirmek veya önbelleğe yeni bir öğe eklemek görece daha + kolaydır.

+ +

Bu risk, Apache kullanıcısını kullanan diğer saldırı türleriyle + karşılaştırıldığında daha yüksektir. mod_disk_cache + 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 suEXEC kullanarak CGI süreçlerini + Apache kullanıcısı olmayan bir kullanıcının aidiyetinde çalıştırın.

+ +
+ +
+ Önbellek Zehirlenmeleri + +

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.

+ +

Ö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.

+ +

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.

+
+
+ +
+ Dosya Tanıtıcı Önbelleklemesi + + + + mod_file_cache + mod_mem_cache + + + CacheFile + CacheEnable + CacheDisable + + + +

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.

+ +
+ <code>CacheFile</code> yönergesi ile + +

Apache’de mevcut önbelleklemenin en temel şekli + mod_file_cache 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, CacheFile yönergesi yapılandırma dosyasında belirtilerek + sağlanabilir.

+ +

CacheFile 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.

+ + + CacheFile /usr/local/apache2/htdocs/index.html + + +

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.

+ +

CacheFile 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.

+ +

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.

+
+ +
+ <code>CacheEnable</code> yönergesi ile + +

mod_mem_cache modülünün ayrıca, CacheEnable yönergesi üzerinden etkin + kılınabilen kendine özgü bir dosya tanıtıcı önbellekleme şeması + vardır.

+ + + CacheEnable fd / + + +

mod_cache’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.

+
+
+ +
+ Sistem Belleğinde Önbellekleme + + + + mod_mem_cache + mod_file_cache + + + CacheEnable + CacheDisable + MMapStatic + + + +

İç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.

+ +

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.

+ +
+ İşletim Sistemi Önbelleklemesi + +

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:

+ + + colm@coroebus:~$ time cat testfile > /dev/null
+ real 0m0.065s
+ user 0m0.000s
+ sys 0m0.001s
+ colm@coroebus:~$ time cat testfile > /dev/null
+ real 0m0.003s
+ user 0m0.003s
+ sys 0m0.000s +
+ +

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.

+ +

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.

+ +

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.

+
+ +

İş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.

+ +

Ö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.

+ +
+ <code>MMapStatic</code> yönergesi ile + +

mod_file_cache 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 MMapStatic yönergesini sağlar. + Apache bu dosyaya gelecek sonraki istekler için dosyanın bellekiçi + içeriğini kullanacaktır.

+ + + MMapStatic /usr/local/apache2/htdocs/index.html + + +

CacheFile yönergesinde + olduğu gibi bu dosyalarda Apache başlatıldıktan sonra yapılacak bir + değişiklikten Apache’nin haberi olmayacaktır.

+ +

MMapStatic 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.

+
+ +
+ <code>mod_mem_cache</code> modülü ile + +

mod_mem_cache modülü HTTP belirtimine uygun olarak + bellekiçi önbelleklemeyi akıllıca uygular. Ayrıca yüksek belleği + doğrudan kullanabildiğinden MMap desteği olmayan + sistemlerde bile bellekiçi önbellekleme yapabilir.

+ +

Bu tür önbellekleme şöyle etkin kılınabilir:

+ + + # Bellekiçi önbelleklemeyi etkin kılalım
+ CacheEnable mem /
+
+ # Önbellek 1 Megabayttan büyük olmasın
+ MCacheSize 1024 +
+
+
+ +
+ Disk Üzerinde Önbellekleme + + + + mod_disk_cache + + + CacheEnable + CacheDisable + + + +

mod_disk_cache modülü önbelleklemenin + mod_cache için disk üzerinde yapılmasını mümkün kılar. + mod_mem_cache 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.

+ +

Modül bu amaçla genelde şöyle kullanılır:

+ + + CacheRoot /var/cache/apache/
+ CacheEnable disk /
+ CacheDirLevels 2
+ CacheDirLength 1 +
+ +

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.

+ +
+ Önbellekte Saklamanın Anlamı + +

mod_disk_cache öğ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.

+ +

Ö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 xyTGxSMO2b68mBCykqkp1w 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 CacheDirLevels ve CacheDirLength yönergelerinin + değerlerine göre önce dizinlere ayrılır.

+ +

CacheDirLevels + 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 + /var/cache/apache/x/y/TGxSMO2b68mBCykqkp1w gibi bir önek + getirilebilirdi.

+ +

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. + CacheDirLength + 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 CacheDirLength için değer olarak + "1" belirtmenizi öneririz.

+ +

CacheDirLevels + 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.

+ +

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.

+ +

"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.

+
+ +
+ Disk Önbelleğinin Bakımı + +

mod_disk_cache 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.

+ +

Bunun yerine Apache önbellek içeriğini düzenli aralıklarla + temizleyebilmeniz için htcacheclean adında bir araç + içerir. Önbellek için azami ne kadar yer kullanılacağının ve bunun + üzerinde htcacheclean’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.

+ +

htcacheclean 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 + htcacheclean’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 + htcacheclean’in çalıştırılma aralığını iyi + belirlemek gerekir.

+ +

+
+ Şekil 1: + Önbelleğin büyümesi ve düzenli aralıklarla temizlenmesi.

+ +

mod_disk_cache ne kadar önbellek alanı kullandığı + ile ilgili bir bilgi vermediğinden htcacheclean’in + bir temizlik sonrası yeterince büyük bir genişleme alanı kalacak + şekilde yapılandırılması önemlidir.

+
+ +
+ +
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 @@ + + + + + + + + + + +İçerik Uzlaşımı + + + +

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.

+ +

İçerik uzlaşımı öntanımlı olarak derlenen + mod_negotiation modülü tarafından sağlanır.

+
+ +
İçerik Uzlaşımı Hakkında + +

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:

+ + Accept-Language: tr + +

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.

+ +

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:

+ + + Accept-Language: fr; q=1.0, en; q=0.5
+ 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 +
+ +

Apache, HTTP/1.1 belirtiminde tanımlanan şekliyle ‘sunucu yönetiminde’ + içerik uzlaşımını destekler. Accept, + Accept-Language, Accept-Charset ve + Accept-Encoding 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.

+ +

Bir özkaynak 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 uzlaşılabilir + olduğundan ve her gösteriminin bir çeşitlilik + oluşturduğundan bunun da uzlaşımın boyutlarından + kaynaklandığından bahsedilebilir.

+
+ +
Apache’de İçerik Uzlaşımı + +

Bir özkaynak üzerinde uzlaşılırken gösterim çeşitlerinin her biri + hakkında sunucuya bilgi verilmesi gerekir. Bu iki yolla yapılabilir:

+ +
    +
  • Ya gösterim çeşitlerini içeren dosyaların isimleriyle eşleşmeyi + sağlayan bir tür eşlemi kullanılır (bir *.var dosyası + gibi).
  • + +
  • 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.
  • +
+ +
Bir türeşlem dosyası kullanmak + +

Bir türeşlem, type-map eylemcisi ile ilişkili bir belgedir + (ya da eski Apache yapılandırmaları ile geriye uyumluluk için, + application/x-type-map MIME türü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 type-map + eylemcisi tanımlamalısınız. Bu, sunucu yapılandırma dosyasında en iyi + şöyle yapılabilir:

+ + AddHandler type-map .var + +

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 misal + isimli bir özkaynak hakkında olduğundan dosyaya misal.var + ismi verilebilir.

+ + + URI: misal
+
+ URI: misal.en.html
+ Content-type: text/html
+ Content-language: en
+
+ URI: misal.fr.de.html
+ Content-type: text/html;charset=iso-8859-2
+ Content-language: fr, de
+
+ +

Ayrıca, bir türeşlem dosyasının MultiViews 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 qs parametresi + kullanılarak kaynak üstünlükleri belirtilebilir:

+ + + URI: misal
+
+ URI: misal.jpeg
+ Content-type: image/jpeg; qs=0.8
+
+ URI: misal.gif
+ Content-type: image/gif; qs=0.5
+
+ URI: misal.txt
+ Content-type: text/plain; qs=0.01
+
+ +

qs değerleri 0.000-1.000 değer aralığı içinde + belirtilebilir. 0.000 qs değerine sahip gösterimin asla + seçilmeyeceğine dikkat ediniz. Bir qs değeri belirtilmeyen + gösterimlerin kaynak üstünlüğü 1.000 kabul edilir. qs + 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 qs değeri özkaynağın + doğasına bakarak belirlenir.

+ +

Tanınan başlıkların tam listesini mod_negotation modülünün + belgesinde bulabilirsiniz.

+
+ +
Çoklu Görünümler + +

MultiViews, httpd.conf dosyasındaki veya + (AllowOverride yönergesinin + değerine bağlı olarak) .htaccess dosyalarındaki Directory, Location veya Files bölümleri içinde + Options yönergeleri ile + belirtilebilen, dizine özgü bir seçenektir. Yalnız, dikkatli olun, + Options All yaparak MultiViews seçeneğini + etkin kılamazsınız; seçeneği ismiyle açıkça belirtmelisiniz.

+ +

MultiViews şöyle etki eder: Sunucudan, + MultiViews seçeneğinin etkin olduğu /bir/dizin + dizininden filanca dosyası için bir istekte bulunulmuşsa + fakat dizinde bu dosya yoksa, sunucu dizin içeriğini + filanca.* 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.

+ +

MultiViews ayrıca, sunucunun bir dizin içeriğini + listelemeye çalıştığı durumda DirectoryIndex yönergesi ile belirtilen dosya için de bir + arama tertipleyebilir. Eğer yapılandırma dosyalarında

+ + DirectoryIndex index + +

şeklinde bir atama varsa ve dizinde index.html ve + index.html3 dosyaları varsa sunucu bunlar arasından hakem + sıfatıyla bir seçim yapacaktır; ama bu ikisi yerine dizinde sadece + index.cgi mevcutsa sunucu sadece bu dosyayı + çalıştıracaktır.

+ +

Okunan dizinde bulunan dosyalar arasında mod_mime + 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ç MultiViewsMatch + 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.

+
+
+ +
Uzlaşım Yöntemleri + +

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.

+ +

İki uzlaşım yöntemi vardır:

+ +
    +
  1. Normal durumda sunucu yönetiminde Apache uzlaşım + algoritması 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.
  2. + +
  3. İstemci bu işlem için özellikle RFC 2295’te tanımlanan mekanizmanın + kullanılmasını isterse şeffaf içerik uzlaşımı + 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.
  4. +
+ +
Uzlaşımın Boyutları + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BoyutAçıklama
Ortam TürüTarayıcı ortam türü tercihlerini Accept 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 + (qs parametresi) sahip olabilir.
DilTarayıcı dil tercihlerini Accept-Language 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.
KodlamaTarayıcı kodlama tercihlerini Accept-Encoding başlık + alanı ile belirtir. Her öğenin kendine özgü bir üstünlük katsayısı + olabilir.
Karakter KümesiTarayıcı karakter kümesi tercihlerini Accept-Charset + 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.
+
+ +
Apache Uzlaşım Algoritması + +

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:

+ +
    +
  1. Önce her uzlaşım boyutu için ilgili Accept* 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 Accept* başlığı + uygulanabilir değilse bu boyut elenir ve sonuçta hiçbir gösterim + çeşidi kalmasza 4. adıma atlanır.
  2. + +
  3. ‘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. + +
      +
    1. Accept 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.
    2. + +
    3. En yüksek dil üstünlük katsayısına sahip gösterim çeşidi seçilir. +
    4. + +
    5. En uygun dil eşleşmesine sahip gösterim çeşidini seçmek için + önce varsa Accept-Language başlığındaki dil + sıralamasına bakılır, aksi takdirde LanguagePriority + yönergesi ile atanmışsa oradaki dil sıralamasına bakılır.
    6. + +
    7. 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.
    8. + +
    9. Accept-Charset 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. text/* 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.
    10. + +
    11. 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.
    12. + +
    13. 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.
    14. + +
    15. En küçük içerik uzunluğuna sahip gösterim çeşitleri seçilir.
    16. + +
    17. 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.
    18. +
    +
  4. + +
  5. 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ığı + Vary’ye uzlaşım boyutları atanır (tarayıcı ve + arabellekler özkaynağı kaydederken bu bilgiyi kullanırlar) + ve algoritma sonlandırılır.
  6. + +
  7. 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 Vary başlığında gösterim çeşitliliğinin + boyutları belirtilir.
  8. +
+
+
+ +
Üstünlük Değerleriyle Oynamak + +

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 Accept başlık + bilgilerini göndermemektedir. Eğer tarayıcı eksiksiz ve doğru bilgi + gönderirse Apache bu değerlerle oynamayacaktır.

+ +
Ortam Türleri ve Dosyaismi Kalıpları + +

Accept: 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,

+ + Accept: image/*, */* + +

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:

+ + + Accept: text/html, text/plain, image/gif, image/jpeg, */* + + +

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:

+ + + Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01 + + +

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.

+ +

Eğer Accept: başlığı hiçbir q + 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 Accept: alanındaki her ortam türü bir + q 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.

+
+ +
Dil Uzlaşımında İstisnalar + +

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.

+ +

İstemci sunucudan bir sayfa istediğinde, sunucu, tarayıcı tarafından + gönderilen Accept-language 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 + Accept-language 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 ForceLanguagePriority yönergesi + kullanılabilir ve sunucunun kararını LanguagePriority yönergesine + dayanarak vermesi sağlanabilir.

+ +

Sunucu ayrıca, tam bir eşleşme bulunmadığı zaman lehçelerle de eşleşme + arayabilir. Örneğin, bir istemci Britanya İngilizcesi + (en-GB) ile yazılmış belgeler için istekte bulunursa, + sunucu normalde HTTP/1.1 standardına göre bir belgenin basitçe + en olarak imlenmesine izin vermez. (Bir okuyucu Britanya + İngilizcesini anlıyor ama genel İngilizceyi anlamıyor diye + Accept-Language başlığında en değil de + en-GB’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 + LanguagePriority son + çaresine ayarlanmışsa alt küme belirtimini yok sayacak ve + en belge isteklerine en-GB 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.

+ +

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 mod_negotiation modülü + prefer-language ortam değişkenini + tanımaktadır. Değişken mevcutsa ve uygun bir dil yaftası içeriyorsa + mod_negotiation uygun gösterimi seçmeyi deneyecektir. + Böyle bir gösterim çeşidi mevcut değilse normal uzlaşım işlemi + uygulanacaktır.

+ + Örnek + SetEnvIf Cookie "language=(.+)" prefer-language=$1
+ Header append Vary cookie +
+
+
+ +
+ Şeffaf İçerik Uzlaşımının Genişletilmesi + +

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 {encoding ..} + elemanı kullanılır. RVSA/1.0 algoritmasının (RFC 2296) gerçeklenimi, + listedeki kodlanmış gösterim çeşitlerini tanımak ve onları + Accept-Encoding 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.

+
+ +
Hiperbağlar ve İsimlendirme Uzlaşımları + +

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 mod_mime belgesine + bakınız).

+ +

Bir MIME türü uzantısına sahip bir dosyanın (html gibi), + kodlanmış bir gösterimi (gz gibi) mevcut olabilir. Bu + dosyanın ayrıca farklı dillerdeki gösterimleri için de bir uzantısı + (en gibi) olabilir.

+ +

Örnekler:

+ +
    +
  • misal.en.html
  • + +
  • misal.html.en
  • + +
  • misal.en.html.gz
  • +
+ +

Hiperbağ olarak geçerli ve geçersiz bazı dosya ismi örnekleri:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dosya ismiGeçerli HiperbağGeçersiz Hiperbağ
misal.html.enmisal
+ misal.html
-
misal.en.htmlmisalmisal.html
misal.html.en.gzmisal
+ misal.html
misal.gz
+ misal.html.gz
misal.en.html.gzmisalmisal.html
+ misal.html.gz
+ misal.gz
misal.gz.html.enmisal
+ misal.gz
+ misal.gz.html
misal.html
misal.html.gz.enmisal
+ misal.html
+ misal.html.gz
misal.gz
+ +

Yukarıdaki tabloya bakarak hiperbağlarda bir dosya ismini uzantısız + olarak (misal 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 + html’den shtml veya cgi’ye + geçebilirsiniz.

+ +

Hiperbağlarda MIME türlerini (misal.html gibi) kullanmaya + devam etmek istiyorsanız dil uzantısı MIME türü uzantısının sağında + kalmalıdır (misal.html.en gibi).

+
+ +
Arabellekler Hakkında + +

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.

+ +

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 CacheNegotiatedDocs 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.

+ +

HTTP/1.1 istemciler için, Apache, yanıtın uzlaşım boyutlarını göstermek + üzere bir Vary 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 force-no-vary ortam değişkenini etkin kılabilirsiniz.

+ +
+
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 @@ + + + + + + + + + + + Süzgeçler + + +

Bu belge, Apache’de süzgeç kullanımı hakkındadır.

+
+ +
Apache 2’de Süzme İşlemi + + + mod_filter + mod_deflate + mod_ext_filter + mod_include + mod_charset_lite + + + FilterChain + FilterDeclare + FilterProtocol + FilterProvider + AddInputFilter + AddOutputFilter + RemoveInputFilter + RemoveOutputFilter + ExtFilterDefine + ExtFilterOptions + SetInputFilter + SetOutputFilter + + + +

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.

+ +

+ Süzgeçler, İstek işleme eksenine dik bir veri eksenine peş peşe
+ yerleştirilebilir. +

+ +

Standard Apache dağıtımıyla gelen süzgeç uygulamalarından bazıları:

+ +
    +
  • mod_include, sunucu taraflı içerik yerleştirmeyi + gerçekler.
  • +
  • mod_ssl, SSL şifrelemesini gerçekler (https).
  • +
  • mod_deflate, veri sıkıştırma/açma işlemlerini + çalışma anında gerçekleştirir.
  • +
  • mod_charset_lite, karakter kümeleri arasında + dönüşümü gerçekleştirir.
  • +
  • mod_ext_filter, harici bir yazılımı bir süzgeç + olarak çalıştırır.
  • +
+ +

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.

+ +

Üçüncü parti süzgeç modülleri tarafından gerçeklenmiş çok geniş bir + uygulama alanı mevcuttur; modules.apache.org ve benzerlerinden temin edilebilecek bu tür + modüllerden bazılarının uygulama alanları:

+ +
    +
  • HTML ve XML belgelerin işlenmesi ve yazılması
  • +
  • XSLT dönüşümleri ve XInclude’lar
  • +
  • XML İsim-alanı desteği
  • +
  • HTML Formlarının çözümlenmesi ve sunucuya dosya yükleme
  • +
  • Resim işleme
  • +
  • PHP betikleri gibi zararlı olabilecek uygulamalardan korunma
  • +
  • Metin düzenleme ve arama işlemleri
  • +
+
+ +
Akıllı Süzme +

+ Farklı süzgeç üreticilerinin uygulamaları istek işlemenin durumuna
+ bağlı olarak akıllıca uygulanabilir. +

+ +

mod_filter, 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:

+ +
    +
  • Bir HTML işleme süzgeci sadece içerik text/html veya + application/xhtml+xml olduğu takdirde çalışır.
  • +
  • Bir sıkıştırma süzgeci sadece girdi sıkıştırılabilir nitelikteyse ve + sıkıştırılmamışsa çalışır.
  • +
  • Bir karakter kümesi dönüşüm süzgeci, bir metin belgesi istenen + karakter kümesine sahip değilse zincire yerleştirilir.
  • +
+
+ +
Süzgeçlerin Kullanımı +

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).

+ +

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: + SetInputFilter, + SetOutputFilter, + AddInputFilter, + AddOutputFilter, + RemoveInputFilter ve + RemoveOutputFilter.

+ +

Devingen yol, mod_filter 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: + FilterChain, + FilterDeclare ve + FilterProvider.

+ +

AddOutputFilterByType yönergesi + hala desteklenmekteyse de sorun çıkarabilmesi sebebiyle kullanımı artık + önerilmemektedir. Onun yerine devingen yapılandırma kullanınız.

+ +
+
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 @@ + + + + + + + + + + + Apache Eylemcilerinin Kullanımı + + +

Bu belgede Apache Eylemcilerinin kullanımı açıklanmıştır.

+
+ +
+ Eylemci Nedir? + + + mod_actions + mod_asis + mod_cgi + mod_imagemap + mod_info + mod_mime + mod_negotiation + mod_status + + + Action + AddHandler + RemoveHandler + SetHandler + + + + +

Bir eylemci 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.

+ +

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, çok uzantılı + dosyalara da bakınız.)

+ +

Eylemciler sunucu içinde derlenebileceği gibi bir modül olarak ya da + Action yönergesi ile de + sunucuya dahil edilebilirler. Standart dağıtımda bulunan yerleşik + eylemciler şunlardır:

+ +
    +
  • default-handler: Dosyayı, öntanımlı olarak durağan + içeriği işlemekte kullanılan default_handler() işlevini + kullanarak gönderir. (core)
  • + +
  • send-as-is: Dosyayı HTTP başlıklarıyla olduğu gibi + gönderir. (mod_asis)
  • + +
  • cgi-script: Dosyayı bir CGI betiği olarak ele alır. + (mod_cgi)
  • + +
  • imap-file: Dosyayı bir resim eşleme kuralları + dosyası olarak çözümler. (mod_imagemap)
  • + +
  • server-info: Sunucunun yapılandırma bilgisini + döndürür. (mod_info)
  • + +
  • server-status: Sunucunun durum raporunu döndürür. + (mod_status)
  • + +
  • type-map: Dosyayı içerik uzlaşımı için bir tür + eşlem dosyası olarak çözümler. (mod_negotiation)
  • +
+
+ +
+ Örnekler + +
+ Bir CGI betiği kullanarak durağan içeriğin değiştirilmesi + +

Aşağıdaki yönergeler sayesinde, html uzantılı dosyalar + için yapılan istekler footer.pl CGI betiğininin + çalıştırılmasına sebep olacaktır.

+ + + Action add-footer /cgi-bin/footer.pl
+ AddHandler add-footer .html +
+ +

Bu yapılandırmayla, istenen belgenin özgün haliyle mi (yeri + PATH_TRANSLATED 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.

+ +
+
+ HTTP başlıklı dosyalar + +

Aşağıdaki yönergeler kendi HTTP başlıklarını içeren dosyalar için + kullanılan send-as-is eylemcisini etkinleştirmek amacıyla + kullanılmıştır. /siteler/htdocs/asis/ dizinindeki tüm + dosyalar dosya ismi uzantılarına bakılmaksızın send-as-is + eylemcisi tarafından işleme sokulacaktır.

+ + + <Directory /siteler/htdocs/asis>
+ SetHandler send-as-is + </Directory> +
+ +
+
+
+ Yazılım Geliştirenler İçin + +

Eylemci özellikleri gerçeklenirken kullanılmak üzere Apache API’ye bir ekleme yapılmıştır. + Özellikle de, request_rec yapısına yeni bir kayıt + eklenmiştir:

+ + + char *handler + + +

Modülünüzün bir eylemciyi devreye sokmasını isterseniz, tek yapacağınız + isteğin invoke_handler aşamasının hemen öncesinde + r->handler 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.

+
+
diff --git a/docs/manual/images/caching_fig1.tr.png b/docs/manual/images/caching_fig1.tr.png new file mode 100644 index 0000000000000000000000000000000000000000..0ccf94e99f37b8f48f93f93e38052a859e71e59d GIT binary patch literal 11460 zcmV;#EIZSQP)-_Tf z{O0ie*697x=KQ?b{Ik{kqs;u1!~B%N_M^%6!`=MM;{2%3{F%r6tkL|P$^4GM{C>Fn zb*$}MhPafu<;URtioX1Vy8Lvf^>C87Sd`m>w)B&` z>!ZNq)Z_Gau=Rtp>xHr9nZD_(!P=IkwI4K0ezEO?l&CZ|IW$30pTOs)z}~aL(!I*r z=IH8Ur}>_^*Q>qKt-Q^%zRJ47%e}zF#Ky^=prB`{_MN)iq`K6$y~dT7ns~49oW10u zz1xhm8rdk+D?d|dO>+bPRQdmAfLc7J$x462Tx7Ks6^Ho(=q(8J8um9^T0 ztlN;S(RX-wqr~fLr08pitb~o1hlhw|inJytC`o6ET$1l7^6-yVdexrSxNCWV_h;o5c0X&eDmg&c)Q` z*4*Q@$>GS--nPl#%GKiA9x}IuduMBr>c^^ z^UvY-004_=ZE;;-WdHyG`1tn=3k!>ji~s-s6ciNm^Yh5Z$1^iChK7dY4qoX=HI>W@oL_|b~h=};kRp|f#DUnG;K~#8N?AFPu!!QhmVZHy0%Ffi`&bu22 zA&j8JkQ7S&e_*0RL|2En(lY=600000U~D7+#RA0w#R4c6DAsEO0HDvS5L&eD*>gL_ zv%j~=_r}YbFP^&rRcUNi+k5(h_{p)cJUtuF)hWTV4>780wbvVpWhIC??!{uoITkCP z?oh1aSh31Tu?*rhrG@Mi%l7uaSn&$&1+=J#EqQkJf3IrCbKSb_GI}YlQt+f%`O;I!V9b83u})2D-eD+Bva9)o zl0nAbKh3A{O5cNrwFtmz;NnPJ2jU$zNb^1)rl8+v`_o_Q@9!Z+%E2xfs{jnbK(q+j z`2QbSEC@HYn_v`z5(+6D3O>-6;glPKtS*+F#lk-&;Fvnw9MYFuxH0O0D>?8MLPrD|A>Im$plsxM-vwYhxg9#leX!{D7;cE z1LuA`D^`y6a21v^%_XU{$N+$#XA(~Y6Kdl22z1y<`%*T?Dtt9!bP)t;w&y1?q5F0i_% z3#=}%x~B^)K`~OiCf8hm>&C(wC zhtRCf5u1%78y)-hcfR{#yF`ZP&}_0GYXg)uNpjn|z|t$9C?Y*pO3t9mEi3Hx()V6| z$u(p-_ws_!EKX49m?SHzs%fvh{QVz{4VliHr4Ss7-w46o<(4RCbTqF`?3Tj4C(i0* zEah;Gx+P8Z`4s8Wxc}AHUjL!uvWe$QR2CN6ATcPRiXxNUm;Gl$%XYpBP@uFC zq(D<+EH*`vCdMZ{SAHaPI%APSH-p7FPf3bTRb@>M1Oma3XX?sZKYr~eulVGC=Q-$P zfob$Uixp%*M5WXt^G*j5*-wA=_M3`4jL6R6h~i$_`YCOSs;IK81p?Dvzvt@ATeI)X zb$BThjQfz1WMXmkT}8$dcQqV|#-j1W{Lde~{zf3_9x|VcMhB!AO{oe|s1Kn{rP7gD zCX-0~;+t>3`pcx$ZxYUfsQQq$VUWA5Av9IG?Du3BSZwh`qEan)=-P~61Qm>+!nmMX z*dyol21ARU?95UwpV&?8?pA8GXCA%wtB^*;@C=CoUINu+bXTnQsR%6?3@xu*or&b) z35smDcHuw2e)~5R*_h3ArWzfgv9vix8Qx_%;Pr+=i`gr0G&Tmzqw>juG(;LSxm>Ho zUY}WtX7Vg+K$W3btrl*SJ8aRw!zzWwBHMj*@%{L%0A!Zf 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 e000000021SqfGAVf`8rs0000UMFPP%0jardaw zewQG@H}DW91Jlx?8->({WTU9HR;>97K_&p|<%?=3dw#M!=>oqMaNTx5`5TG)wbjz*ku&g04i{vrjQORGrhI=it zVJ573n@hB4@5y4Oq;#THi#3GF!|7}Lk8PIj+t+=TFn;-Q&eLnU%mcQ@ptC8u=jDu@ zlgUZ_rA>3EB44)_&Ivb<(ZreOU8a|R?%JJzl9hO&D=Fak z`R+1+*VMk;dc78|CS{FbgOe9e^*0@a;siQ|Ag6&@!w-|8T;mi*VrzN5u8=o}J6&zO z-dcM9dwwc+WWMeMckcdZ?Zfh(H#_K)vk!W*VFV6WzF=II0dHxnJeL{~6=;+r*ic6XP@ z0@xDyvF(N;F7gxC)quUc!4#S_uY~li+yv)OEM=3z0MK$-r$6|juB)B!eJ<91K~akp za2V4si6up$y+RVy^^#7$`Wgahy|su^|9SuHNLOyW;+7SAwF!DmID)mmQY;UmRLT!a zY)`km0QnTay4`CYiY>W^S}pcZe@kg^ujn?w9X7*M{Co$Tw&4hl4aFY)w4wjv>?cx6 z=?_A%+O*awh=^x|FdeV_kzi#ABGb>2)2n_t^U)genk{Uxzy@d9RqR*pXJVSc+}?zLp+phHr7p91&7SN!+GdF@Id)7}$}IH+ zxPWOXia*ndBkCv=X^f~8427*n!N7a^Z<$jsk=H{av|dF;F~$@!wzwjaF1t9H4tjBws-!;)7T9GBSNM|IST*V_mIES zwp^BvW&xS*G7h<|yPzG!O80Y>-O~~7L!B8&U&5V#q-Jcq>er?$sdI&%tiSKqe42`+ z_DIcRYC@au$bOwEOd60{@6G+9+c9YxkY5#HFvm`Vmx2RIy4srU;z1G1;9k;bg$LK{ z$$+8q5Gzoss$$+ur-uOp{~KZNa!IH6TyrFlsSh=&Y+F5;oyEdT~;B0uIwP!Y8 z;yaru0g!Kryx(d%)L+4s@?G=jx~b^vy%ypRY-!@EwJo@_&aS+fuX|5{-qS;W)vJWF!qPNxO&_rvQ=14>ThH6 zI<+x(n>vs)RWA+6Id~eD!-c_*?re?0!0c$SdY;rkOTo$+iT^MyTdGlC{sD53AmyK- z9~bT)s9!Xv4riZUG~J*=qix_+#YPKIk@Dku#4B}55fizf!BE(bXdF%PJJ8n-am!7C$BbB zNP)Zy;8mt^cVq@kdIS56l?v-F)K5!Y$NgL8)7x(R zHK&qAlRp#i^Bx%gdupz>G*|OrJSe{!qmE6_El+Ll^RPeMXq&)oq>0o=a_10Ex zG&_i^l#?ob+gF$uO6&3zF34Ly-yljGwXaRg9l8;UQu7y$*}f5u_>~LM(pLyN$SZXH zhVFcp1$Jxw-ERKM#zFgSDZ)JvY(_+oPCY@|8bEjS6mA$mL_LM`1`u9PVcXpICAR@H z>Cd+@dVtX*_-X?t!J;i2lP*aLRhl#ddsq6|_eLNyW@BSXbBVC7d&LenYIqko z**BIzXp@v$(oBhN_*G~wT&ZC`5_lrYF8{?3F5-fmT-dVLB1H3x*QFSD)dvZLe7QYu z4xXbN+THxcd>ulWjrJ|iW-#07*b?_vfHE60@<8irxsqW#LSzr2ID+#o_Y^b2mhIW? zViChJYN$R8UzBta`!0R;% zh;pOzedgB7QQkd^)B|PpN(~(X`lt!&$-i@YJGM{wkn{Y=c^vU*fo!v%#Ero1hYYYe LYj0V6#xvr-^{D== literal 0 HcmV?d00001 diff --git a/docs/manual/images/mod_filter_new.tr.png b/docs/manual/images/mod_filter_new.tr.png new file mode 100644 index 0000000000000000000000000000000000000000..8ec1371a3319b7362a2d807c27cf6601aa313761 GIT binary patch literal 1326 zcmV+}1=0G6P)NW9Eg*X;|pF91;k2JlpimWQ@<;th>OeWv3N!Vz>HN?z!K^-tQU()B?t0g5J$l)lEbSO z1rbCr@P4k1td+pe6p)pk7BNww$g5MaT$Lb>sYIP&6)N{)aV7QKr@lLFswPl~`_y(b z^+KEo8hQ`CSM8rhVE>I8cs_^5%P&Z zoSZs^)3Z5>CRG+W;6g!_LW}~zGU`;cSV6@j1?W;G4E!I|DVlh_n-bvP6Bq?R&d7Hr zFi~?~bt&=pQJ3up9#I8YL=h)KMsk8E3}WFMspJYbq)s;lK306Vg{m`7U_(KPg1m1s z5>2HJhwpSTPmsDsR=%o*RGdL|GQ?k^;`J0b=W~a9RC4c|jE_ABi@%zR7gXpb@N(rJ zZ+_f1z8+PUF{kDzdEqWqHyOmYQ*{|r;-&i22wp}BR#BxniWo?riikL(P^6v;#rIHu z9=h}UrS!`tB@xYcb;VBP4ec~<6E-0vD)$v)xvzXfjppkV^|BR#`4nLlMd(q)(I~uVtsvV=oJCS{s_N*Uh z4OOGIhlzzzntA}bf^Qv$51w0=+pex zt4t}Ci~5vGxhPJe8eglO)s~C&+F5P6NV75p@G?p;q{i(mD;HIY7f?;PNR8^3ixj9) z<7XMAu@jk7E?U3Cw=<@!P34N(DW@uBhu`ZHs8BA_9i!UWtS;~qQxez4uh8(0x;b z65oGUflBDks{%C$w(x9f{E>b-l`)t+or)t$rc(?c(B+rI<#jS8^~yd|aRmhxDvznG zLkS`n#KD1BScQsblpw}$1wD>vP{E&5(4-=kQ{BIc=#`R_)&iv^?&g7mofT_GyNr}{z6)Rd!WDR(cjAHZ%}uz?bbO=&_5#4KloXH koMm+Zql_}jD5H$}2N~4mj`8J&=Kufz07*qoM6N<$f?7Xb8UO$Q literal 0 HcmV?d00001 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 @@ + + + + + + + + + + +mod_alias +Belge ağacının parçalarının dosya sisteminin parçalarıyla +eşlenmesini sağlar ve URL yönlendirmesi yapar. +Base +mod_alias.c +alias_module + + +

Bu modülde bulunan yönergeler sunucuya istek olarak gelen URL’lerin + denetlenmesini ve değiştirilmesini mümkün kılar. Alias ve ScriptAlias yönergeleri URL’lerin dosya sisteminin + dizinlerine eşlenmesini sağlar. Böylece, kök dizini DocumentRoot ile belirtilen site belge ağacı + altında bulunmayan içeriğe erişmek mümkün olur. ScriptAlias yönergesi buna ek olarak + hedef dizini sadece CGI betiklerini içeren dizin olarak imler.

+ +

Redirect 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.

+ +

mod_alias 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 mod_rewrite modülü ile + sağlanan araçlar kullanılır.

+ +
+ + mod_rewrite URL’lerin Dosya sistemi ile Eşlenmesi + + +
İşlem Sırası + +

Farklı bağlamlarda bulunan Alias ve Redirect + yönergeleri standart katıştırma + kuralları ile ilgili diğer yönergeler gibi işleme sokulur. Fakat + aynı bağlam dahilinde (örneğin, aynı VirtualHost bölümünde) çok fazla Alias ve Redirect varsa bunlar belli bir + sıraya göre işleme sokulurlar.

+ +

İlk adımda, Alias’lardan önce + bütün Redirect yönergeleri + işleme sokulur. Bu bakımdan bir Redirect veya RedirectMatch ile eşleşen bir istek için + hiçbir Alias + uygulanmayacaktır. İkinci adımda yapılandırma dosyasında yer aldıkları + sıraya göre Redirect ve + Alias yönergeleri işleme + sokulurlar, dolayısıyla ilk eşleşme öncelikli olmuş olur.

+ +

İ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:

+ + + Alias /foo/bar /baz
+ Alias /foo /gaz +
+ +

Ama yukarıdaki iki satır ters sırada yerleştirilmiş olsaydı, + /foo rumuzu daima /foo/bar rumuzundan önce + eşleşecek, dolayısıyla ikinci yönerge yok sayılacaktı.

+ +
+ + +Alias +URL’leri dosya sistemi konumlarıyla eşler. +Alias URL-yolu +dosya-yolu|dizin-yolu +server configvirtual host + + + + +

Alias yönergesi, belgelerin DocumentRoot dizininden farklı bir yerde + saklanmasını mümkün kılar. URL-yolu ile başlayan + URL’ler (% imlemesi çözüldükten sonra) dizin-yolu + ile başlayan yerel dosyalarla eşlenir. URL-yolu, + harf büyüklüğüne duyarsız sistemlerde bile harf büyüklüğüne + duyarlıdır.

+ + Örnek: + Alias /image /ftp/pub/image + + +

http://sunucum/image/foo.gif şeklinde bir istek, sunucunun + /ftp/pub/image/foo.gif dosyasıyla yanıt vermesine sebep + olurdu. Sadece tam yol parçaları eşleştirilir; bu bakımdan yukarıdaki + Alias yapılandırması + http://sunucum/imagefoo.gif ile eşleşmez. Düzenli + ifadelerin kullanıldığı daha karmaşık eşleşmeler için AliasMatch yönergesine bakınız.

+ +

URL-yolu’nu bir / ile + sonlandırırsanız Alias yönergesini yorumlarken + sunucunun da sona bir / ekleyeceğine dikkat ediniz. Yani, + eğer Alias /icons/ /usr/local/apache/icons/ diye bir + tanım yaparsanız /icons URL’si için bir + Alias kullanılmayacaktır.

+ +

Alias hedefleri için ek Directory bölümleri + belirtmeniz gerekebileceğine dikkat ediniz. Directory bölümlerinden önce yer alan + Alias yönergelerine özellikle bakılır, + dolayısıyla sadece Alias hedefleri etkilenir. + (Bununla birlikte, Alias yönergelerinden önce + işleme sokulan Location bölümlerinin uygulanacağına dikkat + ediniz.)

+ +

Özellikle, DocumentRoot dışında + bir dizine bir Alias oluşturuyorsanız hedef + dizine doğrudan erişim izni vermeniz gerekebilir.

+ + Örnek: + Alias /image /ftp/pub/image
+ <Directory /ftp/pub/image>
+ + Order allow,deny
+ Allow from all
+
+ </Directory> +
+
+
+ + +AliasMatch +URL’leri dosya sistemi konumlarıyla düzenli ifadeleri kullanarak +eşler. +AliasMatch düzenli-ifade +dosya-yolu|dizin-yolu +server configvirtual host + + + +

Bu yönerge URL-yolu ile eşleşmek üzere bir + düzenli ifade kabul etmesi dışında + Alias yönergesine eşdeğerdir. + Belirtilen düzenli ifade URL-yolu ile eşleşiyorsa + sunucu parantezli eşleşmeleri belirtilen dizgede kullanarak dosya yolunu + elde eder. Örneğin, /icons dizinini etkinleştirmek için şu + yazılabilir:

+ + + AliasMatch ^/icons(.*) /usr/local/apache/icons$1 + + +

Ayrıca, URL-yolu ile harf büyüklüğüne duyarsız + eşleşmeler sağlayacak düzenli ifadeler de kullanılabilir:

+ + + AliasMatch (?i)^/image(.*) /ftp/pub/image$1 + +
+
+ + +Redirect +İstemciyi, bir yönlendirme isteği döndürerek farklı bir URL’ye +yönlendirir. +Redirect [durum] URL-yolu +URL +server configvirtual host +directory.htaccess +FileInfo + + +

Redirect yönergesi istemciye bir yönlendirme + isteği döndürerek eski URL’yi yenisiyle eşler.

+ +

Eski URL-yolu bir bölü çizgisi ile başlar ve harf + büyüklüğüne duyarlıdır (% imlemesi çözüldükten sonra). + URL-yolu olarak göreli yollara izin verilmez. + URL 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.

+ +

URL-yolu ile başlayan istekler istemciye hedef + URL konumuna bir yönlendirme isteği olarak + dönecektir. URL-yolu’nun devamı niteliğindeki ek + yol hedef URL’ye eklenir.

+ + Örnek: + Redirect /hizmet http://iki.mesela.dom/hizmet + + +

İstemcinin yaptığı http://mesela.dom/hizmet/fesmekan.txt + isteğine karşılık istemciye isteği + http://iki.mesela.dom/hizmet/fesmekan.txt olarak yapması + söylenecektir. Sadece tam yol parçaları eşleştirilir, bu nedenle + http://mesela.dom/hizmetfesmekan.txt isteği yukarıdaki + yönlendirme ile eşleşmeyecektir. Düzenli ifadelerin kullanıldığı daha + karmaşık eşleşmeler için RedirectMatch yönergesine bakınız.

+ + + Bilginize +

Yapılandırma dosyasında yer alış sırasına bakmaksızın + Redirect yönergeleri + Alias ve ScriptAlias + yönergelerinden önce ele alınır.

+ +

Herhangi bir durum 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 durum + değerleri:

+ +
+
permanent
+
İstemciye özkaynağın kalıcı olarak taşındığını belirten kalıcı + yönlendirme durumu (301) döndürülür.
+ +
temp
+
İstemciye geçici yönlendirme durumu (302) döner. Bu öntanımlıdır. +
+ +
seeother
+
İstemciye özkaynağın yerine başka bir şey konduğunu belirten + "diğerine bak" durumu (303) döndürülür.
+ +
gone
+
İstemciye özkaynağın kalıcı olarak kaldırıldığını belirten "ölü + bağlantı" durumu (410) döner. Bu durumda URL + belirtilmez.
+
+ +

Diğer durum kodları için durum olarak sayısal + durum kodu belirtilir. Eğer durum 300 ile 399 arasındaysa bir + URL belirtmek gereklidir, yoksa belirtilmez. + Belirtilecek durum kodunu Apache’nin bilmesi gerektiğine dikkat ediniz + (http_protocol.c dosyasında bulunan + send_error_response işlevine bakınız).

+ + Örnek: + Redirect permanent /bir http://mesela.dom/iki
+ Redirect 303 /yedi http://mesela.dom/baskabisey +
+
+
+ + +RedirectMatch +Geçerli URL ile eşleşen bir düzenli ifadeye dayanarak bir harici +yönlendirme gönderir. +RedirectMatch [durum] düzenli-ifade +URL +server configvirtual host +directory.htaccess +FileInfo + + +

Bu yönerge URL-yolu ile eşleşmek üzere bir + düzenli ifade kabul etmesi dışında + Redirect yönergesine + eşdeğerdir. Belirtilen düzenli ifade URL-yolu 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:

+ + + RedirectMatch (.*)\.gif$ http://baska.sunucu.dom$1.jpg + +
+
+ + +RedirectTemp +İstemciyi, geçici bir yönlendirme isteği döndürerek farklı bir +URL’ye yönlendirir. +RedirectTemp URL-yolu URL +server configvirtual host +directory.htaccess +FileInfo + + +

Bu yönerge istemciye daima geçici yönlendirme durumu (302) döndürür. + Yani, Redirect temp ile aynı işi yapar.

+
+
+ + +RedirectPermanent +İstemciyi, kalıcı bir yönlendirme isteği döndürerek farklı bir +URL’ye yönlendirir. +RedirectPermanent URL-yolu URL +server configvirtual host +directory.htaccess +FileInfo + + +

Bu yönerge istemciye daima kalıcı yönlendirme durumu (301) döndürür. + Yani, Redirect permanent ile aynı işi yapar.

+
+
+ + +ScriptAlias +Bir URL’yi dosya sistemindeki bir yere eşler ve hedefi bir CGI betiği olarak çalıştırır. +ScriptAlias URL-yolu +dosya-yolu|dizin-yolu +server configvirtual host + + + +

Hedef dizini, mod_cgi modülünün CGI betiği + yorumlayıcısı tarafından çalıştırılacak betikleri içeren dizin olarak + imlemesi dışında Alias + yönergesinin yaptığı işi yapar. URL-yolu ile + başlayan harf büyüklüğüne duyarlı URL’ler (% imlemesi çözüldükten + sonra), dosya sistemindeki bir tam yol olarak belirtilmiş + dizin-yolu ile başlayan betiklerle eşlenir.

+ + Örnek: + ScriptAlias /cgi-bin/ /siteler/cgi-bin/ + + +

http://sunucum/cgi-bin/foo şeklindeki bir istek sunucunun + /siteler/cgi-bin/foo betiğini çalıştırmasına sebep olur. Bu + yapılandırma aslında şuna eşdeğerdir:

+ + + Alias /cgi-bin/ /siteler/cgi-bin/
+ <Location /cgi-bin >
+ + SetHandler cgi-script
+ Options +ExecCGI
+
+ </Location> +
+ + Yapılandırma değiştiğinde kaynak kodlarının ister + istemez açığa çıkmasını istemiyorsanız CGI betiklerinizi DocumentRoot altına koymayınız. + ScriptAlias yönergesi URL’yi doğru yere + eşlemekten başka orayı bir CGI betikleri dizini olarak imler. CGI + betiklerinizi DocumentRoot altına + koyarsanız çalıştırmak için ScriptAlias değil, + Directory, + SetHandler ve Options yönergelerini örnekteki gibi kullanın: + + + <Directory /usr/local/apache2/htdocs/cgi-bin >
+ + SetHandler cgi-script
+ Options ExecCGI
+
+ </Directory> +
+ + Aynı dosya sistemi konumu ile çok sayıda URL-yolu + eşleşebileceğinden, bir Directory + bölümü ile sınırlanmadığı takdirde CGI betiklerinin kaynak kodları açığa + çıkabilir; bu bakımdan ScriptAlias yönergesini yok + sayan URL yollarının belirtilebilme olasılığı gözardı + edilmemelidir.
+ +
+ CGI Öğreticisi +
+ + +ScriptAliasMatch +Bir URL’yi dosya sistemindeki bir yere düzenli ifade kullanarak +eşler ve hedefi bir CGI betiği olarak çalıştırır. +ScriptAliasMatch düzenli-ifade +dosya-yolu|dizin-yolu +server configvirtual host + + + +

Bu yönerge URL-yolu ile eşleşmek üzere bir + düzenli ifade kabul etmesi dışında + ScriptAlias yönergesine + eşdeğerdir. Belirtilen düzenli ifade URL-yolu ile + eşleşiyorsa sunucu parantezli eşleşmeleri belirtilen dizgede kullanarak + dosya yolunu elde eder. Örneğin, standart /cgi-bin dizinini + etkin kılmak için şu yazılabilir:

+ + + ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1 + +
+
+ +
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 @@ + + + + + + + + + +mod_dir +Bölü çizgisiyle biten yönlendirmeleri yapar ve dizin içeriği dosyalarını sunar. +Base +mod_dir.c +dir_module + + +

Bir dizin içerik dosyası şu iki kaynaktan birinden gelebilir:

+ +
    +
  • Kullanıcı tarafından yazılmış ve ismi genellikle + index.html olan bir dosya. Dosya ismi DirectoryIndex yönergesi ile belirlenir. + Bu, mod_dir modülü tarafından denetlenir.
  • + +
  • Aksi takdirde içerik listesi sunucu tarafından üretilir. Bu, + mod_autoindex modülü tarafından sağlanır.
  • +
+

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.

+ +

Sunucu http://sunucum/filanca/birdizin şeklinde bir istek + aldığında birdizin 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 mod_dir + modülü isteği http://sunucum/filanca/birdizin/ şeklinde + yönlendirir.

+
+ + +DirectoryIndex +İstemci bir dizin istediğinde dizin içeriğini listeler. + +DirectoryIndex + yerel-url [yerel-url] ... +DirectoryIndex index.html +server configvirtual host +directory.htaccess +Indexes + + +

DirectoryIndex yönergesi, istemci, dizinin + sonuna bir bölü çizgisi ekleyerek dizin içeriğinin listelenmesini + istediğinde bakılmak üzere özkaynakları listeler. + yerel-url, 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 Indexes + seçeneği atanmışsa sunucu dizin içeriğinden bir liste üretecektir.

+ + Örnek: + DirectoryIndex index.html + + +

Bu yapılandırmadan sonra yapılan bir + http://sunucum/belgeler/ isteğine karşılık, sunucu, + mevcutsa http://sunucum/belgeler/index.html dosyasını + döndürecek, değilse ürettiği dizin içerik listesini gönderecektir.

+ +

Belgelerin dizine göreli olmasının gerekmediğine dikkat ediniz.

+ + + DirectoryIndex index.html index.txt /cgi-bin/index.pl + + +

Bu örnekte ise dizin içinde ne index.html ne de + index.txt mevcut olduğunda /cgi-bin/index.pl + CGI betiği çalıştırılacaktır.

+
+
+ + +DirectorySlash +Bölü çizgisi ile biten yönlendirmeleri açar/kapar. +DirectorySlash On|Off +DirectorySlash On +server configvirtual host +directory.htaccess +Indexes +Apache 2.0.51 ve sonrasında mevcuttur. + + +

DirectorySlash yönergesi, bir dizin isteğinde + bulunan URL’lerin sonuna mod_dir modülü tarafından bir + bölü çizgisi eklenip eklenmeyeceğini belirler.

+ +

Normalde, bir kullanıcı sona bir bölü çizgisi eklemeden bir dizin için + istekte bulunursa mod_dir zaten onu aynı özkaynağa + yönlendirir, fakat isteğin sonuna bir bölü çizgisi eklenmesinin bazı iyi + sebepleri vardır:

+ +
    +
  • Kullanıcı bunun sonucunda meşru bir URL ile istekte bulunmuş olur.
  • +
  • mod_autoindex gerektiği gibi çalışır. Yoksa + bağlantıdaki yolu sunamayacağından yanlış yolu gösterirdi.
  • +
  • DirectoryIndex yönergesi + sadece bölü çizgisi ile biten dizin istekleri için değerlendirilir.
  • +
  • HTML sayfa içindeki göreli URL başvuruları gerektiği gibi + çalışacaktır.
  • +
+ +

Siz yine de bu etkiyi istemezseniz ve yukarıdaki sebepler de size uygun + değilse yönlendirmeyi şöyle kapatabilirsiniz:

+ + + # Aşağıdaki güvenlik uyarısına bakınız!
+ <Location /bir/yol>
+ + DirectorySlash Off
+ SetHandler bir-eylemci
+
+ </Location> +
+ + Güvenlik Uyarı +

Bölü çizgisi ile biten yönlendirmelerin kapatılması bir bilginin + istemeyek açığa çıkmasına sebep olabilir. mod_autoindex + modülünün etkin olduğunu (Options +Indexes) ve DirectoryIndex ile geçerli bir özkaynağın + (index.html 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 index.html dosyası sunulurdu. + Fakat bölü çizgisi ile bitmeyen bir istek dizin içeriğinin + listelenmesi ile sonuçlanırdı.

+
+
+
+ +
-- 2.40.0