1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head><!--
4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5 This file is generated from xml source: DO NOT EDIT
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8 <title>İçerik Uzlaşımı - Apache HTTP Sunucusu</title>
9 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
13 <body id="manual-page"><div id="page-header">
14 <p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="./faq/">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p>
15 <p class="apache">Apache HTTP Sunucusu Sürüm 2.3</p>
16 <img alt="" src="./images/feather.gif" /></div>
17 <div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div>
19 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Sunucusu</a> > <a href="http://httpd.apache.org/docs/">Belgeleme</a> > <a href="./">Sürüm 2.3</a></div><div id="page-content"><div id="preamble"><h1>İçerik Uzlaşımı</h1>
21 <p><span>Mevcut Diller: </span><a href="./en/content-negotiation.html" hreflang="en" rel="alternate" title="English"> en </a> |
22 <a href="./ja/content-negotiation.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
23 <a href="./ko/content-negotiation.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
24 <a href="./tr/content-negotiation.html" title="Türkçe"> tr </a></p>
26 <div class="outofdate">Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.</div>
29 <p>Apache, içerik uzlaşımını HTTP/1.1 belirtiminde bahsedildiği şekliyle
30 destekler. Bir özkaynağın en iyi gösterimini, tarayıcının sağladığı
31 karakter kodlaması, karakter kümesi, dil, ortam türü gibi kullanıcı
32 tercihlerine bağlı olarak seçebilir. Ayrıca, tarayıcının kullanıcı
33 tercihlerini tam yansıtamadığı durumlarda istekleri daha akıllıca ele
34 alabilmeyi sağlayacak bir takım özelliklere de sahiptir.</p>
36 <p>İçerik uzlaşımı öntanımlı olarak derlenen
37 <code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code> modülü tarafından sağlanır.</p>
39 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#about">İçerik Uzlaşımı Hakkında</a></li>
40 <li><img alt="" src="./images/down.gif" /> <a href="#negotiation">Apache’de İçerik Uzlaşımı</a></li>
41 <li><img alt="" src="./images/down.gif" /> <a href="#methods">Uzlaşım Yöntemleri</a></li>
42 <li><img alt="" src="./images/down.gif" /> <a href="#better">Üstünlük Değerleriyle Oynamak</a></li>
43 <li><img alt="" src="./images/down.gif" /> <a href="#extensions">Şeffaf İçerik Uzlaşımının Genişletilmesi</a></li>
44 <li><img alt="" src="./images/down.gif" /> <a href="#naming">Hiperbağlar ve İsimlendirme Uzlaşımları</a></li>
45 <li><img alt="" src="./images/down.gif" /> <a href="#caching">Arabellekler Hakkında</a></li>
47 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
49 <h2><a name="about" id="about">İçerik Uzlaşımı Hakkında</a></h2>
51 <p>Bir özkaynağın bir çok farklı gösterimi olabilir. Örneğin, bir belgenin
52 farklı ortam türleri ve/veya farklı diller için gösterimleri olabilir.
53 En uygun seçimi yapmanın tek yolu kullanıcıya bir liste verip seçmesini
54 istemektir. Bununla birlikte sunucunun bu seçimi kendiliğinden yapması
55 da mümkündür. Tarayıcılar isteğin bir parçası olarak kullanıcı
56 tercihlerini de gönderdiğinden bu istendiği gibi çalışır. Örneğin bir
57 tarayıcı, kullanıcısınının mümkünse Fransızca içerik tercih ettiğini
58 yoksa İngilizce içeriğe de razı olabileceğini belirtebilirdi.
59 Tarayıcılar bu tercihleri başlıkta belirtirler. Tarayıcı sadece Türkçe
60 içerik istendiğini şöyle belirtebilirdi:</p>
62 <div class="example"><p><code>Accept-Language: tr</code></p></div>
64 <p>Bu tercihin yerine getirilebilmesininin sadece, desteklenen diller
65 arasında bu dilin varlığına ve istenen belgenin bu dilde bir
66 gösteriminin bulunmasına bağlı oluşuna dikkat ediniz.</p>
68 <p>Daha karmaşık bir istek örneği olarak, tarayıcının Fransızca ve
69 İngilizce içerik kabul etmeye ayarlandığını fakat Fransızcayı tercih
70 ettiğini ve çeşitli ortam türlerini kabul etmekle birlikte salt metin ve
71 diğer metin türlerinden ziyade HTML tercih ettiğini, ayrıca, diğer ortam
72 türleri üzerinde GIF veya JPEG tercih ettiğini fakat başka çare yoksa
73 her ortam türüne de izin verdiğini belirtiyor olsun:</p>
75 <div class="example"><p><code>
76 Accept-Language: fr; q=1.0, en; q=0.5<br />
77 Accept: text/html; q=1.0, text/*; q=0.8, image/gif; q=0.6, image/jpeg;
78 q=0.6, image/*; q=0.5, */*; q=0.1
81 <p>Apache, HTTP/1.1 belirtiminde tanımlanan şekliyle ‘sunucu yönetiminde’
82 içerik uzlaşımını destekler. <code>Accept</code>,
83 <code>Accept-Language</code>, <code>Accept-Charset</code> ve
84 <code>Accept-Encoding</code> istek başlıklarını tamamen destekler.
85 Apache ayrıca, RFC 2295 ve RFC 2296’da tanımlanan bir deneysel uzlaşım
86 olarak ‘şeffaf’ içerik uzlaşımını da destekler. Fakat ‘özellik
87 uzlaşımını’ bu RFC’lerde tanımlandığı gibi desteklemez.</p>
89 <p>Bir <strong>özkaynak</strong> bir URI (RFC 2396) tarafından betimlenen
90 kavramsal bir öğedir. Apache gibi bir HTTP sunucusu, ortam türü,
91 karakter kümesi, kodlama ve saire ile tanımlanmış bir bayt dizisi
92 şeklindeki her gösterimiyle, özkaynaklara kendi isim alanları dahilinde
93 erişim sağlar. Her özkaynağın aynı anda bir veya daha fazla gösterimi
94 mevcut olabileceği gibi hiç mevcut olmayabilir de. Eğer çok sayıda
95 gösterim mevcutsa, bu özkaynağın <strong>uzlaşılabilir</strong>
96 olduğundan ve her gösteriminin bir <strong>çeşitlilik</strong>
97 oluşturduğundan bunun da uzlaşımın <strong>boyutlar</strong>ından
98 kaynaklandığından bahsedilebilir.</p>
99 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
100 <div class="section">
101 <h2><a name="negotiation" id="negotiation">Apache’de İçerik Uzlaşımı</a></h2>
103 <p>Bir özkaynak üzerinde uzlaşılırken gösterim çeşitlerinin her biri
104 hakkında sunucuya bilgi verilmesi gerekir. Bu iki yolla yapılabilir:</p>
107 <li>Ya gösterim çeşitlerini içeren dosyaların isimleriyle eşleşmeyi
108 sağlayan bir tür eşlemi kullanılır (bir <code>*.var</code> dosyası
111 <li>Ya da sunucu örtük bir dosya ismi kalıbı eşleşmesinin ardından
112 sonuçlar arasından seçim yapar; buna ‘Çoklu Görünüm’ araması adı
116 <h3><a name="type-map" id="type-map">Bir türeşlem dosyası kullanmak</a></h3>
118 <p>Bir türeşlem dosyası, <code>type-map</code> eylemcisi ile ilişkili bir
119 belgedir (ya da eski Apache yapılandırmaları ile geriye uyumluluk için,
120 <code>application/x-type-map</code> <a class="glossarylink" href="./glossary.html#mime türü" title="sözlüğe bakınız">MIME türü</a>nde
121 bir belgedir). Bu özelliği kullanmak için, yapılandırmada bir tür
122 eşleyici olarak her dosya ismi uzantısı için bir <code>type-map</code>
123 eylemcisi tanımlamalısınız. Bu, sunucu yapılandırma dosyasında en iyi
124 şöyle yapılabilir:</p>
126 <div class="example"><p><code>AddHandler type-map .var</code></p></div>
128 <p>Türeşlem dosyaları kendilerini tanımlayan özkaynak ile aynı isimde
129 olmalı ve her gösterim çeşidi için bir girdi içermelidir; bu girdiler
130 ardarda belirtilen HTTP biçem başlık satırlarından oluşur. Farklı
131 gösterimlerin girdileri bir boş satırla diğerlerinden ayrılır. Aynı
132 girdi içinde boş satır kullanılamaz. Bir eşlem dosyasını bir birleşik
133 öğenin tamamı için bir girdi ile başlatmak adet olmuştur (ise de, bu
134 gerekli değildir, hele yoksayılacaksa hiç gerekli değildir). Eşlem
135 dosyası için aşağıda bir örnek verilmiştir. Dosya <code>misal</code>
136 isimli bir özkaynak hakkında olduğundan dosyaya <code>misal.var</code>
137 ismi verilebilir.</p>
139 <div class="example"><p><code>
142 URI: misal.en.html<br />
143 Content-type: text/html<br />
144 Content-language: en<br />
146 URI: misal.fr.de.html<br />
147 Content-type: text/html;charset=iso-8859-2<br />
148 Content-language: fr, de<br />
151 <p>Ayrıca, <code>MultiViews</code> etkin olsa bile bir türeşlem dosyasının
152 dosya ismi uzantılarının taranmasına göre öncelik alacağına dikkat
153 ediniz. Eğer gösterimler bu örnekteki resim dosyasında olduğu gibi
154 farklı kaynak üstünlüklerine sahipseler, ortam türünün <code>qs</code>
155 parametresi kullanılarak kaynak üstünlükleri belirtilebilir: </p>
157 <div class="example"><p><code>
160 URI: misal.jpeg<br />
161 Content-type: image/jpeg; <strong>qs=0.8</strong><br />
164 Content-type: image/gif; <strong>qs=0.5</strong><br />
167 Content-type: text/plain; <strong>qs=0.01</strong><br />
170 <p><code>qs</code> değerleri 0.000-1.000 değer aralığı içinde
171 belirtilebilir. 0.000 <code>qs</code> değerine sahip gösterimin asla
172 seçilmeyeceğine dikkat ediniz. Bir <code>qs</code> değeri belirtilmeyen
173 gösterimlerin kaynak üstünlüğü 1.000 kabul edilir. <code>qs</code>
174 parametresinin belirttiği değer istemcinin yeteneklerinden bağımsız
175 olarak olası gösterimler arasında göreli bir üstünlük ifade eder.
176 Örneğin bir fotoğraf sözkonusu olduğunda bir JPEG dosyasının kaynak
177 üstünlüğü bir ASCII çiziminkinden yüksek olacaktır. Diğer taraftan özgün
178 resim bir ASCII çizim olduğu takdirde, ASCII çizim, bir JPEG gösterimine
179 göre öncelikli olacaktır. Bu nedenle <code>qs</code> değeri özkaynağın
180 doğasına bakarak belirlenir.</p>
182 <p>Tanınan başlıkların tam listesini <a href="mod/mod_negotiation.html#typemaps">mod_negotation</a> modülünün
183 belgesinde bulabilirsiniz.</p>
186 <h3><a name="multiviews" id="multiviews">Çoklu Görünümler</a></h3>
188 <p><code>MultiViews</code>, <code>httpd.conf</code> dosyasındaki veya
189 (<code class="directive"><a href="./mod/core.html#allowoverride">AllowOverride</a></code> yönergesinin
190 değerine bağlı olarak) <code>.htaccess</code> dosyalarındaki <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>, <code class="directive"><a href="./mod/core.html#location"><Location></a></code> veya <code class="directive"><a href="./mod/core.html#files"><Files></a></code> bölümleri içinde
191 <code class="directive"><a href="./mod/core.html#options">Options</a></code> yönergeleri ile
192 belirtilebilen, dizine özgü bir seçenektir. Yalnız, dikkatli olun,
193 <code>Options All</code> yaparak <code>MultiViews</code> seçeneğini
194 etkin kılamazsınız; seçeneği ismiyle açıkça belirtmelisiniz.</p>
196 <p><code>MultiViews</code> şöyle etki eder: Sunucudan,
197 <code>MultiViews</code> seçeneğinin etkin olduğu <code>/bir/dizin</code>
198 dizininden <code>filanca</code> dosyası için bir istekte bulunulmuşsa
199 fakat dizinde bu dosya yoksa, sunucu dizin içeriğini
200 <code>filanca.*</code> dosyaları için tarar ve bu dosyalar için
201 istemcinin ismiyle talep ettiği ortam türlerini ve kodlamaları
202 kullanarak bir türeşlem dosyası uydurup bu gösterimler arasından
203 istemcinin gereksinimlerine en uygun gösterimi seçer.</p>
205 <p><code>MultiViews</code> ayrıca, sunucunun bir dizin içeriğini
206 listelemeye çalıştığı durumda <code class="directive"><a href="./mod/mod_dir.html#directoryindex">DirectoryIndex</a></code> yönergesi ile belirtilen dosya için de bir
207 arama tertipleyebilir. Eğer yapılandırma dosyalarında</p>
209 <div class="example"><p><code>DirectoryIndex index</code></p></div>
211 <p>şeklinde bir atama varsa ve dizinde <code>index.html</code> ve
212 <code>index.html3</code> dosyaları varsa sunucu bunlar arasından hakem
213 sıfatıyla bir seçim yapacaktır; ama bu ikisi yerine dizinde sadece
214 <code>index.cgi</code> mevcutsa sunucu sadece bu dosyayı
217 <p>Okunan dizinde bulunan dosyalar arasında <code>mod_mime</code>
218 tarafından tanınan karakter kümesi, içerik türü, dil ve kodlama
219 başlıklarına uygun gösterim uzantılarından birine sahip bir dosya yoksa
220 sonuç <code class="directive"><a href="./mod/mod_mime.html#multiviewsmatch">MultiViewsMatch</a></code>
221 yönergesiyle yapılan tanıma bağlı olur. Bu yönerge hangi diğer dosya
222 uzantılarının, eylemcilerin veya süzgeçlerin çok gösterimli uzlaşımla
223 ilintileneceğini belirler.</p>
225 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
226 <div class="section">
227 <h2><a name="methods" id="methods">Uzlaşım Yöntemleri</a></h2>
229 <p>Apache’nin, bir türeşlem dosyası veya dizin içindeki bir dosya
230 sayesinde belli bir özkaynağın gösterim çeşitlerinin bir listesini elde
231 ettikten sonra ‘en uygun’ gösterime karar vermek için kullanabileceği
232 iki yöntem vardır. Apache’nin içerik uzlaşım özelliklerinin kullanımı
233 sırasında uzlaşımın nasıl yerine getirileceği ile ilgili ayrıntıları
234 bilmek aslında gerekli değildir. Bununla birlikte belgenin kalanında bu
235 konu açıklanmaya çalışılmıştır.</p>
237 <p>İki uzlaşım yöntemi vardır:</p>
240 <li>Normal durumda <strong>sunucu yönetiminde Apache uzlaşım
241 algoritması</strong> kullanılır. Bu algoritma aşağıda ayrıntılı olarak
242 açıklanmıştır. Bu algoritma kullanıldığı zaman, Apache, en iyi sonuca
243 ulaşmak için bazen belli boyutların üstünlük katsayılarıyla ‘oynar’.
244 Apache’nin bu katsayılarla oynama işini nasıl yaptığı aşağıda daha
245 ayrıntılı açıklanmıştır.</li>
247 <li>İstemci bu işlem için özellikle RFC 2295’te tanımlanan mekanizmanın
248 kullanılmasını isterse <strong>şeffaf içerik uzlaşımı</strong>
249 kullanılır. Bu uzlaşım yöntemi, en uygun gösterimin seçilmesi
250 konusunda tarayıcıya tam denetim imkanı verir; dolayısıyla sonuç
251 tarayıcının bu işlem için kullandığı algoritmanın başarısına bağlıdır.
252 Şeffaf uzlaşım sürecinin bir parçası olarak, tarayıcı, RFC 2296’da
253 tanımlanan ‘gösterim çeşidini uzaktan seçme algoritması’nın
254 çalıştırılmasını Apache’den isteyebilir.</li>
257 <h3><a name="dimensions" id="dimensions">Uzlaşımın Boyutları</a></h3>
270 <td>Tarayıcı ortam türü tercihlerini <code>Accept</code> başlık alanı
271 ile belirtir. Her öğenin kendine özgü bir üstünlük katsayısı
272 olabilir. Gösterimin açıklaması da ayrıca bir kaynak üstünlüğüne
273 (<code>qs</code> parametresi) sahip olabilir.</td>
279 <td>Tarayıcı dil tercihlerini <code>Accept-Language</code> başlık
280 alanı ile belirtir. Her öğenin kendine özgü bir üstünlük katsayısı
281 olabilir. Gösterimler bir kaç dilde olabileceği gibi hiç bir dille
282 ilişkilendirimemiş de olabilir.</td>
288 <td>Tarayıcı kodlama tercihlerini <code>Accept-Encoding</code> başlık
289 alanı ile belirtir. Her öğenin kendine özgü bir üstünlük katsayısı
294 <td>Karakter Kümesi</td>
296 <td>Tarayıcı karakter kümesi tercihlerini <code>Accept-Charset</code>
297 başlık alanı ile belirtir. Her öğenin kendine özgü bir üstünlük
298 katsayısı olabilir. Gösterim çeşitleri karakter kümesini ortam
299 türünün bir parametresi olarak belirtebilirler.</td>
304 <h3><a name="algorithm" id="algorithm">Apache Uzlaşım Algoritması</a></h3>
306 <p>Apache, tarayıcıya döndürülecek en uygun gösterim çeşidini (varsa)
307 seçmek için aşağıdaki algoritmayı kullanabilir. Bu algoritma pek de
308 yapılandırılabilir değildir. Şöyle çalışır:</p>
311 <li>Önce her uzlaşım boyutu için ilgili <em>Accept*</em> başlık alanına
312 bakılıp her gösterim çeşidine bir üstünlük katsayısı atanır. Eğer
313 boyutlardan bazıları için ilgili <em>Accept*</em> başlığı
314 uygulanabilir değilse bu boyut elenir ve sonuçta hiçbir gösterim
315 çeşidi kalmasza 4. adıma atlanır.</li>
317 <li>‘En uygun’ gösterim çeşidi bir eleme süreciyle seçilir. Bu süreç
318 sırasında aşağıdaki sınamalar sırayla uygulanır. Sınamalardan
319 geçemeyen bir gösterim çeşidi elenir. Sınamaların bir aşamasında tek
320 bir gösterim çeşidi kalırsa bu en uygun eşleşme olarak seçilmiş olur
321 ve 3. adıma atlanır. Eğer birden fazla gösterim çeşidi kalırsa sonraki
325 <li><code>Accept</code> başlığındaki üstünlük katsayısı ile
326 gösterimin ortam türünde belirtilen kaynak üstünlüğünün çarpımı en
327 büyük olan gösterim çeşidi seçilir.</li>
329 <li>En yüksek dil üstünlük katsayısına sahip gösterim çeşidi seçilir.
332 <li>En uygun dil eşleşmesine sahip gösterim çeşidini seçmek için
333 önce varsa <code>Accept-Language</code> başlığındaki dil
334 sıralamasına bakılır, aksi takdirde <code>LanguagePriority</code>
335 yönergesi ile atanmışsa oradaki dil sıralamasına bakılır.</li>
337 <li>En yüksek ‘seviyeden’ ortam parametresine (text/html ortam türü
338 sürümünü belirtmekte kullanılır) sahip gösterim çeşitleri
341 <li><code>Accept-Charset</code> başlık satırında belirtilene bakarak
342 en uygun karakter kümesine sahip gösterim çeşitleri seçilir.
343 Alenen dışlanmadıkça ISO-8859-1 kabul edilebilir karakter
344 kümesidir. <code>text/*</code> ortam türüne sahip gösterim
345 çeşitlerinden belli bir karakter kümesi ile ilişkilendirilmemiş
346 olanların karakter kümesinin ISO-8859-1 olduğu varsayılır.</li>
348 <li>ISO-8859-1 karakter kümesi ile ilişkilendirilmemiş gösterim
349 çeşitleri seçilir. Böyle hiçbir gösterim yoksa bütün gösterimler
352 <li>En uygun kodlamaya sahip gösterim çeşitleri seçilir. Tarayıcı
353 tarafından kabul edilebilir kodlamaya sahip gösterim çeşitleri
354 varsa bunlar seçilir. Yoksa kodlanmış ve kodlanmamış gösterim
355 çeşitleri karışık olarak mevcutsa sadece kodlanmamış olanlar
356 seçilir. Eğer bütün gösterim çeşitlerinin sadece kodlanmış ya da
357 sadece kodlanmamış gösterimleri mevcutsa hepsi seçilir.</li>
359 <li>En küçük içerik uzunluğuna sahip gösterim çeşitleri seçilir.</li>
361 <li>Kalan gösterim çeşitlerinin ilki seçilir. Bu ilk, ya türeşlem
362 dosyasında listelenen ilk çeşittir ya da gösterimler bir dizinden
363 okunuyorsa ASCII kod sıralamasına göre ilk sıradaki dosya ismine
364 sahip gösterimdir.</li>
368 <li>Algoritma, artık seçilmiş en uygun gösterim çeşidine sahipse bu
369 artık yanıt olarak döndürülebilir. HTTP yanıt başlığı
370 <code>Vary</code>’ye uzlaşım boyutları atanır (tarayıcı ve
371 arabellekler özkaynağı kaydederken bu bilgiyi kullanırlar)
372 ve algoritma sonlandırılır.</li>
374 <li>Buraya gelinmişse hiçbir gösterim seçilmemiş demektir (hiçbiri
375 tarayıcı tarafından kabul edilebilir bulunmadığından dolayı).
376 Gövdesinde mevcut gösterim çeşitlerini listeleyen bir HTML belgesi 406
377 durum koduyla döndürülür (406: ‘kabul edilebilir bir gösterim yok’).
378 Ayrıca HTTP <code>Vary</code> başlığında gösterim çeşitliliğinin
379 boyutları belirtilir.</li>
382 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
383 <div class="section">
384 <h2><a name="better" id="better">Üstünlük Değerleriyle Oynamak</a></h2>
386 <p>Apache bazen yukarıdaki Apache uzlaşım algoritmasının kesin sonucunun
387 beklenenden farklı olması için üstünlük değerleriyle oynar. Bunu tam ve
388 doğru bilgi göndermeyen tarayıcılar için algoritmadan en iyi sonucu elde
389 etmek amacıyla yapar. Bazen günümüzün en tanınmış tarayıcıları bile çoğu
390 durumda yanlış bir seçimle sonuçlanmayacaksa <code>Accept</code> başlık
391 bilgilerini göndermemektedir. Eğer tarayıcı eksiksiz ve doğru bilgi
392 gönderirse Apache bu değerlerle oynamayacaktır.</p>
394 <h3><a name="wildcards" id="wildcards">Ortam Türleri ve Dosyaismi Kalıpları</a></h3>
396 <p><code>Accept:</code> istek başlığı ortam türü tercihlerini yansıtır.
397 Ayrıca, * bir dizge ile eşleşmek üzere "image/*" veya "*/*" gibi ortam
398 türü kalıpları da içerebilir. Dolayısıyla şöyle bir istek,</p>
400 <div class="example"><p><code>Accept: image/*, */*</code></p></div>
402 <p>diğer türler gibi "image/" ile başlayan ortam türlerini kabul
403 edilebilir kılacaktır. Bazı tarayıcılar ortam türlerini örtük olarak
404 elde etmek amacıyla hep bu tür kalıplar gönderirler. Örnek:</p>
406 <div class="example"><p><code>
407 Accept: text/html, text/plain, image/gif, image/jpeg, */*
410 <p>Bunun amacı, açıkça listelenmiş türlerin tercih edildiğini, fakat
411 farklı gösterimler varsa onların da kabul edilebileceğini belirtmektir.
412 Üstünlük değerlerini doğrudan kullanarak tarayıcılar gerçekte ne
413 istediklerini şuna benzer şekilde belirtebilirler:</p>
415 <div class="example"><p><code>
416 Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01
419 <p>Açıkça belirtilen türler için üstünlük katsayısı belirtilmemiştir,
420 dolayısıyla üstünlük katsayılarının 1.0 (en yüksek) olduğu
421 varsayılmaktadır. */* kalıbı 0.01 gibi çok daha düşük bir öncelik
422 belirtmektedir. Bu bakımdan, ancak, açıkça belirtilen türlerden
423 hiçbirinin bulunmaması halinde diğer türler eşleşecektir.</p>
425 <p>Eğer <code>Accept:</code> başlığı <em>hiçbir</em> <code>q</code>
426 katsayısı içermiyorsa ve başlıkta "*/*" belirtilmişse, Apache istenen
427 davranışı taklit etmek için bu kalıba 0.01 katsayısını atar. Keza
428 "type/*" kalıbına da 0.02 katsayısını atar (yani, */* kalıbına göre
429 tercihli olur). Eğer <code>Accept:</code> alanındaki her ortam türü bir
430 <code>q</code> katsayısı içeriyorsa bu özel değerler uygulanmaz.
431 Dolayısıyla gerekli bilgiyi açıkça bildiren tarayıcılardan gelen
432 istekler umulduğu gibi işlem görecektir.</p>
435 <h3><a name="exceptions" id="exceptions">Dil Uzlaşımında İstisnalar</a></h3>
437 <p>Apache 2.0’dan itibaren, uzlaşım algoritmasına, bir eşleşme bulmak
438 konusunda algoritma başarılı olamadığı takdirde hoş bir son çareye izin
439 vermek için bazı istisnalar eklenmiştir.</p>
441 <p>İstemci sunucudan bir sayfa istediğinde, sunucu, tarayıcı tarafından
442 gönderilen <code>Accept-language</code> başlığıyla eşleşen tek bir sayfa
443 bulamadığı takdirde istemciye ya “Kabul edilebilir bir gösterim çeşidi
444 yok” ya da “Çok sayıda seçim belirtilmiş” yanıtını döndürür. Bu hata
445 iletilerinden kaçınmak için bu gibi durumlarda Apache
446 <code>Accept-language</code> başlığını yoksaymaya ayarlanabilir. Böylece
447 istemcinin isteğine tam olarak uymasa da bir belge sağlanır. Bu hata
448 iletilerinin birini veya her ikisini de geçersiz kılmak için <code class="directive"><a href="./mod/mod_negotiation.html#forcelanguagepriority">ForceLanguagePriority</a></code> yönergesi
449 kullanılabilir ve sunucunun kararını <code class="directive"><a href="./mod/mod_negotiation.html#languagepriority">LanguagePriority</a></code> yönergesine
450 dayanarak vermesi sağlanabilir.</p>
452 <p>Sunucu ayrıca, tam bir eşleşme bulunmadığı zaman lehçelerle de eşleşme
453 arayabilir. Örneğin, bir istemci Britanya İngilizcesi
454 (<code>en-GB</code>) ile yazılmış belgeler için istekte bulunursa,
455 sunucu normalde HTTP/1.1 standardına göre bir belgenin basitçe
456 <code>en</code> olarak imlenmesine izin vermez. (Bir okuyucu Britanya
457 İngilizcesini anlıyor ama genel İngilizceyi anlamıyor diye
458 <code>Accept-Language</code> başlığında <code>en</code> değil de
459 <code>en-GB</code>’yi belirtmesinin hemen hemen daima bir yapılandırma
460 hatasına yol açacağına dikkat ediniz. Maalesef, mevcut istemcilerin çoğu
461 öntanımlı yapılandırmalarında buna benzer şeyler yapmaktadır.) Bununla
462 birlikte, başka bir dille eşleşme mümkün değilse ve sunucu “Kabul
463 edilebilir bir gösterim çeşidi yok” hatasını döndürmeye hazırsa veya
464 <code class="directive"><a href="./mod/mod_negotiation.html#languagepriority">LanguagePriority</a></code> son
465 çaresine ayarlanmışsa alt küme belirtimini yok sayacak ve
466 <code>en</code> belge isteklerine <code>en-GB</code> belgelerle yanıt
467 verecektir. Apache, lehçenin üyesi olduğu anadili, istemcinin kabul
468 edilebilir diller listesine örtük olarak düşük bir üstünlük değeri ile
469 ekler. Yalnız şuna dikkat edin, eğer istemci tercihini "en-GB; q=0.9,
470 fr; q=0.8" olarak belirtirse ve sunucuda sadece "en" ve "fr" belgeleri
471 varsa sunucu "fr" belge ile yanıt verecektir. HTTP/1.1 belirtimi ile
472 uyumluluğu sağlamak ve düzgün yapılandırılmış istemcilerle gerektiği
473 gibi çalışabilmek için bu gereklidir.</p>
475 <p>Gelişmiş tekniklerin (çerezler, özel URL yolları gibi) desteklenmesi
476 sırasında, kullanıcının tercih ettiği dili saptamak için Apache 2.0.47
477 sürümünden beri <code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code> modülü
478 <code>prefer-language</code> <a href="env.html">ortam değişkenini</a>
479 tanımaktadır. Değişken mevcutsa ve uygun bir dil yaftası içeriyorsa
480 <code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code> uygun gösterimi seçmeyi deneyecektir.
481 Böyle bir gösterim çeşidi mevcut değilse normal uzlaşım işlemi
484 <div class="example"><h3>Örnek</h3><p><code>
485 SetEnvIf Cookie "language=(.+)" prefer-language=$1<br />
486 Header append Vary cookie
489 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
490 <div class="section">
491 <h2><a name="extensions" id="extensions">Şeffaf İçerik Uzlaşımının Genişletilmesi</a></h2>
494 <p>Apache, şeffaf içerik uzlaşımı protokolünü (RFC 2295) şöyle genişletir:
495 Sadece içerik kodlamasına özgü olmak üzere gösterim çeşidi listelerinde
496 gösterim çeşitlerini imlemek için yeni bir <code>{encoding ..}</code>
497 elemanı kullanılır. RVSA/1.0 algoritmasının (RFC 2296) gerçeklenimi,
498 listedeki kodlanmış gösterim çeşitlerini tanımak ve onları
499 <code>Accept-Encoding</code> başlık alanıyla ilgili olarak kabul
500 edilebilir kodlamalara aday gösterim çeşitleri olarak kullanmak üzere
501 genişletilmiştir. RVSA/1.0 gerçeklenimi, en uygun gösterim çeşidi
502 seçiminin öncesinde hesaplanmış üstünlük katsayısını virgülden sonra beş
503 haneye yuvarlamaz.</p>
504 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
505 <div class="section">
506 <h2><a name="naming" id="naming">Hiperbağlar ve İsimlendirme Uzlaşımları</a></h2>
508 <p>Eğer dil uzlaşımı kullanıyorsanız ve birden fazla dosya ismi uzantısına
509 sahip dosyalarınız varsa uzantıların sıralamasının normalde uygunsuz
510 düştüğü farklı isimlendirme yaklaşımlarında bulunabilirsiniz (ayrıntılar
511 için <a href="mod/mod_mime.html#multipleext">mod_mime</a> belgesine
514 <p>Bir MIME türü uzantısına sahip bir dosyanın (<code>html</code> gibi),
515 kodlanmış bir gösterimi (<code>gz</code> gibi) mevcut olabilir. Bu
516 dosyanın ayrıca farklı dillerdeki gösterimleri için de bir uzantısı
517 (<code>en</code> gibi) olabilir.</p>
522 <li>misal.en.html</li>
524 <li>misal.html.en</li>
526 <li>misal.en.html.gz</li>
529 <p>Hiperbağ olarak geçerli ve geçersiz bazı dosya ismi örnekleri:</p>
531 <table class="bordered">
536 <th>Geçerli Hiperbağ</th>
538 <th>Geçersiz Hiperbağ</th>
542 <td><em>misal.html.en</em></td>
551 <td><em>misal.en.html</em></td>
559 <td><em>misal.html.en.gz</em></td>
569 <td><em>misal.en.html.gz</em></td>
579 <td><em>misal.gz.html.en</em></td>
589 <td><em>misal.html.gz.en</em></td>
599 <p>Yukarıdaki tabloya bakarak hiperbağlarda bir dosya ismini uzantısız
600 olarak (<code>misal</code> gibi) kullanmanın daima mümkün olduğunu
601 farkedeceksiniz. Böylece br belgenin asıl türünü gizleyebilir ve
602 sonradan bir hiperbağ değişikliği yapmaksızın örneğin
603 <code>html</code>’den <code>shtml</code> veya <code>cgi</code>’ye
606 <p>Hiperbağlarda MIME türlerini (<code>misal.html</code> gibi) kullanmaya
607 devam etmek istiyorsanız dil uzantısı MIME türü uzantısının sağında
608 kalmalıdır (<code>misal.html.en</code> gibi).</p>
609 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
610 <div class="section">
611 <h2><a name="caching" id="caching">Arabellekler Hakkında</a></h2>
613 <p>Bir arabellek, bir gösterimi istek URL’si ile ilişkilendirerek saklar.
614 Böylece, sonradan aynı URL için bir istek yapıldığında kaydettiği
615 gösterimi kullanabilir. Fakat özkaynak sunucuyla uzlaşılan türdeyse
616 arabelleğe ilk istenen çeşit saklanmış olacağından isteğe yanlış
617 gösterimle yanıt verilmiş olacaktır. Bunun olmaması için Apache, normal
618 olarak içerik uzlaşımının sonucu olarak döndürülen tüm yanıtları
619 HTTP/1.0 istemciler tarafından arabelleklenemez olarak imler. Apache
620 ayrıca, uzlaşımlı yanıtların arabelleklenmesini mümkün kılan HTTP/1.1
621 protokolünü de destekler.</p>
623 <p>HTTP/1.0 uyumlu istemcilerden (bir tarayıcı veya arabellek) gelen
624 istekler için, uzlaşıma konu yanıtların arabelleklenmesini mümkün kılmak
625 üzere <code class="directive"><a href="./mod/mod_negotiation.html#cachenegotiateddocs">CacheNegotiatedDocs</a></code> yönergesi kullanılabilir. Bu yönerge
626 argümansızdır ve sunucu genelinde veya sanal konakların
627 yapılandırılmasında kullanılabilir. Bunun HTTP/1.1 istemcilerinden gelen
628 isteklere bir etkisi yoktur.</p>
630 <p>HTTP/1.1 istemciler için, Apache, yanıtın uzlaşım boyutlarını göstermek
631 üzere bir <code>Vary</code> HTTP yanıt başlığı gönderir. Arabellekler bu
632 bilgiyi sonraki istekleri yerel kopyadan sunarken kullanabilirler. Bir
633 arabelleğin uzlaşım boyutlarına bakmaksızın yerel kopyasını kullanmaya
634 teşvik etmek için <code>force-no-vary</code> <a href="env.html#special">ortam değişkenini</a> etkin kılabilirsiniz.</p>
637 <div class="bottomlang">
638 <p><span>Mevcut Diller: </span><a href="./en/content-negotiation.html" hreflang="en" rel="alternate" title="English"> en </a> |
639 <a href="./ja/content-negotiation.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
640 <a href="./ko/content-negotiation.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
641 <a href="./tr/content-negotiation.html" title="Türkçe"> tr </a></p>
642 </div><div id="footer">
643 <p class="apache">Copyright 2011 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p>
644 <p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="./faq/">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p></div>