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