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