]> granicus.if.org Git - apache/blob - docs/manual/content-negotiation.html.tr.utf8
Update transformations.
[apache] / docs / 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.3</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.3</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> |
26 <a href="./zh-cn/content-negotiation.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese">&nbsp;zh-cn&nbsp;</a></p>
27 </div>
28 <div class="outofdate">Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.</div>
29
30
31     <p>Apache HTTPD, içerik uzlaşımını HTTP/1.1 belirtiminde bahsedildiği şekliyle
32       destekler. Bir özkaynağın en iyi gösterimini, tarayıcının sağladığı
33       karakter kodlaması, karakter kümesi, dil, ortam türü gibi kullanıcı
34       tercihlerine bağlı olarak seçebilir. Ayrıca, tarayıcının kullanıcı
35       tercihlerini tam yansıtamadığı durumlarda istekleri daha akıllıca ele
36       alabilmeyi sağlayacak bir takım özelliklere de sahiptir.</p>
37
38     <p>İçerik uzlaşımı öntanımlı olarak derlenen
39       <code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code> modülü tarafından sağlanır.</p>
40 </div>
41 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#about">İçerik Uzlaşımı Hakkında</a></li>
42 <li><img alt="" src="./images/down.gif" /> <a href="#negotiation">httpd’de İçerik Uzlaşımı</a></li>
43 <li><img alt="" src="./images/down.gif" /> <a href="#methods">Uzlaşım Yöntemleri</a></li>
44 <li><img alt="" src="./images/down.gif" /> <a href="#better">Üstünlük Değerleriyle Oynamak</a></li>
45 <li><img alt="" src="./images/down.gif" /> <a href="#extensions">Şeffaf İçerik Uzlaşımının Genişletilmesi</a></li>
46 <li><img alt="" src="./images/down.gif" /> <a href="#naming">Hiperbağlar ve İsimlendirme Uzlaşımları</a></li>
47 <li><img alt="" src="./images/down.gif" /> <a href="#caching">Arabellekler Hakkında</a></li>
48 </ul></div>
49 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
50 <div class="section">
51 <h2><a name="about" id="about">İçerik Uzlaşımı Hakkında</a></h2>
52
53     <p>Bir özkaynağın bir çok farklı gösterimi olabilir. Örneğin, bir belgenin
54       farklı ortam türleri ve/veya farklı diller için gösterimleri olabilir.
55       En uygun seçimi yapmanın tek yolu kullanıcıya bir liste verip seçmesini
56       istemektir. Bununla birlikte sunucunun bu seçimi kendiliğinden yapması
57       da mümkündür. Tarayıcılar isteğin bir parçası olarak kullanıcı
58       tercihlerini de gönderdiğinden bu istendiği gibi çalışır. Örneğin bir
59       tarayıcı, kullanıcısınının mümkünse Fransızca içerik tercih ettiğini
60       yoksa İngilizce içeriğe de razı olabileceğini belirtebilirdi.
61       Tarayıcılar bu tercihleri başlıkta belirtirler. Tarayıcı sadece Türkçe
62       içerik istendiğini şöyle belirtebilirdi:</p>
63
64     <div class="example"><p><code>Accept-Language: tr</code></p></div>
65
66     <p>Bu tercihin yerine getirilebilmesininin sadece, desteklenen diller
67       arasında bu dilin varlığına ve istenen belgenin bu dilde bir
68       gösteriminin bulunmasına bağlı oluşuna dikkat ediniz.</p>
69
70     <p>Daha karmaşık bir istek örneği olarak, tarayıcının Fransızca ve
71       İngilizce içerik kabul etmeye ayarlandığını fakat Fransızcayı tercih
72       ettiğini ve çeşitli ortam türlerini kabul etmekle birlikte salt metin ve
73       diğer metin türlerinden ziyade HTML tercih ettiğini, ayrıca, diğer ortam
74       türleri üzerinde GIF veya JPEG tercih ettiğini fakat başka çare yoksa
75       her ortam türüne de izin verdiğini belirtiyor olsun:</p>
76
77     <div class="example"><p><code>
78       Accept-Language: fr; q=1.0, en; q=0.5<br />
79       Accept: text/html; q=1.0, text/*; q=0.8, image/gif; q=0.6, image/jpeg;
80       q=0.6, image/*; q=0.5, */*; q=0.1
81     </code></p></div>
82
83     <p>httpd, HTTP/1.1 belirtiminde tanımlanan şekliyle ‘sunucu yönetiminde’
84       içerik uzlaşımını destekler. <code>Accept</code>,
85       <code>Accept-Language</code>, <code>Accept-Charset</code> ve
86       <code>Accept-Encoding</code> istek başlıklarını tamamen destekler.
87       httpd ayrıca, RFC 2295 ve RFC 2296’da tanımlanan bir deneysel uzlaşım
88       olarak ‘şeffaf’ içerik uzlaşımını da destekler. Fakat ‘özellik
89       uzlaşımını’ bu RFC’lerde tanımlandığı gibi desteklemez.</p>
90
91     <p>Bir <strong>özkaynak</strong> bir URI (RFC 2396) tarafından betimlenen
92       kavramsal bir öğedir. Apache gibi bir HTTP sunucusu, ortam türü,
93       karakter kümesi, kodlama ve saire ile tanımlanmış bir bayt dizisi
94       şeklindeki her gösterimiyle, özkaynaklara kendi isim alanları dahilinde
95       erişim sağlar. Her özkaynağın aynı anda bir veya daha fazla gösterimi
96       mevcut olabileceği gibi hiç mevcut olmayabilir de. Eğer çok sayıda
97       gösterim mevcutsa, bu özkaynağın <strong>uzlaşılabilir</strong>
98       olduğundan ve her gösteriminin  bir <strong>çeşitlilik</strong>
99       oluşturduğundan bunun da uzlaşımın <strong>boyutlar</strong>ından
100       kaynaklandığından bahsedilebilir.</p>
101 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
102 <div class="section">
103 <h2><a name="negotiation" id="negotiation">httpd’de İçerik Uzlaşımı</a></h2>
104
105     <p>Bir özkaynak üzerinde uzlaşılırken gösterim çeşitlerinin her biri
106       hakkında sunucuya bilgi verilmesi gerekir. Bu iki yolla yapılabilir:</p>
107
108     <ul>
109       <li>Ya gösterim çeşitlerini içeren dosyaların isimleriyle eşleşmeyi
110         sağlayan bir tür eşlemi kullanılır (bir <code>*.var</code> dosyası
111         gibi).</li>
112
113       <li>Ya da sunucu örtük bir dosya ismi kalıbı eşleşmesinin ardından
114         sonuçlar arasından seçim yapar; buna ‘Çoklu Görünüm’ araması adı
115         verilir.</li>
116     </ul>
117
118    <h3><a name="type-map" id="type-map">Bir türeşlem dosyası kullanmak</a></h3>
119
120     <p>Bir türeşlem dosyası, <code>type-map</code> eylemcisi ile ilişkili bir
121       belgedir (ya da eski httpd yapılandırmaları ile geriye uyumluluk için,
122       <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
123       bir belgedir). Bu özelliği kullanmak için, yapılandırmada bir tür
124       eşleyici olarak her dosya ismi uzantısı için bir <code>type-map</code>
125       eylemcisi tanımlamalısınız. Bu, sunucu yapılandırma dosyasında en iyi
126       şöyle yapılabilir:</p>
127
128     <div class="example"><p><code>AddHandler type-map .var</code></p></div>
129
130     <p>Türeşlem dosyaları kendilerini tanımlayan özkaynak ile aynı isimde
131       olmalı ve her gösterim çeşidi için bir girdi içermelidir; bu girdiler
132       ardarda belirtilen HTTP biçem başlık satırlarından oluşur. Farklı
133       gösterimlerin girdileri bir boş satırla diğerlerinden ayrılır. Aynı
134       girdi içinde boş satır kullanılamaz. Bir eşlem dosyasını bir birleşik
135       öğenin tamamı için bir girdi ile başlatmak adet olmuştur (ise de, bu
136       gerekli değildir, hele yoksayılacaksa hiç gerekli değildir). Eşlem
137       dosyası için aşağıda bir örnek verilmiştir. Dosya <code>misal</code>
138       isimli bir özkaynak hakkında olduğundan dosyaya <code>misal.var</code>
139       ismi verilebilir.</p>
140
141     <div class="example"><p><code>
142       URI: misal<br />
143     <br />
144       URI: misal.en.html<br />
145       Content-type: text/html<br />
146       Content-language: en<br />
147     <br />
148       URI: misal.fr.de.html<br />
149       Content-type: text/html;charset=iso-8859-2<br />
150       Content-language: fr, de<br />
151     </code></p></div>
152
153     <p>Ayrıca, <code>MultiViews</code> etkin olsa bile bir türeşlem dosyasının
154       dosya ismi uzantılarının taranmasına göre öncelik alacağına dikkat
155       ediniz. Eğer gösterimler bu örnekteki resim dosyasında olduğu gibi
156       farklı kaynak üstünlüklerine sahipseler, ortam türünün <code>qs</code>
157       parametresi kullanılarak kaynak üstünlükleri belirtilebilir: </p>
158
159     <div class="example"><p><code>
160       URI: misal<br />
161     <br />
162       URI: misal.jpeg<br />
163       Content-type: image/jpeg; <strong>qs=0.8</strong><br />
164     <br />
165       URI: misal.gif<br />
166       Content-type: image/gif; <strong>qs=0.5</strong><br />
167     <br />
168       URI: misal.txt<br />
169       Content-type: text/plain; <strong>qs=0.01</strong><br />
170     </code></p></div>
171
172     <p><code>qs</code> değerleri 0.000-1.000 değer aralığı içinde
173       belirtilebilir. 0.000 <code>qs</code> değerine sahip gösterimin asla
174       seçilmeyeceğine dikkat ediniz. Bir <code>qs</code> değeri belirtilmeyen
175       gösterimlerin kaynak üstünlüğü 1.000 kabul edilir. <code>qs</code>
176       parametresinin belirttiği değer istemcinin yeteneklerinden bağımsız
177       olarak olası gösterimler arasında göreli bir üstünlük ifade eder.
178       Örneğin bir fotoğraf sözkonusu olduğunda bir JPEG dosyasının kaynak
179       üstünlüğü bir ASCII çiziminkinden yüksek olacaktır. Diğer taraftan özgün
180       resim bir ASCII çizim olduğu takdirde, ASCII çizim, bir JPEG gösterimine
181       göre öncelikli olacaktır. Bu nedenle <code>qs</code> değeri özkaynağın
182       doğasına bakarak belirlenir.</p>
183
184     <p>Tanınan başlıkların tam listesini <a href="mod/mod_negotiation.html#typemaps">mod_negotiation</a> modülünün
185       belgesinde bulabilirsiniz.</p>
186   
187
188   <h3><a name="multiviews" id="multiviews">Çoklu Görünümler</a></h3>
189
190     <p><code>MultiViews</code>, <code>httpd.conf</code> dosyasındaki veya
191       (<code class="directive"><a href="./mod/core.html#allowoverride">AllowOverride</a></code> yönergesinin
192       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
193       <code class="directive"><a href="./mod/core.html#options">Options</a></code> yönergeleri ile
194       belirtilebilen, dizine özgü bir seçenektir. Yalnız, dikkatli olun,
195       <code>Options All</code> yaparak <code>MultiViews</code> seçeneğini
196       etkin kılamazsınız; seçeneği ismiyle açıkça belirtmelisiniz.</p>
197
198     <p><code>MultiViews</code> şöyle etki eder: Sunucudan,
199       <code>MultiViews</code> seçeneğinin etkin olduğu <code>/bir/dizin</code>
200       dizininden <code>filanca</code> dosyası için bir istekte bulunulmuşsa
201       fakat dizinde bu dosya yoksa, sunucu dizin içeriğini
202       <code>filanca.*</code> dosyaları için tarar ve bu dosyalar için
203       istemcinin ismiyle talep ettiği ortam türlerini ve kodlamaları
204       kullanarak bir türeşlem dosyası uydurup bu gösterimler arasından
205       istemcinin gereksinimlerine en uygun gösterimi seçer.</p>
206
207     <p><code>MultiViews</code> ayrıca, sunucunun bir dizin içeriğini
208       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
209       arama tertipleyebilir. Eğer yapılandırma dosyalarında</p>
210
211     <div class="example"><p><code>DirectoryIndex index</code></p></div>
212
213     <p>şeklinde bir atama varsa ve dizinde <code>index.html</code> ve
214       <code>index.html3</code> dosyaları varsa sunucu bunlar arasından hakem
215       sıfatıyla bir seçim yapacaktır; ama bu ikisi yerine dizinde sadece
216       <code>index.cgi</code> mevcutsa sunucu sadece bu dosyayı
217       çalıştıracaktır.</p>
218
219     <p>Okunan dizinde bulunan dosyalar arasında <code>mod_mime</code>
220       tarafından tanınan karakter kümesi, içerik türü, dil ve kodlama
221       başlıklarına uygun gösterim uzantılarından birine sahip bir dosya yoksa
222       sonuç <code class="directive"><a href="./mod/mod_mime.html#multiviewsmatch">MultiViewsMatch</a></code>
223       yönergesiyle yapılan tanıma bağlı olur. Bu yönerge hangi diğer dosya
224       uzantılarının, eylemcilerin veya süzgeçlerin çok gösterimli uzlaşımla
225       ilintileneceğini belirler.</p>
226   
227 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
228 <div class="section">
229 <h2><a name="methods" id="methods">Uzlaşım Yöntemleri</a></h2>
230
231     <p>httpd’nin, bir türeşlem dosyası veya dizin içindeki bir dosya
232       sayesinde belli bir özkaynağın gösterim çeşitlerinin bir listesini elde
233       ettikten sonra ‘en uygun’ gösterime karar vermek için kullanabileceği
234       iki yöntem vardır. httpd’nin içerik uzlaşım özelliklerinin kullanımı
235       sırasında uzlaşımın nasıl yerine getirileceği ile ilgili ayrıntıları
236       bilmek aslında gerekli değildir. Bununla birlikte belgenin kalanında bu
237       konu açıklanmaya çalışılmıştır.</p>
238
239     <p>İki uzlaşım yöntemi vardır:</p>
240
241     <ol>
242       <li>Normal durumda <strong>sunucu yönetiminde httpd uzlaşım
243         algoritması</strong> kullanılır. Bu algoritma aşağıda ayrıntılı olarak
244         açıklanmıştır. Bu algoritma kullanıldığı zaman, httpd, en iyi sonuca
245         ulaşmak için bazen belli boyutların üstünlük katsayılarıyla ‘oynar’.
246         httpd’nin bu katsayılarla oynama işini nasıl yaptığı aşağıda daha
247         ayrıntılı açıklanmıştır.</li>
248
249       <li>İstemci bu işlem için özellikle RFC 2295’te tanımlanan mekanizmanın
250         kullanılmasını isterse <strong>şeffaf içerik uzlaşımı</strong>
251         kullanılır. Bu uzlaşım yöntemi, en uygun gösterimin seçilmesi
252         konusunda tarayıcıya tam denetim imkanı verir; dolayısıyla sonuç
253         tarayıcının bu işlem için kullandığı algoritmanın başarısına bağlıdır.
254         Şeffaf uzlaşım sürecinin bir parçası olarak, tarayıcı, RFC 2296’da
255         tanımlanan ‘gösterim çeşidini uzaktan seçme algoritması’nın
256         çalıştırılmasını httpd’den isteyebilir.</li>
257     </ol>
258
259   <h3><a name="dimensions" id="dimensions">Uzlaşımın Boyutları</a></h3>
260
261     <table>
262       
263       <tr valign="top">
264         <th>Boyut</th>
265
266         <th>Açıklama</th>
267       </tr>
268
269       <tr valign="top">
270         <td>Ortam Türü</td>
271
272         <td>Tarayıcı ortam türü tercihlerini <code>Accept</code> başlık alanı
273           ile belirtir. Her öğenin kendine özgü bir üstünlük katsayısı
274           olabilir. Gösterimin açıklaması da ayrıca bir kaynak üstünlüğüne
275           (<code>qs</code> parametresi) sahip olabilir.</td>
276       </tr>
277
278       <tr valign="top">
279         <td>Dil</td>
280
281         <td>Tarayıcı dil tercihlerini <code>Accept-Language</code> başlık
282           alanı ile belirtir. Her öğenin kendine özgü bir üstünlük katsayısı
283           olabilir. Gösterimler bir kaç dilde olabileceği gibi hiç bir dille
284           ilişkilendirimemiş de olabilir.</td>
285       </tr>
286
287       <tr valign="top">
288         <td>Kodlama</td>
289
290         <td>Tarayıcı kodlama tercihlerini <code>Accept-Encoding</code> başlık
291           alanı ile belirtir. Her öğenin kendine özgü bir üstünlük katsayısı
292           olabilir.</td>
293       </tr>
294
295       <tr valign="top">
296         <td>Karakter Kümesi</td>
297
298         <td>Tarayıcı karakter kümesi tercihlerini <code>Accept-Charset</code>
299           başlık alanı ile belirtir. Her öğenin kendine özgü bir üstünlük
300           katsayısı olabilir. Gösterim çeşitleri karakter kümesini ortam
301           türünün bir parametresi olarak belirtebilirler.</td>
302       </tr>
303     </table>
304   
305
306   <h3><a name="algorithm" id="algorithm">httpd Uzlaşım Algoritması</a></h3>
307
308     <p>httpd, tarayıcıya döndürülecek en uygun gösterim çeşidini (varsa)
309       seçmek için aşağıdaki algoritmayı kullanabilir. Bu algoritma pek de
310       yapılandırılabilir değildir. Şöyle çalışır:</p>
311
312     <ol>
313       <li>Önce her uzlaşım boyutu için ilgili <em>Accept*</em> başlık alanına
314         bakılıp her gösterim çeşidine bir üstünlük katsayısı atanır. Eğer
315         boyutlardan bazıları için ilgili <em>Accept*</em> başlığı
316         uygulanabilir değilse bu boyut elenir ve sonuçta hiçbir gösterim
317         çeşidi kalmasza 4. adıma atlanır.</li>
318
319       <li>‘En uygun’ gösterim çeşidi bir eleme süreciyle seçilir. Bu süreç
320         sırasında aşağıdaki sınamalar sırayla uygulanır. Sınamalardan
321         geçemeyen bir gösterim çeşidi elenir.  Sınamaların bir aşamasında tek
322         bir gösterim çeşidi kalırsa bu en uygun eşleşme olarak seçilmiş olur
323         ve 3. adıma atlanır. Eğer birden fazla gösterim çeşidi kalırsa sonraki
324         sınamaya geçilir.
325
326         <ol>
327           <li><code>Accept</code> başlığındaki üstünlük katsayısı ile
328             gösterimin ortam türünde belirtilen kaynak üstünlüğünün çarpımı en
329             büyük olan gösterim çeşidi seçilir.</li>
330
331           <li>En yüksek dil üstünlük katsayısına sahip gösterim çeşidi seçilir.
332           </li>
333
334           <li>En uygun dil eşleşmesine sahip gösterim çeşidini seçmek için
335             önce varsa <code>Accept-Language</code> başlığındaki dil
336             sıralamasına bakılır, aksi takdirde <code>LanguagePriority</code>
337             yönergesi ile atanmışsa oradaki dil sıralamasına bakılır.</li>
338
339           <li>En yüksek ‘seviyeden’ ortam parametresine (text/html ortam türü
340             sürümünü belirtmekte kullanılır) sahip gösterim çeşitleri
341             seçilir.</li>
342
343           <li><code>Accept-Charset</code> başlık satırında belirtilene bakarak
344             en uygun karakter kümesine sahip gösterim çeşitleri seçilir.
345             Alenen dışlanmadıkça ISO-8859-1 kabul edilebilir karakter
346             kümesidir. <code>text/*</code> ortam türüne sahip gösterim
347             çeşitlerinden belli bir karakter kümesi ile ilişkilendirilmemiş
348             olanların karakter kümesinin ISO-8859-1 olduğu varsayılır.</li>
349
350           <li>ISO-8859-1 karakter kümesi ile ilişkilendirilmemiş gösterim
351             çeşitleri seçilir. Böyle hiçbir gösterim yoksa bütün gösterimler
352             seçilir.</li>
353
354           <li>En uygun kodlamaya sahip gösterim çeşitleri seçilir. Tarayıcı
355             tarafından kabul edilebilir kodlamaya sahip gösterim çeşitleri
356             varsa bunlar seçilir. Yoksa kodlanmış ve kodlanmamış gösterim
357             çeşitleri karışık olarak mevcutsa sadece kodlanmamış olanlar
358             seçilir. Eğer bütün gösterim çeşitlerinin sadece kodlanmış ya da
359             sadece kodlanmamış gösterimleri mevcutsa hepsi seçilir.</li>
360
361           <li>En küçük içerik uzunluğuna sahip gösterim çeşitleri seçilir.</li>
362
363           <li>Kalan gösterim çeşitlerinin ilki seçilir. Bu ilk, ya türeşlem
364             dosyasında listelenen ilk çeşittir ya da gösterimler bir dizinden
365             okunuyorsa ASCII kod sıralamasına göre ilk sıradaki dosya ismine
366             sahip gösterimdir.</li>
367         </ol>
368       </li>
369
370       <li>Algoritma, artık seçilmiş en uygun gösterim çeşidine sahipse bu
371         artık yanıt olarak döndürülebilir. HTTP yanıt başlığı
372         <code>Vary</code>’ye uzlaşım boyutları atanır (tarayıcı ve
373         arabellekler özkaynağı kaydederken bu bilgiyi kullanırlar)
374         ve algoritma sonlandırılır.</li>
375
376       <li>Buraya gelinmişse hiçbir gösterim seçilmemiş demektir (hiçbiri
377         tarayıcı tarafından kabul edilebilir bulunmadığından dolayı).
378         Gövdesinde mevcut gösterim çeşitlerini listeleyen bir HTML belgesi 406
379         durum koduyla döndürülür (406: ‘kabul edilebilir bir gösterim yok’).
380         Ayrıca HTTP <code>Vary</code> başlığında gösterim çeşitliliğinin
381         boyutları belirtilir.</li>
382     </ol>
383   
384 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
385 <div class="section">
386 <h2><a name="better" id="better">Üstünlük Değerleriyle Oynamak</a></h2>
387
388     <p>httpd bazen yukarıdaki httpd uzlaşım algoritmasının kesin sonucunun
389       beklenenden farklı olması için üstünlük değerleriyle oynar. Bunu tam ve
390       doğru bilgi göndermeyen tarayıcılar için algoritmadan en iyi sonucu elde
391       etmek amacıyla yapar. Bazen günümüzün en tanınmış tarayıcıları bile çoğu
392       durumda yanlış bir seçimle sonuçlanmayacaksa <code>Accept</code> başlık
393       bilgilerini göndermemektedir. Eğer tarayıcı eksiksiz ve doğru bilgi
394       gönderirse httpd bu değerlerle oynamayacaktır.</p>
395
396   <h3><a name="wildcards" id="wildcards">Ortam Türleri ve Dosyaismi Kalıpları</a></h3>
397
398     <p><code>Accept:</code> istek başlığı ortam türü tercihlerini yansıtır.
399       Ayrıca, * bir dizge ile eşleşmek üzere "image/*" veya  "*/*" gibi ortam
400       türü kalıpları da içerebilir. Dolayısıyla şöyle bir istek,</p>
401
402     <div class="example"><p><code>Accept: image/*, */*</code></p></div>
403
404     <p>diğer türler gibi "image/" ile başlayan ortam türlerini kabul
405       edilebilir kılacaktır. Bazı tarayıcılar ortam türlerini örtük olarak
406       elde etmek amacıyla hep bu tür kalıplar gönderirler. Örnek:</p>
407
408     <div class="example"><p><code>
409       Accept: text/html, text/plain, image/gif, image/jpeg, */*
410     </code></p></div>
411
412     <p>Bunun amacı, açıkça listelenmiş türlerin tercih edildiğini, fakat
413       farklı gösterimler varsa onların da kabul edilebileceğini belirtmektir.
414       Üstünlük değerlerini doğrudan kullanarak tarayıcılar gerçekte ne
415       istediklerini şuna benzer şekilde belirtebilirler:</p>
416
417     <div class="example"><p><code>
418       Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01
419     </code></p></div>
420
421     <p>Açıkça belirtilen türler için üstünlük katsayısı belirtilmemiştir,
422       dolayısıyla üstünlük katsayılarının 1.0 (en yüksek) olduğu
423       varsayılmaktadır. */* kalıbı 0.01 gibi çok daha düşük bir öncelik
424       belirtmektedir. Bu bakımdan, ancak, açıkça belirtilen türlerden
425       hiçbirinin bulunmaması halinde diğer türler eşleşecektir.</p>
426
427     <p>Eğer <code>Accept:</code> başlığı <em>hiçbir</em> <code>q</code>
428       katsayısı içermiyorsa ve başlıkta "*/*" belirtilmişse, httpd istenen
429       davranışı taklit etmek için bu kalıba 0.01 katsayısını atar. Keza
430       "type/*" kalıbına da 0.02 katsayısını atar (yani, */* kalıbına göre
431       tercihli olur). Eğer  <code>Accept:</code> alanındaki her ortam türü bir
432       <code>q</code> katsayısı içeriyorsa bu özel değerler uygulanmaz.
433       Dolayısıyla gerekli bilgiyi açıkça bildiren tarayıcılardan gelen
434       istekler umulduğu gibi işlem görecektir.</p>
435   
436
437   <h3><a name="exceptions" id="exceptions">Dil Uzlaşımında İstisnalar</a></h3>
438
439     <p>httpd 2.0’dan itibaren, uzlaşım algoritmasına, bir eşleşme bulmak
440       konusunda algoritma başarılı olamadığı takdirde hoş bir son çareye izin
441       vermek için bazı istisnalar eklenmiştir.</p>
442
443     <p>İstemci sunucudan bir sayfa istediğinde, sunucu, tarayıcı tarafından
444       gönderilen <code>Accept-language</code> başlığıyla eşleşen tek bir sayfa
445       bulamadığı takdirde istemciye ya “Kabul edilebilir bir gösterim çeşidi
446       yok” ya da “Çok sayıda seçim belirtilmiş” yanıtını döndürür. Bu hata
447       iletilerinden kaçınmak için bu gibi durumlarda httpd
448       <code>Accept-language</code> başlığını yoksaymaya ayarlanabilir. Böylece
449       istemcinin isteğine tam olarak uymasa da bir belge sağlanır. Bu hata
450       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
451       kullanılabilir ve sunucunun kararını <code class="directive"><a href="./mod/mod_negotiation.html#languagepriority">LanguagePriority</a></code> yönergesine
452       dayanarak vermesi sağlanabilir.</p>
453
454     <p>Sunucu ayrıca, tam bir eşleşme bulunmadığı zaman lehçelerle de eşleşme
455       arayabilir. Örneğin, bir istemci Britanya İngilizcesi
456       (<code>en-GB</code>) ile yazılmış belgeler için istekte bulunursa,
457       sunucu normalde HTTP/1.1 standardına göre bir belgenin basitçe
458       <code>en</code> olarak imlenmesine izin vermez. (Bir okuyucu Britanya
459       İngilizcesini anlıyor ama genel İngilizceyi anlamıyor diye
460       <code>Accept-Language</code> başlığında <code>en</code>  değil de
461       <code>en-GB</code>’yi belirtmesinin hemen hemen daima bir yapılandırma
462       hatasına yol açacağına dikkat ediniz. Maalesef, mevcut istemcilerin çoğu
463       öntanımlı yapılandırmalarında buna benzer şeyler yapmaktadır.) Bununla
464       birlikte, başka bir dille eşleşme mümkün değilse ve sunucu “Kabul
465       edilebilir bir gösterim çeşidi yok” hatasını döndürmeye hazırsa veya
466       <code class="directive"><a href="./mod/mod_negotiation.html#languagepriority">LanguagePriority</a></code> son
467       çaresine ayarlanmışsa alt küme belirtimini yok sayacak ve
468       <code>en</code> belge isteklerine <code>en-GB</code> belgelerle yanıt
469       verecektir. httpd, lehçenin üyesi olduğu anadili, istemcinin kabul
470       edilebilir diller listesine örtük olarak düşük bir üstünlük değeri ile
471       ekler. Yalnız şuna dikkat edin, eğer istemci tercihini "en-GB; q=0.9,
472       fr; q=0.8" olarak belirtirse ve sunucuda sadece "en" ve "fr" belgeleri
473       varsa sunucu "fr" belge ile yanıt verecektir. HTTP/1.1 belirtimi ile
474       uyumluluğu sağlamak ve düzgün yapılandırılmış istemcilerle gerektiği
475       gibi çalışabilmek için bu gereklidir.</p>
476
477     <p>Gelişmiş tekniklerin (çerezler, özel URL yolları gibi) desteklenmesi
478       sırasında, kullanıcının tercih ettiği dili saptamak için httpd 2.0.47
479       sürümünden beri <code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code> modülü
480       <code>prefer-language</code> <a href="env.html">ortam değişkenini</a>
481       tanımaktadır. Değişken mevcutsa ve uygun bir dil yaftası içeriyorsa
482       <code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code> uygun gösterimi seçmeyi deneyecektir.
483       Böyle bir gösterim çeşidi mevcut değilse normal uzlaşım işlemi
484       uygulanacaktır.</p>
485
486     <div class="example"><h3>Örnek</h3><p><code>
487       SetEnvIf Cookie "language=(.+)" prefer-language=$1<br />
488       Header append Vary cookie
489     </code></p></div>
490   
491 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
492 <div class="section">
493 <h2><a name="extensions" id="extensions">Şeffaf İçerik Uzlaşımının Genişletilmesi</a></h2>
494   
495
496   <p>httpd, şeffaf içerik uzlaşımı protokolünü (RFC 2295) şöyle genişletir:
497     Sadece içerik kodlamasına özgü olmak üzere gösterim çeşidi listelerinde
498     gösterim çeşitlerini imlemek için yeni bir <code>{encoding ..}</code>
499     elemanı kullanılır. RVSA/1.0 algoritmasının (RFC 2296) gerçeklenimi,
500     listedeki kodlanmış gösterim çeşitlerini tanımak ve onları
501     <code>Accept-Encoding</code> başlık alanıyla ilgili olarak kabul
502     edilebilir kodlamalara aday gösterim çeşitleri olarak kullanmak üzere
503     genişletilmiştir. RVSA/1.0 gerçeklenimi, en uygun gösterim çeşidi
504     seçiminin öncesinde hesaplanmış üstünlük katsayısını virgülden sonra beş
505     haneye yuvarlamaz.</p>
506 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
507 <div class="section">
508 <h2><a name="naming" id="naming">Hiperbağlar ve İsimlendirme Uzlaşımları</a></h2>
509
510     <p>Eğer dil uzlaşımı kullanıyorsanız ve birden fazla dosya ismi uzantısına
511       sahip dosyalarınız varsa uzantıların sıralamasının normalde uygunsuz
512       düştüğü farklı isimlendirme yaklaşımlarında bulunabilirsiniz (ayrıntılar
513       için <a href="mod/mod_mime.html#multipleext">mod_mime</a> belgesine
514       bakınız).</p>
515
516     <p>Bir MIME türü uzantısına sahip bir dosyanın (<code>html</code> gibi),
517       kodlanmış bir gösterimi (<code>gz</code> gibi) mevcut olabilir. Bu
518       dosyanın ayrıca farklı dillerdeki gösterimleri için de bir uzantısı
519       (<code>en</code> gibi) olabilir.</p>
520
521     <p>Örnekler:</p>
522
523     <ul>
524       <li>misal.en.html</li>
525
526       <li>misal.html.en</li>
527
528       <li>misal.en.html.gz</li>
529     </ul>
530
531     <p>Hiperbağ olarak geçerli ve geçersiz bazı dosya ismi örnekleri:</p>
532
533     <table class="bordered">
534       
535       <tr>
536         <th>Dosya ismi</th>
537
538         <th>Geçerli Hiperbağ</th>
539
540         <th>Geçersiz Hiperbağ</th>
541       </tr>
542
543       <tr>
544         <td><em>misal.html.en</em></td>
545
546         <td>misal<br />
547          misal.html</td>
548
549         <td>-</td>
550       </tr>
551
552       <tr>
553         <td><em>misal.en.html</em></td>
554
555         <td>misal</td>
556
557         <td>misal.html</td>
558       </tr>
559
560       <tr>
561         <td><em>misal.html.en.gz</em></td>
562
563         <td>misal<br />
564          misal.html</td>
565
566         <td>misal.gz<br />
567          misal.html.gz</td>
568       </tr>
569
570       <tr>
571         <td><em>misal.en.html.gz</em></td>
572
573         <td>misal</td>
574
575         <td>misal.html<br />
576          misal.html.gz<br />
577          misal.gz</td>
578       </tr>
579
580       <tr>
581         <td><em>misal.gz.html.en</em></td>
582
583         <td>misal<br />
584          misal.gz<br />
585          misal.gz.html</td>
586
587         <td>misal.html</td>
588       </tr>
589
590       <tr>
591         <td><em>misal.html.gz.en</em></td>
592
593         <td>misal<br />
594          misal.html<br />
595          misal.html.gz</td>
596
597         <td>misal.gz</td>
598       </tr>
599     </table>
600
601     <p>Yukarıdaki tabloya bakarak hiperbağlarda bir dosya ismini uzantısız
602       olarak (<code>misal</code> gibi) kullanmanın daima mümkün olduğunu
603       farkedeceksiniz. Böylece bir belgenin asıl türünü gizleyebilir ve
604       sonradan bir hiperbağ değişikliği yapmaksızın örneğin
605       <code>html</code>’den <code>shtml</code> veya <code>cgi</code>’ye
606       geçebilirsiniz.</p>
607
608     <p>Hiperbağlarda MIME türlerini (<code>misal.html</code> gibi) kullanmaya
609       devam etmek istiyorsanız dil uzantısı MIME türü uzantısının sağında
610       kalmalıdır (<code>misal.html.en</code> gibi).</p>
611 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
612 <div class="section">
613 <h2><a name="caching" id="caching">Arabellekler Hakkında</a></h2>
614
615     <p>Bir arabellek, bir gösterimi istek URL’si ile ilişkilendirerek saklar.
616       Böylece, sonradan aynı URL için bir istek yapıldığında kaydettiği
617       gösterimi kullanabilir. Fakat özkaynak sunucuyla uzlaşılan türdeyse
618       arabelleğe ilk istenen çeşit saklanmış olacağından isteğe yanlış
619       gösterimle yanıt verilmiş olacaktır. Bunun olmaması için httpd, normal
620       olarak içerik uzlaşımının sonucu olarak döndürülen tüm yanıtları
621       HTTP/1.0 istemciler tarafından arabelleklenemez olarak imler. httpd
622       ayrıca, uzlaşımlı yanıtların arabelleklenmesini mümkün kılan HTTP/1.1
623       protokolünü de destekler.</p>
624
625     <p>HTTP/1.0 uyumlu istemcilerden (bir tarayıcı veya arabellek) gelen
626       istekler için, uzlaşıma konu yanıtların arabelleklenmesini mümkün kılmak
627       üzere <code class="directive"><a href="./mod/mod_negotiation.html#cachenegotiateddocs">CacheNegotiatedDocs</a></code> yönergesi kullanılabilir. Bu yönerge
628       argümansızdır ve sunucu genelinde veya sanal konakların
629       yapılandırılmasında kullanılabilir. Bunun HTTP/1.1 istemcilerinden gelen
630       isteklere bir etkisi yoktur.</p>
631
632     <p>HTTP/1.1 istemciler için, httpd, yanıtın uzlaşım boyutlarını göstermek
633       üzere bir <code>Vary</code> HTTP yanıt başlığı gönderir. Arabellekler bu
634       bilgiyi sonraki istekleri yerel kopyadan sunarken kullanabilirler. Bir
635       arabelleğin uzlaşım boyutlarına bakmaksızın yerel kopyasını kullanmaya
636       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
638 </div></div>
639 <div class="bottomlang">
640 <p><span>Mevcut Diller: </span><a href="./en/content-negotiation.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
641 <a href="./fr/content-negotiation.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
642 <a href="./ja/content-negotiation.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
643 <a href="./ko/content-negotiation.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
644 <a href="./tr/content-negotiation.html" title="Türkçe">&nbsp;tr&nbsp;</a> |
645 <a href="./zh-cn/content-negotiation.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese">&nbsp;zh-cn&nbsp;</a></p>
646 </div><div id="footer">
647 <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>
648 <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>
649 </body></html>