upload apache
[bottlenecks.git] / rubbos / app / apache2 / manual / content-negotiation.html.tr.utf8
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
7       -->
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.0</p>
16 <img alt="" src="./images/feather.gif" /></div>
17 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
18 <div id="path">
19 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="http://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="./">Sürüm 2.0</a></div><div id="page-content"><div id="preamble"><h1>İçerik Uzlaşımı</h1>
20 <div class="toplang">
21 <p><span>Mevcut Diller: </span><a href="./en/content-negotiation.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
22 <a href="./fr/content-negotiation.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
23 <a href="./ja/content-negotiation.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
24 <a href="./ko/content-negotiation.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
25 <a href="./tr/content-negotiation.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
26 </div>
27
28
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>
35
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>
38 </div>
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>
46 </ul></div>
47 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
48 <div class="section">
49 <h2><a name="about" id="about">İçerik Uzlaşımı Hakkında</a></h2>
50
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>
61
62     <div class="example"><p><code>Accept-Language: tr</code></p></div>
63
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>
67
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>
74
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
79     </code></p></div>
80
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>
88
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>
102
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>
105
106     <ul>
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ı
109         gibi).</li>
110
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ı
113         verilir.</li>
114     </ul>
115
116    <h3><a name="type-map" id="type-map">Bir türeşlem dosyası kullanmak</a></h3>
117
118     <p>Bir türeşlem, <code>type-map</code> eylemcisi ile ilişkili bir belgedir
119       (ya da eski Apache yapılandırmaları ile geriye uyumluluk için,
120       <code>application/x-type-map</code> <span title="sözlüğe bakınız">→</span>&nbsp;<a href="./glossary.html#">MIME türü</a>nde
121       bir belgedir). Bu özelliği kullanmak için, yapılandırmada bir tür
122       eşleyici olarak bir 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>
125
126     <div class="example"><p><code>AddHandler type-map .var</code></p></div>
127
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>
138
139     <div class="example"><p><code>
140       URI: misal<br />
141     <br />
142       URI: misal.en.html<br />
143       Content-type: text/html<br />
144       Content-language: en<br />
145     <br />
146       URI: misal.fr.de.html<br />
147       Content-type: text/html;charset=iso-8859-2<br />
148       Content-language: fr, de<br />
149     </code></p></div>
150
151     <p>Ayrıca, bir türeşlem dosyasının <code>MultiViews</code> etkin olsa bile
152       dosya ismi uzantısına göre öncelik alacağına dikkat ediniz. Eğer
153       gösterimler bu örnekteki resim dosyasında olduğu gibi farklı kaynak
154       üstünlüklerine sahipseler, ortam türünün <code>qs</code> parametresi
155       kullanılarak kaynak üstünlükleri belirtilebilir: </p>
156
157     <div class="example"><p><code>
158       URI: misal<br />
159     <br />
160       URI: misal.jpeg<br />
161       Content-type: image/jpeg; <strong>qs=0.8</strong><br />
162     <br />
163       URI: misal.gif<br />
164       Content-type: image/gif; <strong>qs=0.5</strong><br />
165     <br />
166       URI: misal.txt<br />
167       Content-type: text/plain; <strong>qs=0.01</strong><br />
168     </code></p></div>
169
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>
181
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>
184   
185
186   <h3><a name="multiviews" id="multiviews">Çoklu Görünümler</a></h3>
187
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">&lt;Directory&gt;</a></code>, <code class="directive"><a href="./mod/core.html#location">&lt;Location&gt;</a></code> veya <code class="directive"><a href="./mod/core.html#files">&lt;Files&gt;</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>
195
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>
204
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>
208
209     <div class="example"><p><code>DirectoryIndex index</code></p></div>
210
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ı
215       çalıştıracaktır.</p>
216
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>
224   
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>
228
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>
236
237     <p>İki uzlaşım yöntemi vardır:</p>
238
239     <ol>
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>
246
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>
255     </ol>
256
257   <h3><a name="dimensions" id="dimensions">Uzlaşımın Boyutları</a></h3>
258
259     <table>
260       
261       <tr valign="top">
262         <th>Boyut</th>
263
264         <th>Açıklama</th>
265       </tr>
266
267       <tr valign="top">
268         <td>Ortam Türü</td>
269
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>
274       </tr>
275
276       <tr valign="top">
277         <td>Dil</td>
278
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>
283       </tr>
284
285       <tr valign="top">
286         <td>Kodlama</td>
287
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ı
290           olabilir.</td>
291       </tr>
292
293       <tr valign="top">
294         <td>Karakter Kümesi</td>
295
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>
300       </tr>
301     </table>
302   
303
304   <h3><a name="algorithm" id="algorithm">Apache Uzlaşım Algoritması</a></h3>
305
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>
309
310     <ol>
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>
316
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
322         sınamaya geçilir.
323
324         <ol>
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>
328
329           <li>En yüksek dil üstünlük katsayısına sahip gösterim çeşidi seçilir.
330           </li>
331
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>
336
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
339             seçilir.</li>
340
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>
347
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
350             seçilir.</li>
351
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>
358
359           <li>En küçük içerik uzunluğuna sahip gösterim çeşitleri seçilir.</li>
360
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>
365         </ol>
366       </li>
367
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>
373
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>
380     </ol>
381   
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>
385
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>
393
394   <h3><a name="wildcards" id="wildcards">Ortam Türleri ve Dosyaismi Kalıpları</a></h3>
395
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>
399
400     <div class="example"><p><code>Accept: image/*, */*</code></p></div>
401
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>
405
406     <div class="example"><p><code>
407       Accept: text/html, text/plain, image/gif, image/jpeg, */*
408     </code></p></div>
409
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>
414
415     <div class="example"><p><code>
416       Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01
417     </code></p></div>
418
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>
424
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>
433   
434
435   <h3><a name="exceptions" id="exceptions">Dil Uzlaşımında İstisnalar</a></h3>
436
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>
440
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>
451
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>
474
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
482       uygulanacaktır.</p>
483
484     <div class="example"><h3>Örnek</h3><p><code>
485       SetEnvIf Cookie "language=en" prefer-language=en<br />
486       SetEnvIf Cookie "language=fr" prefer-language=fr
487     </code></p></div>
488   
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>
492   
493
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>
507
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
512       bakınız).</p>
513
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>
518
519     <p>Örnekler:</p>
520
521     <ul>
522       <li>misal.en.html</li>
523
524       <li>misal.html.en</li>
525
526       <li>misal.en.html.gz</li>
527     </ul>
528
529     <p>Hiperbağ olarak geçerli ve geçersiz bazı dosya ismi örnekleri:</p>
530
531     <table class="bordered">
532       
533       <tr>
534         <th>Dosya ismi</th>
535
536         <th>Geçerli Hiperbağ</th>
537
538         <th>Geçersiz Hiperbağ</th>
539       </tr>
540
541       <tr>
542         <td><em>misal.html.en</em></td>
543
544         <td>misal<br />
545          misal.html</td>
546
547         <td>-</td>
548       </tr>
549
550       <tr>
551         <td><em>misal.en.html</em></td>
552
553         <td>misal</td>
554
555         <td>misal.html</td>
556       </tr>
557
558       <tr>
559         <td><em>misal.html.en.gz</em></td>
560
561         <td>misal<br />
562          misal.html</td>
563
564         <td>misal.gz<br />
565          misal.html.gz</td>
566       </tr>
567
568       <tr>
569         <td><em>misal.en.html.gz</em></td>
570
571         <td>misal</td>
572
573         <td>misal.html<br />
574          misal.html.gz<br />
575          misal.gz</td>
576       </tr>
577
578       <tr>
579         <td><em>misal.gz.html.en</em></td>
580
581         <td>misal<br />
582          misal.gz<br />
583          misal.gz.html</td>
584
585         <td>misal.html</td>
586       </tr>
587
588       <tr>
589         <td><em>misal.html.gz.en</em></td>
590
591         <td>misal<br />
592          misal.html<br />
593          misal.html.gz</td>
594
595         <td>misal.gz</td>
596       </tr>
597     </table>
598
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
604       geçebilirsiniz.</p>
605
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>
612
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>
622
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>
629
630 </div></div>
631 <div class="bottomlang">
632 <p><span>Mevcut Diller: </span><a href="./en/content-negotiation.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
633 <a href="./fr/content-negotiation.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
634 <a href="./ja/content-negotiation.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
635 <a href="./ko/content-negotiation.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
636 <a href="./tr/content-negotiation.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
637 </div><div id="footer">
638 <p class="apache">Copyright 2009 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>
639 <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>
640 </body></html>