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