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