Current Path : /usr/local/apache22/share/doc/apache2/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/local/apache22/share/doc/apache2/content-negotiation.html.ko.euc-kr |
<?xml version="1.0" encoding="EUC-KR"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko"><head> <meta content="text/html; charset=EUC-KR" http-equiv="Content-Type" /> <!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX This file is generated from xml source: DO NOT EDIT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> <title>³»¿ëÇù»ó (Content Negotiation) - Apache HTTP Server Version 2.2</title> <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> <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" /> <script src="./style/scripts/prettify.min.js" type="text/javascript"> </script> <link href="./images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/content-negotiation.html" rel="canonical" /></head> <body id="manual-page"><div id="page-header"> <p class="menu"><a href="./mod/">¸ðµâ</a> | <a href="./mod/directives.html">Áö½Ã¾îµé</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">¿ë¾î</a> | <a href="./sitemap.html">»çÀÌÆ®¸Ê</a></p> <p class="apache">Apache HTTP Server Version 2.2</p> <img alt="" src="./images/feather.gif" /></div> <div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div> <div id="path"> <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="./">Version 2.2</a></div><div id="page-content"><div class="retired"><h4>Please note</h4> <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> <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>³»¿ëÇù»ó (Content Negotiation)</h1> <div class="toplang"> <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="./en/content-negotiation.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="./fr/content-negotiation.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="./ja/content-negotiation.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="./ko/content-negotiation.html" title="Korean"> ko </a> | <a href="./tr/content-negotiation.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> </div> <div class="outofdate">ÀÌ ¹®¼´Â ÃÖ½ÅÆÇ ¹ø¿ªÀÌ ¾Æ´Õ´Ï´Ù. ÃÖ±Ù¿¡ º¯°æµÈ ³»¿ëÀº ¿µ¾î ¹®¼¸¦ Âü°íÇϼ¼¿ä.</div> <p>¾ÆÆÄÄ¡´Â HTTP/1.1 ±Ô¾à¿¡ ±â¼úµÈ ³»¿ëÇù»ó(content negotiation)À» Áö¿øÇÑ´Ù. ³»¿ëÇù»óÀº media type, ¾ð¾î, ¹®ÀÚÁýÇÕ, ÀÎÄÚµù µî¿¡ ´ëÇØ ºê¶ó¿ìÀú°¡ Á¦°øÇÑ ¼±È£µµ¿¡ µû¶ó ÀÚ¿øÀÇ °¡Àå ÀûÇÕÇÑ Ç¥ÇöÀ» ¼±ÅÃÇÑ´Ù. ¶Ç ºÒ¿ÏÀüÇÑ Çù»ó Á¤º¸¸¦ º¸³»´Â ºê¶ó¿ìÀúÀÇ ¿äûÀ» Áö´ÉÀûÀ¸·Î ó¸®ÇÏ´Â ±â´Éµµ ÀÖ´Ù.</p> <p>±âº»ÀûÀ¸·Î ÄÄÆÄÀϵǴ <code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code> ¸ðµâÀÌ ³»¿ëÇù»ó ±â´ÉÀ» Á¦°øÇÑ´Ù.</p> </div> <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#about">³»¿ëÇù»ó¿¡ ´ëÇØ</a></li> <li><img alt="" src="./images/down.gif" /> <a href="#negotiation">¾ÆÆÄÄ¡ÀÇ Çù»ó</a></li> <li><img alt="" src="./images/down.gif" /> <a href="#methods">Çù»ó¹æ¹ý</a></li> <li><img alt="" src="./images/down.gif" /> <a href="#better">Ç°Áú°è¼ö Á¶ÀÛÇϱâ</a></li> <li><img alt="" src="./images/down.gif" /> <a href="#extensions">ÀÚ¿¬½º·¯¿î(transparent) ³»¿ëÇù»óÀÇ È®Àå</a></li> <li><img alt="" src="./images/down.gif" /> <a href="#naming">ÇÏÀÌÆÛ¸µÅ©¿Í À̸§±ÔÄ¢¿¡ ´ëÇÏ¿©</a></li> <li><img alt="" src="./images/down.gif" /> <a href="#caching">ij½¬¿¡ ´ëÇÏ¿©</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> <div class="section"> <h2><a name="about" id="about">³»¿ëÇù»ó¿¡ ´ëÇØ</a></h2> <p>ÀÚ¿øÀº ¿©·¯ ´Ù¸¥ Ç¥ÇöÀ» °¡Áú ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, ´Ù¸¥ ¾ð¾î³ª ´Ù¸¥ media type ȤÀº µÑ ¸ðµÎ°¡ ´Ù¸¥ Ç¥ÇöµéÀÌ ÀÖÀ» ¼ö ÀÖ´Ù. °¡Àå Àû´çÇÑ Ç¥ÇöÀ» ¼±ÅÃÇÏ´Â ÇÑ°¡Áö ¹æ¹ýÀº »ç¿ëÀÚ¿¡°Ô ¸ñ·Ï ÆäÀÌÁö¸¦ º¸¿©ÁÖ°í ¼±ÅÃÇÏ°Ô ÇÏ´Â °ÍÀÌ´Ù. ±×·¯³ª ¼¹ö°¡ ÀÚµ¿À¸·Î ¼±ÅÃÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù. ÀÌ´Â ºê¶ó¿ìÀú°¡ ¿äûÀÇ ÀϺηΠ±×µéÀÌ ¼±È£Çϴ ǥÇö¿¡ ´ëÇÑ Á¤º¸¸¦ º¸³»±â¶§¹®¿¡ °¡´ÉÇÏ´Ù. ¿¹¸¦ µé¾î, ºê¶ó¿ìÀú´Â °¡´ÉÇÑÇÑ ºÒ¾î·Î, ±×·¯³ª ¾ø´Ù¸é ¿µ¾î·Î Á¤º¸¸¦ º¸°í½Í´Ù°í ¾Ë·ÁÁÙ ¼ö ÀÖ´Ù. ºê¶ó¿ìÀú´Â ¿äûÀÇ Çì´õ·Î ±×µéÀÇ ±âÈ£¸¦ ³ªÅ¸³½´Ù. ¿ÀÁ÷ ºÒ¾î·ÎµÈ Ç¥Çö¸¸À» ¿äûÇÑ´Ù¸é ºê¶ó¿ìÀú´Â ´ÙÀ½°ú °°ÀÌ º¸³½´Ù.</p> <div class="example"><p><code>Accept-Language: fr</code></p></div> <p>ÀÌ·± ±âÈ£´Â Ç¥ÇöÀÌ ¾ð¾îº°·Î ´Ù¸¦ °æ¿ì¿¡¸¸ °í·ÁµÈ´Ù.</p> <p>´ÙÀ½Àº ´õ º¹ÀâÇÑ ¿äûÀÇ ¿¹·Î ºê¶ó¿ìÀú°¡ ºÒ¾î¿Í ¿µ¾î¸¦ ¹ÞÀ» ¼ö ÀÖÁö¸¸, ºÒ¾î¸¦ ´õ ¼±È£ÇÏ°í, ¿©·¯ media typeÀ» ¹ÞÀ» ¼ö ÀÖÁö¸¸, ÀÏ¹Ý ÅؽºÆ® º¸´Ù´Â HTML, ´Ù¸¥ media type º¸´Ù´Â GIF¿Í JPEGÀ» ¼±È£ÇÑ´Ù°í ¾Ë·ÁÁØ´Ù.</p> <div class="example"><p><code> Accept-Language: fr; q=1.0, en; q=0.5<br /> Accept: text/html; q=1.0, text/*; q=0.8, image/gif; q=0.6, image/jpeg; q=0.6, image/*; q=0.5, */*; q=0.1 </code></p></div> <p>¾ÆÆÄÄ¡´Â HTTP/1.1 ±Ô¾à¿¡ Á¤ÀÇµÈ '¼¹ö ÁÖµµ(server driven)' ³»¿ëÇù»óÀ» Áö¿øÇÑ´Ù. ¾ÆÆÄÄ¡´Â <code>Accept</code>, <code>Accept-Language</code>, <code>Accept-Charset</code>, <code>Accept-Encoding</code> ¿äû Çì´õ¸¦ ¸ðµÎ Áö¿øÇÑ´Ù. ¶Ç, ¾ÆÆÄÄ¡´Â RFC 2295¿Í RFC 2296¿¡ Á¤ÀÇµÈ ½ÇÇèÀûÀÎ ³»¿ëÇù»óÀÎ 'ÀÚ¿¬½º·¯¿î(transparent)' ¿äû Çì´õµµ Áö¿øÇÑ´Ù. ±×·¯³ª ÀÌ RFC¿¡ Á¤ÀÇµÈ '±â´É Çù»ó(feature negotiation)'Àº Áö¿øÇÏÁö ¾Ê´Â´Ù.</p> <p><strong>ÀÚ¿ø(resource)</strong>Àº (RFC 2396) URI·Î ±¸º°ÇÏ´Â °³³äÀûÀÎ Á¸Àç´Ù. ¾ÆÆÄÄ¡¿Í °°Àº À¥¼¹ö´Â ÀÚ¿øÀÇ <strong>Ç¥Çö(representations)</strong>À» Á¦°øÇÑ´Ù. Ç¥ÇöÀº ÁöÁ¤µÈ media type, ¹®ÀÚÁýÇÕ, ÀÎÄÚµù µîÀ» °¡Áø ¹ÙÀÌÆ®µé·Î µÇÀÖ´Ù. ÀÚ¿øÀº ¿©·¯ Ç¥Çö°ú (¶§·Î´Â ¾øÀ» ¼öµµ ÀÖ´Ù) ¿¬°üµÈ´Ù. ÀÚ¿ø¿¡ ¿©·¯ Ç¥ÇöÀÌ ÀÖ´Ù¸é ÀÚ¿øÀ» <strong>Çù»ó°¡´ÉÇÏ´Ù°í(negotiable)</strong> ºÎ¸£¸ç, À̶§ °¢ Ç¥ÇöÀ» <strong>º¯Çü(variant)</strong>À̶ó°í ÇÑ´Ù. Çù»ó°¡´ÉÇÑ ÀÚ¿øÀÇ º¯Çü Á¾·ù¸¦ Çù»óÀÇ <strong>¹üÀ§(dimension)</strong>¶ó°í ÇÑ´Ù.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> <div class="section"> <h2><a name="negotiation" id="negotiation">¾ÆÆÄÄ¡ÀÇ Çù»ó</a></h2> <p>ÀÚ¿øÀ» Çù»óÇϱâÀ§ÇØ ¼¹ö´Â °¢ º¯Çü¿¡ ´ëÇÑ Á¤º¸°¡ ÇÊ¿äÇÏ´Ù. ´ÙÀ½ µÎ°¡Áö ¹æ¹ýÁß Çϳª·Î Á¤º¸¸¦ ¾ò´Â´Ù:</p> <ul> <li>º¯ÇüÀ» ´ãÀº ÆÄÀϵéÀ» Á÷Á¢ ¿°ÅÇÑ type mapÀ» (<em>¿¹¸¦ µé¾î</em>, <code>*.var</code> ÆÄÀÏ) »ç¿ëÇϰųª,</li> <li>Á÷Á¢ ÁöÁ¤ÇÏÁö¾Ê¾Æµµ ¼¹ö°¡ ÆÄÀÏ¸í¿¡¼ ±ÔÄ¢À» ã¾Æ¼ °á°ú¸¦ ¼±ÅÃÇÏ´Â 'MultiViews'¸¦ »ç¿ëÇÑ´Ù.</li> </ul> <h3><a name="type-map" id="type-map">type-map ÆÄÀÏ »ç¿ëÇϱâ</a></h3> <p>type mapÀº <code>type-map</code>À̶õ Çڵ鷯¿Í ¿¬°áµÈ (ȤÀº ÀÌÀü ¾ÆÆÄÄ¡ ¼³Á¤°ú ȣȯÀ» À§ÇØ MIME typeÀÌ <code>application/x-type-map</code>ÀÎ) ¹®¼´Ù. ÀÌ ±â´ÉÀ» »ç¿ëÇÏ·Á¸é ¼³Á¤¿¡¼ <code>type-map</code> Çڵ鷯¿¡ ´ëÇÑ ÆÄÀÏ È®ÀåÀÚ¸¦ ÁöÁ¤ÇØ¾ß ÇÑ´Ù. ¼¹ö ¼³Á¤ÆÄÀÏ¿¡ ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÏ´Â °ÍÀÌ ÁÁ´Ù.</p> <div class="example"><p><code>AddHandler type-map .var</code></p></div> <p>Type map ÆÄÀÏÀº ÇØ´çÇÏ´Â ÀÚ¿ø°ú À̸§ÀÌ °°¾Æ¾ß ÇÏ°í, °¢ º¯Çü¿¡ ´ëÇÑ Ç׸ñÀÌ ÀÖ¾î¾ß ÇÑ´Ù. Ç׸ñÀº ¿©·¯ HTTPÇü½Ä Çì´õ ÁÙ·Î ±¸¼ºµÈ´Ù. º¯Çü¿¡ ´ëÇÑ °¢°¢ÀÇ Ç׸ñµéÀº ºóÁÙ·Î ±¸ºÐÇÑ´Ù. Ç׸ñ¾È¿¡¼ ºóÁÙÀ» »ç¿ëÇÒ ¼ö ¾ø´Ù. (ÀÌ·¸°Ô ÇÒ ÇÊ¿ä°¡ ¾ø°í, À־ ¹«½ÃÇÏÁö¸¸) ¿©·¯ Ç׸ñÀÌ °øÅëÀ¸·Î °¡Áö°í ÀÖ´Â ³»¿ëÀ¸·Î map ÆÄÀÏÀ» ½ÃÀÛÇÏ´Â °ÍÀÌ º¸ÅëÀÌ´Ù. ´ÙÀ½Àº map ÆÄÀÏ ¿¹´Ù. ÀÌ ÆÄÀÏÀÇ À̸§Àº <code>foo.var</code>·Î, <code>foo</code>¶ó´Â ÀÚ¿øÀ» ¼³¸íÇÑ´Ù.</p> <div class="example"><p><code> URI: foo<br /> <br /> URI: foo.en.html<br /> Content-type: text/html<br /> Content-language: en<br /> <br /> URI: foo.fr.de.html<br /> Content-type: text/html;charset=iso-8859-2<br /> Content-language: fr, de<br /> </code></p></div> <p>typemap ÆÄÀÏÀÌ ÆÄÀϸí È®ÀåÀÚ º¸´Ù, ½ÉÁö¾î Multiviews¸¦ »ç¿ëÇÏ¿©µµ, ¿ì¼±±ÇÀ» °¡ÁüÀ» ÁÖÀÇÇ϶ó. º¯ÇüÀÌ ¼·Î ´Ù¸¥ Ç°ÁúÀ» °¡Áø´Ù¸é, ´ÙÀ½°ú °°ÀÌ (JPEG, GIF, ASCII-art¿¡ ÇØ´çÇÏ´Â) media type¿¡ "qs" ÆĶó¹ÌÅÍ·Î Ç°Áú(source quality)À» Ç¥½ÃÇÒ ¼ö ÀÖ´Ù:</p> <div class="example"><p><code> URI: foo<br /> <br /> URI: foo.jpeg<br /> Content-type: image/jpeg; qs=0.8<br /> <br /> URI: foo.gif<br /> Content-type: image/gif; qs=0.5<br /> <br /> URI: foo.txt<br /> Content-type: text/plain; qs=0.01<br /> </code></p></div> <p>qs °ªÀº 0.000¿¡¼ 1.000 »çÀÌ´Ù. qs °ªÀÌ 0.000ÀÎ º¯ÇüÀº Àý´ë ¼±ÅõÇÁö ¾ÊÀ½À» ÁÖÀÇÇ϶ó. 'qs' °ªÀÌ ¾ø´Â º¯ÇüÀº 1.0À¸·Î Ãë±ÞµÈ´Ù. qs °ªÀº Ŭ¶óÀ̾ðÆ®ÀÇ ´É·Â°ú´Â °ü°è¾øÀÌ ´Ù¸¥ º¯Çüµé°ú ºñ±³ÇÏ¿© ±× º¯ÇüÀÇ »ó´ëÀûÀÎ 'Ç°Áú'À» ³ªÅ¸³½´Ù. ¿¹¸¦ µé¾î, »çÁøÀ» ³ªÅ¸³»·Á´Â °æ¿ì JPEG ÆÄÀÏÀÌ ASCII ÆÄÀϺ¸´Ù´Â Ç×»ó ³ôÀº Ç°ÁúÀ» °¡Áø´Ù. ±×·¯³ª ÀÚ¿øÀÌ ¿ø·¡ ASCII art¿´´Ù¸é ASCII Ç¥ÇöÀÌ JPEG Ç¥Çöº¸´Ù ´õ ³ôÀº Ç°ÁúÀ» °¡Áú ¼ö ÀÖ´Ù. ±×·¯¹Ç·Î ¾î¶² º¯ÇüÀÇ qs °ªÀº Ç¥ÇöÇÏ·Á´Â ÀÚ¿øÀÇ ¼ºÁú¿¡ µû¶ó ´Ù¸£´Ù.</p> <p>Áö¿øÇÏ´Â ¸ðµç Çì´õ ¸ñ·ÏÀº <a href="mod/mod_negotiation.html#typemaps">mod_negotation typemap</a> ¹®¼¸¦ Âü°íÇ϶ó.</p> <h3><a name="multiviews" id="multiviews">Multiviews</a></h3> <p><code>MultiViews</code>´Â µð·ºÅ丮º° ¿É¼ÇÀ̹ǷÎ, <code>httpd.conf</code>ÀÇ <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>, <code class="directive"><a href="./mod/core.html#location"><Location></a></code>, <code class="directive"><a href="./mod/core.html#files"><Files></a></code> ¼½¼Ç ȤÀº (<code class="directive"><a href="./mod/core.html#allowoverride">AllowOverride</a></code>°¡ ÀûÀýÈ÷ ¼³Á¤µÇ¾ú´Ù¸é) <code>.htaccess</code> ÆÄÀÏÀÇ <code class="directive"><a href="./mod/core.html#options">Options</a></code> Áö½Ã¾î¿¡ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. <code>Options All</code>Àº <code>MultiViews</code>¸¦ Æ÷ÇÔÇÏÁö¾ÊÀ½À» ÁÖÀÇÇ϶ó. µû·Î Á÷Á¢ ½áÁà¾ß ÇÑ´Ù.</p> <p><code>MultiViews</code>¸¦ »ç¿ëÇÏ¸é ´ÙÀ½°ú °°Àº ÀÏÀÌ ÀϾÙ: ¼¹ö°¡ <code>/some/dir/foo</code>¿¡ ´ëÇÑ ¿äûÀ» ¹Þ°í <code>/some/dir/foo</code>¿¡ <code>MultiViews</code>°¡ µ¿ÀÛÇϸç <code>/some/dir/foo</code>°¡ Á¸ÀçÇÏÁö <em>¾ÊÀ»</em> °æ¿ì, ¼¹ö´Â µð·ºÅ丮¿¡¼ À̸§ÀÌ foo.*ÀÎ ÆÄÀϵéÀ» ¸ðµç Æ÷ÇÔÇÏ´Â °¡»óÀÇ type mapÀ» ¸¸µç´Ù. Ŭ¶óÀ̾ðÆ®°¡ ¿äûÇÑ media type°ú content-encodingÀ» °¡Áö°í ÀÌÁß¿¡ °¡Àå ÀûÇÕÇÑ °ÍÀ» ¼±ÅÃÇÑ´Ù.</p> <p><code>MultiViews</code>´Â ¼¹ö°¡ µð·ºÅ丮¸¦ ÂüÁ¶ÇÒ¶§ ÆÄÀÏÀ» ã´Â <code class="directive"><a href="./mod/mod_dir.html#directoryindex">DirectoryIndex</a></code> Áö½Ã¾î¿¡µµ Àû¿ëµÈ´Ù. ¼³Á¤ÆÄÀÏÀÌ ´ÙÀ½°ú °°´Ù¸é,</p> <div class="example"><p><code>DirectoryIndex index</code></p></div> <p><code>index.html</code>°ú <code>index.html3</code>ÀÌ ¸ðµÎ ÀÖ´Ù¸é ¼¹ö´Â ÀÌµÑ Áß¿¡ Çϳª¸¦ °áÁ¤ÇÑ´Ù. µÑ ¸ðµÎ ¾ø°í <code>index.cgi</code>°¡ ÀÖ´Ù¸é, ¼¹ö´Â ±×°ÍÀ» ½ÇÇàÇÑ´Ù.</p> <p>µð·ºÅ丮¸¦ ÀÐÀ»¶§ ÆÄÀÏÁß Çϳª°¡ Charset, Content-Type, Language, Encoding¸¦ ÆÇ´ÜÇÏ´Â <code>mod_mime</code>ÀÌ ¸ð¸£´Â È®ÀåÀÚ¸¦ °¡Áø´Ù¸é, °á°ú´Â <code class="directive"><a href="./mod/mod_mime.html#multiviewsmatch">MultiViewsMatch</a></code> Áö½Ã¾î ¼³Á¤¿¡ ´Þ·Ç´Ù. ÀÌ Áö½Ã¾î´Â Çڵ鷯, ÇÊÅÍ, ´Ù¸¥ È®ÀåÇüµéÀÌ MultiViews Çù»ó¿¡ Âü¿©ÇÒÁö ¿©ºÎ¸¦ °áÁ¤ÇÑ´Ù.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> <div class="section"> <h2><a name="methods" id="methods">Çù»ó¹æ¹ý</a></h2> <p>¾ÆÆÄÄ¡°¡ type-map ÆÄÀÏÀ̳ª µð·ºÅ丮¿¡ ÀÖ´Â ÆÄÀϸíµé·Î ÁÖ¾îÁø ÀÚ¿ø¿¡ ´ëÇÑ º¯Çü ¸ñ·ÏÀ» ¾ò°ÔµÇ¸é 'ÃÖÀûÀÇ' º¯ÇüÀ» °áÁ¤ÇϱâÀ§ÇØ µÎ ¹æ¹ýÁß Çϳª¸¦ »ç¿ëÇÑ´Ù. ¾ÆÆÄÄ¡ ³»¿ëÇù»ó ±â´ÉÀ» »ç¿ëÇϱâÀ§ÇØ Á¤È®È÷ Çù»óÀÌ ¾î¶»°Ô ÀϾ´ÂÁö ÀÚ¼¼È÷ ¾Ë ÇÊ¿ä´Â ¾ø´Ù. ±×·¯³ª ±Ã±ÝÇÑ »ç¶÷À» À§ÇØ ÀÌ ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.</p> <p>µÎ°¡Áö Çù»ó¹æ¹ýÀÌ ÀÖ´Ù:</p> <ol> <li><strong>¾ÆÆÄÄ¡ ¾Ë°í¸®ÁòÀ» »ç¿ëÇÏ¿© ¼¹ö°¡ ÁÖµµÇÏ´Â Çù»ó</strong>Àº ÀϹÝÀûÀÎ °æ¿ì¿¡ »ç¿ëÇÑ´Ù. ¾ÆÆÄÄ¡ ¾Ë°í¸®ÁòÀº ¾Æ·¡¼ ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù. ÀÌ ¾Ë°í¸®ÁòÀ» »ç¿ëÇÏ¸é ¾ÆÆÄÄ¡´Â ´õ ³ªÀº °á°ú¸¦ ¾ò±âÀ§ÇØ Á¾Á¾ ƯÁ¤ ¹üÀ§ÀÇ Ç°Áú°è¼ö(quality factor)¸¦ 'Á¶ÀÛÇÑ´Ù'. ¾ÆÆÄÄ¡°¡ Ç°Áú°è¼ö¸¦ Á¶ÀÛÇÏ´Â ¹æ¹ýÀº ¾Æ·¡¼ ÀÚ¼¼È÷ ¼³¸íÇÑ´Ù.</li> <li><strong>ÀÚ¿¬½º·¯¿î(Transparent) ³»¿ëÇù»ó</strong>Àº ºê¶ó¿ìÀú°¡ RFC 2295¿¡ Á¤ÀÇµÈ ¹æ¹ýÀ¸·Î ¿äûÇÒ °æ¿ì¿¡¸¸ »ç¿ëÇÑ´Ù. ÀÌ Çù»ó¹æ¹ýÀº 'ÃÖÀûÀÇ' º¯ÇüÀ» °áÁ¤ÇÒ ±ÇÇÑÀ» ºê¶ó¿ìÀú¿¡°Ô ºÎ¿©ÇÑ´Ù. ±×·¡¼ °á°ú´Â ºê¶ó¿ìÀúÀÇ ¾Ë°í¸®Áò¿¡ ´Þ·È´Ù. ÀÚ¿¬½º·¯¿î Çù»ó°úÁ¤Áß¿¡ ºê¶ó¿ìÀú´Â ¾ÆÆÄÄ¡¿¡°Ô RFC 2296¿¡ Á¤ÀÇµÈ '¿ø°Ý º¯Çü¼±Åà ¾Ë°í¸®Áò(remote variant selection algorithm)'À» ¿äûÇÒ ¼ö ÀÖ´Ù.</li> </ol> <h3><a name="dimensions" id="dimensions">Çù»óÀÇ ¹üÀ§</a></h3> <table> <tr valign="top"> <th>¹üÀ§</th> <th>¼³¸í</th> </tr> <tr valign="top"> <td>Media Type</td> <td>ºê¶ó¿ìÀú´Â <code>Accept</code> Çì´õ·Î ¼±È£¸¦ ³ªÅ¸³½´Ù. °¢ Ç׸ñÀº Ç°Áú°è¼ö¸¦ °¡Áú ¼ö ÀÖ´Ù. º¯ÇüÀÇ ¼³¸íµµ Ç°Áú°è¼ö¸¦ ("qs" ÆĶó¹ÌÅÍ) °¡Áú ¼ö ÀÖ´Ù.</td> </tr> <tr valign="top"> <td>Language</td> <td>ºê¶ó¿ìÀú´Â <code>Accept-Language</code> Çì´õ·Î ¼±È£¸¦ ³ªÅ¸³½´Ù. °¢ Ç׸ñÀº Ç°Áú°è¼ö¸¦ °¡Áú ¼ö ÀÖ´Ù. º¯ÇüÀº ¿©·¯ ¾ð¾î¸¦ °¡Áú (ȤÀº ¾Æ¹« ¾ð¾îµµ ¾øÀ») ¼ö ÀÖ´Ù.</td> </tr> <tr valign="top"> <td>Encoding</td> <td>ºê¶ó¿ìÀú´Â <code>Accept-Encoding</code> Çì´õ·Î ¼±È£¸¦ ³ªÅ¸³½´Ù. °¢ Ç׸ñÀº Ç°Áú°è¼ö¸¦ °¡Áú ¼ö ÀÖ´Ù.</td> </tr> <tr valign="top"> <td>Charset</td> <td>ºê¶ó¿ìÀú´Â <code>Accept-Charset</code> Çì´õ·Î ¼±È£¸¦ ³ªÅ¸³½´Ù. °¢ Ç׸ñÀº Ç°Áú°è¼ö¸¦ °¡Áú ¼ö ÀÖ´Ù. º¯ÇüÀº media typeÀÇ ÆĶó¹ÌÅÍ·Î ¹®ÀÚÁýÇÕÀ» ³ªÅ¸³¾ ¼ö ÀÖ´Ù.</td> </tr> </table> <h3><a name="algorithm" id="algorithm">¾ÆÆÄÄ¡ Çù»ó ¾Ë°í¸®Áò</a></h3> <p>¾ÆÆÄÄ¡´Â ºê¶ó¿ìÀú¿¡°Ô º¸³¾ 'ÃÖÀûÀÇ' º¯ÇüÀ» (ÀÖ´Ù¸é) ¼±ÅÃÇϱâÀ§ÇØ ¾Æ·¡ ¾Ë°í¸®ÁòÀ» »ç¿ëÇÑ´Ù. ÀÌ ¾Ë°í¸®ÁòÀº º¯°æÇÒ ¼ö ¾ø´Ù. ´ÙÀ½¿Í °°ÀÌ µ¿ÀÛÇÑ´Ù:</p> <ol> <li>¸ÕÀú, Çù»óÀÇ °¢ ¹üÀ§¿¡ ´ëÇØ ÇØ´çÇÏ´Â <em>Accept*</em> Çì´õ¸¦ °Ë»çÇÏ°í, °¢ º¯Çü¿¡ Ç°Áú°ªÀ» ¸Å±ä´Ù. ¾î¶² ¹üÀ§ÀÇ <em>Accept*</em> Çì´õ°¡ ¹Þ¾ÆµéÀÌÁö ¾Ê´Â º¯ÇüÀº Èĺ¸¿¡¼ Á¦¿ÜÇÑ´Ù. ¾î¶² º¯Çüµµ ³²Áö¾ÊÀ¸¸é 4 ´Ü°è·Î °£´Ù.</li> <li> Èĺ¸¿¡¼ Çϳª¾¿ Á¦¿ÜÇÏ¿© 'ÃÖÀûÀÇ' º¯ÇüÀ» ã´Â´Ù. ´ÙÀ½ °¢ °Ë»ç´Â ¼ø¼´ë·Î ÀϾÙ. °¢ °Ë»ç¿¡¼ ¼±ÅõÇÁö¾ÊÀº º¯ÇüÀº Á¦¿ÜµÈ´Ù. °¢ °Ë»çÈÄ ÇÑ º¯Çü¸¸ ³²À¸¸é À̸¦ ÃÖÀûÀÇ º¯ÇüÀ¸·Î ¼±ÅÃÇÏ°í 3 ´Ü°è·Î °£´Ù. ¿©·¯ º¯ÇüÀÌ ³²À¸¸é ´ÙÀ½ °Ë»ç¸¦ ÁøÇàÇÑ´Ù. <ol> <li><code>Accept</code> Çì´õÀÇ Ç°Áú°è¼ö¿Í º¯ÇüÀÇ media type¿¡ ´ëÇÑ Ç°Áú°ªÀ» °öÇÏ¿© °¡Àå ³ôÀº °ªÀ» °¡Áø º¯ÇüÀ» ¼±ÅÃÇÑ´Ù.</li> <li>°¡Àå ³ôÀº ¾ð¾î(language) Ç°Áú°è¼ö¸¦ °¡Áø º¯ÇüÀ» ¼±ÅÃÇÑ´Ù.</li> <li><code>Accept-Language</code> Çì´õ¿¡ (ÀÖ´Ù¸é) ³ª¿Â ¾ð¾îÀÇ ¼ø¼ ȤÀº <code>LanguagePriority</code> Áö½Ã¾î¿¡ (ÀÖ´Ù¸é) ³ª¿Â ¾ð¾îÀÇ ¼ø¼¸¦ °¡Áö°í °¡Àå ÀûÇÕÇÑ ¾ð¾î¸¦ °¡Áø º¯ÇüÀ» ¼±ÅÃÇÑ´Ù.</li> <li>°¡Àå ³ôÀº (text/html media typeÀÇ ¹öÀüÀ» ³ªÅ¸³»´Â) 'level' media ÆĶó¹ÌÅ͸¦ °¡Áø º¯ÇüÀ» ¼±ÅÃÇÑ´Ù.</li> <li><code>Accept-Charset</code> Çì´õ¸¦ °¡Áö°í °¡Àå ÀûÇÕÇÑ charset media ÆĶó¹ÌÅ͸¦ °¡Áø º¯ÇüÀ» ã´Â´Ù. Çì´õ°¡ ¾ø´Ù¸é ISO-8859-1 ¹®ÀÚÁýÇÕÀ» °¡Àå ¼±È£ÇÑ´Ù. <code>text/*</code> media typeÀ» °¡ÁöÁö¸¸ ¸í½ÃÀûÀ¸·Î ƯÁ¤ ¹®ÀÚÁýÇÕ°ú ¿¬°áµÇÁö¾ÊÀº º¯ÇüÀº ISO-8859-1·Î °¡Á¤ÇÑ´Ù.</li> <li>ISO-8859-1ÀÌ <em>¾Æ´Ñ</em> charset media ÆĶó¹ÌÅ͸¦ °¡Áø º¯ÇüµéÀ» ¼±ÅÃÇÑ´Ù. ±×·± º¯ÇüÀÌ ¾ø´Ù¸é, ´ë½Å ¸ðµç º¯ÇüÀ» ¼±ÅÃÇÑ´Ù.</li> <li>°¡Àå ÀûÇÕÇÑ ÀÎÄÚµùÀ» °¡Áø º¯ÇüÀ» ¼±ÅÃÇÑ´Ù. user-agent¿¡ ÀûÇÕÇÑ ÀÎÄÚµùÀ» °¡Áø º¯ÇüÀÌ ÀÖ´Ù¸é ±× º¯Çü¸¸À» ¼±ÅÃÇÑ´Ù. ±×·¸Áö¾Ê°í ÀÎÄÚµùµÈ º¯Çü°ú ÀÎÄÚµù¾ÈµÈ º¯ÇüÀÌ °°ÀÌ ÀÖ´Ù¸é ÀÎÄÚµù¾ÈµÊ º¯Çü¸¸À» ¼±ÅÃÇÑ´Ù. º¯ÇüÀÌ ¸ðµÎ ÀÎÄÚµùµÇ¾ú°Å³ª ¸ðµÎ ÀÎÄÚµù¾ÈµÈ °æ¿ì ¸ðµç º¯ÇüÀ» ¼±ÅÃÇÑ´Ù.</li> <li>content length°¡ °¡Àå ÀûÀº º¯ÇüÀ» ¼±ÅÃÇÑ´Ù.</li> <li>³²Àº °ÍÁß Ã¹¹øÀç º¯ÇüÀ» ¼±ÅÃÇÑ´Ù. ÀÌ´Â type-map ÆÄÀÏÀÇ ¾Õ¿¡ ³ª¿Ô°Å³ª, µð·ºÅ丮¿¡¼ º¯ÇüÀ» ÀÐÀº °æ¿ì ÆÄÀϸíÀ» ASCII ÄÚµå ¼ø¼·Î ÇÏ¿© ¾Õ¿¡ ³ª¿À´Â °ÍÀÌ´Ù.</li> </ol> </li> <li>ÀÌÁ¦ ¾Ë°í¸®ÁòÀÌ 'ÃÖÀûÀÇ' º¯ÇüÀ» ¼±ÅÃÇß´Ù. ÀÌ°ÍÀ» ÀÀ´äÀ¸·Î º¸³½´Ù. HTTP ÀÀ´ä Çì´õ <code>Vary</code>´Â Çù»óÀÇ ¹üÀ§¸¦ ³ªÅ¸³»°Ô µÈ´Ù. (ºê¶ó¿ìÀú¿Í ij½¬´Â ÀÚ¿øÀ» ij½¬ÇÒ¶§ ÀÌ Á¤º¸¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.) ³¡.</li> <li>ÀÌ ´Ü°è¿¡ µµ´ÞÇß´Ù¸é (¸ðµÎ ºê¶ó¿ìÀú°¡ ¹ÞÁö¸øÇϱ⠶§¹®¿¡) ¾î¶² º¯Çüµµ ¼±ÅÃÀÌ ¾ÈµÈ °æ¿ì´Ù. ("No acceptable representation"¸¦ ¶æÇÏ´Â) »óÅ 406°ú ³»¿ëÀ¸·Î »ç¿ë°¡´ÉÇÑ º¯ÇüÀÇ ¸ñ·ÏÀ» ´ãÀº HTML ¹®¼¸¦ ÀÀ´äÀ» º¸³½´Ù. ¶Ç, HTML <code>Vary</code> Çì´õ´Â º¯ÇüÀÇ ¹üÀ§¸¦ ³ªÅ¸³½´Ù.</li> </ol> </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> <div class="section"> <h2><a name="better" id="better">Ç°Áú°è¼ö Á¶ÀÛÇϱâ</a></h2> <p>¾ÆÆÄÄ¡´Â Á¾Á¾ À§ÀÇ ¾ÆÆÄÄ¡ Çù»ó ¾Ë°í¸®ÁòÀ» ¾ö°ÝÈ÷ ÁöÅ°Áö¾Ê°í Ç°Áú°è¼ö¸¦ º¯°æÇÑ´Ù. ÀÌÀ¯´Â ¿ÏÀüÇÏ°í Á¤È®ÇÑ Á¤º¸¸¦ º¸³»Áö¾Ê´Â ºê¶ó¿ìÀú¿¡°Ô (¾Ë°í¸®ÁòÀÇ) ´õ ³ªÀº °á°ú¸¦ º¸³»±â À§Çؼ´Ù. ³Î¸® ¾²ÀÌ´Â ºê¶ó¿ìÀúÁß ÀϺδ ÀÚÁÖ À߸øµÈ º¯ÇüÀ» ¼±ÅÃÇϵµ·Ï <code>Accept</code> Çì´õ¸¦ º¸³½´Ù. ºê¶ó¿ìÀú°¡ ¿ÏÀüÇÏ°í ¿Ã¹Ù¸¥ Á¤º¸¸¦ º¸³½´Ù¸é, Á¶ÀÛÀ» ÇÏÁö¾Ê´Â´Ù.</p> <h3><a name="wildcards" id="wildcards">Media Type°ú ¿ÍÀϵåÄ«µå</a></h3> <p><code>Accept:</code> ¿äû Çì´õ´Â media type¿¡ ´ëÇÑ ¼±È£¸¦ ³ªÅ¸³½´Ù. ¶Ç, *´Â ¾î¶² ¹®ÀÚ¿ÀÌ¶óµµ °¡´ÉÇϱ⶧¹®¿¡ "image/*"³ª "*/*" °°ÀÌ '¿ÍÀϵåÄ«µå' media typeÀ» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ±×·¡¼ ´ÙÀ½°ú °°Àº ¿äûÀº:</p> <div class="example"><p><code>Accept: image/*, */*</code></p></div> <p>"image/"·Î ½ÃÀÛÇÏ´Â ¾î¶² type°ú ´Ù¸¥ ¾î¶² typeµµ °¡´ÉÇÔÀ» ÀǹÌÇÑ´Ù. ¾î¶² ºê¶ó¿ìÀú´Â ÀÚ½ÅÀÌ ½ÇÁ¦·Î ´Ù·ê ¼ö ÀÖ´Â type¿¡ Ãß°¡·Î ¿ÍÀϵåÄ«µå¸¦ º¸³½´Ù. ¿¹¸¦ µé¸é:</p> <div class="example"><p><code> Accept: text/html, text/plain, image/gif, image/jpeg, */* </code></p></div> <p>ÀÌÀ¯´Â Á÷Á¢ ¿°ÅÇÑ typeÀ» ¼±È£ÇÏÁö¸¸ ´Ù¸¥ Ç¥ÇöÀÌ ÀÖ´Ù¸é ±×°Íµµ ±¦ÂúÀ½À» ³ªÅ¸³»±â À§Çؼ´Ù. ºê¶ó¿ìÀú°¡ ½ÇÁ¦·Î ¿øÇÑ °ÍÀº ´ÙÀ½°ú °°ÀÌ ¸í½ÃÀûÀ¸·Î Ç°Áú°ªÀ» »ç¿ëÇÑ °ÍÀÌ´Ù.</p> <div class="example"><p><code> Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01 </code></p></div> <p>Á÷Á¢ ¿°ÅÇÑ typeÀº Ç°Áú°è¼ö°¡ ¾ø¾î¼ ±âº»°ªÀÎ (°¡Àå ³ôÀº) 1.0À» °¡Áø´Ù. ¿ÍÀϵåÄ«µå */*´Â ³·Àº ¼±È£µµ 0.01À» °¡Áö¹Ç·Î Á÷Á¢ ¿°ÅÇÑ type¿¡ ¸Â´Â º¯ÇüÀÌ ¾ø´Â °æ¿ì¿¡¸¸ ´Ù¸¥ typeµéÀÌ »ç¿ëµÈ´Ù.</p> <p><code>Accept:</code> Çì´õ¿¡ q °è¼ö°¡ ÀüÇô <em>¾ø°í</em> "*/*"°¡ ÀÖ´Ù¸é, ¾ÆÆÄÄ¡´Â ¹Ù¶÷Á÷ÇÑ ÇൿÀ» À§ÇØ q °ªÀ¸·Î 0.01À» ÁöÁ¤ÇÑ´Ù. ¶Ç, "type/*" ÇüÅÂÀÇ ¿ÍÀϵåÄ«µå¿¡´Â ("*/*"º¸´Ù´Â ´õ ¼±È£Çϵµ·Ï) 0.02¸¦ ÁöÁ¤ÇÑ´Ù. <code>Accept:</code> Çì´õ¿¡¼ q °è¼ö¸¦ °¡Áö´Â media typeÀÌ ÀÖ´Ù¸é ÀÌ·± Ưº°ÇÑ °ªÀ» Ãß°¡ÇÏÁö <em>¾Ê´Â´Ù</em>. ±×·¡¼ ¸í½ÃÀûÀÎ Á¤º¸¸¦ º¸³»´Â ºê¶ó¿ìÀúÀÇ ¿äûÀº ¿äûÇѵ¥·Î ó¸®ÇÑ´Ù.</p> <h3><a name="exceptions" id="exceptions">¾ð¾î(language) Çù»óÀÇ ¿¹¿Ü</a></h3> <p>¾ÆÆÄÄ¡ 2.0Àº ¾ð¾î Çù»óÀÌ ½ÇÆÐÇÑ °æ¿ì ºÎµå·´°Ô º¹±¸ÇϱâÀ§ÇØ Çù»ó ¾Ë°í¸®Áò¿¡ »õ·Î ¿¹¿Ü¸¦ ¸î°³ Ãß°¡Çß´Ù.</p> <p>Ŭ¶óÀ̾ðÆ®°¡ ¼¹ö¿¡ ÆäÀÌÁö¸¦ ¿äûÇßÀ»¶§ ¼¹ö°¡ ºê¶ó¿ìÀú°¡ º¸³½ <code>Accept-language</code>¿¡ ¸Â´Â ÆäÀÌÁö¸¦ ´Ü ÇÑ°³¸¸ ãÀ¸¸é ¹®Á¦°¡ ¾øÁö¸¸, ±×·¯Áö ¾ÊÀº °æ¿ì ¼¹ö´Â Ŭ¶óÀ̾ðÆ®¿¡°Ô "No Acceptable Variant"³ª "Multiple Choices" ÀÀ´äÀ» º¸³½´Ù. ÀÌ·± ¿À·ù¹®À» ÇÇÇϱâÀ§ÇØ ÀÌ °æ¿ì <code>Accept-language</code>¸¦ ¹«½ÃÇÏ°í Ŭ¶óÀ̾ðÆ®ÀÇ ¿äû¿¡ ¸íÈ®È÷ ¸ÂÁö´Â ¾ÊÁö¸¸ ¹®¼¸¦ º¸³»µµ·Ï ¾ÆÆÄÄ¡¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. <code class="directive"><a href="./mod/mod_negotiation.html#forcelanguagepriority">ForceLanguagePriority</a></code> Áö½Ã¾î´Â ¼¹ö°¡ ÀÌ·± ¿À·ù¹®Áß Çϳª ȤÀº µÑ´Ù¸¦ ¹«½ÃÇÏ°í <code class="directive"><a href="./mod/mod_negotiation.html#languagepriority">LanguagePriority</a></code> Áö½Ã¾î·Î ÆÇ´ÜÇϵµ·Ï ÇÑ´Ù.</p> <p>¶Ç, ¼¹ö´Â ¸Â´Â ¾ð¾î¸¦ ¸øãÀº °æ¿ì ºÎ¸ð¾ð¾î¸¦ ãÀ» ¼öµµ ÀÖ´Ù. ¿¹¸¦ µé¾î Ŭ¶óÀ̾ðÆ®°¡ ¿µ±¹¿µ¾î¸¦ ¶æÇÏ´Â <code>en-GB</code> ¾ð¾î·Î ¹®¼¸¦ ¿äûÇÑ °æ¿ì, HTTP/1.1 Ç¥ÁØ¿¡ µû¸£¸é ¼¹ö´Â <code>en</code>À¸·Î¸¸ Ç¥½ÃµÈ ¹®¼¸¦ ÀϹÝÀûÀ¸·Î ¼±ÅÃÇÏÁö ¸øÇÑ´Ù. (±×·¡¼ ¿µ±¹¿µ¾î¸¦ ÀÌÇØÇÏ´Â µ¶ÀÚ°¡ ÀϹÝÀûÀÎ ¿µ¾îµµ ÀÌÇØÇÒ ¼ö ÀÖÀ¸¹Ç·Î <code>Accept-Language</code> Çì´õ¿¡ <code>en-GB</code>¸¸ Æ÷ÇÔÇÏ°í <code>en</code>À» Æ÷ÇÔÇÏÁö¾ÊÀ¸¸é °ÅÀÇ È®½ÇÈ÷ À߸øµÈ ¼³Á¤ÀÓÀ» À¯ÀÇÇ϶ó. ºÒÇàÈ÷µµ ÇöÀç ¸¹Àº Ŭ¶óÀ̾ðÆ®µéÀº ÀÌ·± ½ÄÀ¸·Î ±âº»¼³Á¤µÇÀÖ´Ù.) ´Ù¸¥ ¾ð¾î¸¦ ãÁö ¸øÇÏ¿© ¼¹ö°¡ "No Acceptable Variants" ¿À·ù¸¦ º¸³»°Å³ª <code class="directive"><a href="./mod/mod_negotiation.html#languagepriority">LanguagePriority</a></code>·Î µ¹¾Æ°¡¾ß ÇÑ´Ù¸é, ¼¹ö´Â ÇÏÀ§¾ð¾î ±Ô¾àÀ» ¹«½ÃÇÏ°í <code>en-GB</code>¸¦ <code>en</code> ¹®¼¿¡ ´ëÀÀÇÑ´Ù. ¾Ï¹¬ÀûÀ¸·Î ¾ÆÆÄÄ¡´Â ºÎ¸ð¾ð¾î¸¦ ¸Å¿ì ³·Àº Ç°Áú°ªÀ¸·Î Ŭ¶óÀ̾ðÆ®ÀÇ Çã¿ë¾ð¾î ¸ñ·Ï¿¡ Ãß°¡ÇÑ´Ù. ±×·¯³ª Ŭ¶óÀ̾ðÆ®°¡ "en-GB; q=0.9, fr; q=0.8"À» ¿äûÇÏ°í ¼¹ö¿¡ "en"°ú "fr" ¹®¼°¡ ÀÖ´Ù¸é, "fr" ¹®¼°¡ ¼±ÅõÊÀ» ÁÖÀÇÇ϶ó. ÀÌ´Â HTTP/1.1 Ç¥ÁØÀ» ÁöÅ°°í, ¿Ã¹Ù·Î ¼³Á¤µÈ Ŭ¶óÀ̾ðÆ®¿Í È¿À²ÀûÀ¸·Î µ¿ÀÛÇϱâÀ§ÇÔÀÌ´Ù.</p> <p>»ç¿ëÀÚ°¡ ¼±È£ÇÏ´Â ¾ð¾î¸¦ ¾Ë¾Æ³»±âÀ§ÇÑ (ÄíÅ°³ª Ưº°ÇÑ URL-°æ·Î °°Àº) °í±Þ ±â¹ýÀ» Áö¿øÇϱâÀ§ÇØ ¾ÆÆÄÄ¡ 2.0.47ºÎÅÍ <code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code>Àº <code>prefer-language</code>¶ó´Â <a href="env.html">ȯ°æº¯¼ö</a>¸¦ ÀνÄÇÑ´Ù. ÀÌ È¯°æº¯¼ö°¡ Á¸ÀçÇÏ°í ÀûÀýÇÑ ¾ð¾îű׸¦ Æ÷ÇÔÇÑ´Ù¸é, <code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code>Àº ÇØ´çÇÏ´Â º¯ÇüÀ» ¼±ÅÃÇÏ·Á°í ½ÃµµÇÑ´Ù. ±×·± º¯ÇüÀÌ ¾ø´Ù¸é ÀϹÝÀûÀÎ Çù»ó°úÁ¤À» ½ÃÀÛÇÑ´Ù.</p> <div class="example"><h3>¿¹Á¦</h3><p><code> SetEnvIf Cookie "language=(.+)" prefer-language=$1 </code></p></div> </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> <div class="section"> <h2><a name="extensions" id="extensions">ÀÚ¿¬½º·¯¿î(transparent) ³»¿ëÇù»óÀÇ È®Àå</a></h2> <p>¾ÆÆÄÄ¡´Â ´ÙÀ½°ú °°ÀÌ ÀÚ¿¬½º·¯¿î ³»¿ëÈ®Àå ÇÁ·ÎÅäÄÝÀ» (RFC 2295) È®ÀåÇÑ´Ù. º¯Çü ¸ñ·ÏÀÇ »õ·Î¿î <code>{encoding ..}</code>´Â ƯÁ¤ content-encodingÀ» °¡Áø º¯Çü¸¸À» ÁöĪÇÑ´Ù. RVSA/1.0 ¾Ë°í¸®ÁòÀº (RFC 2296) ¸ñ·Ï¿¡¼ ÀÎÄÚµùµÈ º¯ÇüÀ» ÀνÄÇÒ ¼ö ÀÖ°í, ÀÎÄÚµùÀÌ <code>Accept-Encoding</code> ¿äû Çì´õ¿¡ ¸Â´Â °æ¿ì ÀÎÄÚµùµÈ º¯Çüµéµµ È帷Π»ç¿ëÇϵµ·Ï È®ÀåµÇ¾ú´Ù. RVSA/1.0 ±¸ÇöÀº ÃÖÀûÀÇ º¯ÇüÀ» ã±â Àü¿¡ °è»êµÈ Ç°Áú°è¼ö¸¦ ¼Ò¼öÁ¡ 5ÀÚ¸®¿¡¼ ¹Ý¿Ã¸²ÇÏÁö ¾Ê´Â´Ù.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> <div class="section"> <h2><a name="naming" id="naming">ÇÏÀÌÆÛ¸µÅ©¿Í À̸§±ÔÄ¢¿¡ ´ëÇÏ¿©</a></h2> <p>¾ð¾î(language) Çù»óÀ» »ç¿ëÇÑ´Ù¸é ÆÄÀÏÀº ¿©·¯ È®ÀåÀÚ¸¦ °¡Áö°í È®ÀåÀÚÀÇ ¼ø¼´Â º¸Åë °ü°è¾øÀ¸¹Ç·Î ÆÄÀÏ¸í¿¡ ¿©·¯ ´Ù¸¥ À̸§±ÔÄ¢À» »ç¿ëÇÒ ¼ö ÀÖ´Ù. (ÀÚ¼¼ÇÑ ³»¿ëÀº <a href="mod/mod_mime.html#multipleext">mod_mime</a> ¹®¼¸¦ Âü°íÇ϶ó.)</p> <p>ÀüÇüÀûÀÎ ÆÄÀÏÀº MIME-type È®ÀåÀÚ (<em>¿¹¸¦ µé¾î</em>, <code>html</code>), °æ¿ì¿¡ µû¶ó encoding È®ÀåÀÚ (<em>¿¹¸¦ µé¾î</em>, <code>gz</code>), ÆÄÀÏ¿¡ ¿©·¯ ¾ð¾î º¯ÇüÀÌ ÀÖ´Â °æ¿ì ¹°·Ð ¾ð¾î È®ÀåÀÚ¸¦ (<em>¿¹¸¦ µé¾î</em>, <code>en</code>) °¡Áø´Ù.</p> <p>¿¹Á¦:</p> <ul> <li>foo.en.html</li> <li>foo.html.en</li> <li>foo.en.html.gz</li> </ul> <p>´ÙÀ½Àº ¸î¸î ÆÄÀϸí°ú ±× ÆÄÀÏ¿¡ ´ëÇÑ À¯È¿ÇÏ°í À¯È¿ÇÏÁö¾ÊÀº ÇÏÀÌÆÛ¸µÅ©¸¦ º¸ÀδÙ:</p> <table class="bordered"> <tr> <th>ÆÄÀϸí</th> <th>À¯È¿ÇÑ ÇÏÀÌÆÛ¸µÅ©</th> <th>À¯È¿ÇÏÁö¾ÊÀº ÇÏÀÌÆÛ¸µÅ©</th> </tr> <tr> <td><em>foo.html.en</em></td> <td>foo<br /> foo.html</td> <td>-</td> </tr> <tr> <td><em>foo.en.html</em></td> <td>foo</td> <td>foo.html</td> </tr> <tr> <td><em>foo.html.en.gz</em></td> <td>foo<br /> foo.html</td> <td>foo.gz<br /> foo.html.gz</td> </tr> <tr> <td><em>foo.en.html.gz</em></td> <td>foo</td> <td>foo.html<br /> foo.html.gz<br /> foo.gz</td> </tr> <tr> <td><em>foo.gz.html.en</em></td> <td>foo<br /> foo.gz<br /> foo.gz.html</td> <td>foo.html</td> </tr> <tr> <td><em>foo.html.gz.en</em></td> <td>foo<br /> foo.html<br /> foo.html.gz</td> <td>foo.gz</td> </tr> </table> <p>À§ Ç¥¸¦ º¸¸é ÇÏÀÌÆÛ¸µÅ©¿¡ ¾î¶² È®ÀåÀÚµµ ¾ø´Â À̸§À» (<em>¿¹¸¦ µé¾î</em>, <code>foo</code>) Ç×»ó »ç¿ëÇÒ ¼ö ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù. ÀÌ °æ¿ì ÀåÁ¡Àº ¹®¼ÀÇ ½ÇÁ¦ Á¾·ù¸¦ ¼û±æ ¼ö ÀÖ¾î¼, <em>¿¹¸¦ µé¾î</em> ÇÏÀÌ·¯¸µÅ© ÂüÁ¶¸¦ ¼öÁ¤ÇϾʰí <code>html</code> ÆÄÀÏÀ» <code>shtml</code>À̳ª <code>cgi</code>·Î º¯°æÇÒ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù.</p> <p>°è¼Ó ÇÏÀÌÆÛ¸µÅ©¿¡ MIME-typeÀ» (<em>¿¹¸¦ µé¾î</em>, <code>foo.html</code>) »ç¿ëÇÏ°í ½Í´Ù¸é (encoding È®ÀåÀÚ°¡ ÀÖ´Ù¸é À̰͵µ Æ÷ÇÔÇÏ¿©) ¾ð¾î È®ÀåÀÚ¸¦ MIME-type È®ÀåÀÚº¸´Ù ¿À¸¥ÂÊ¿¡ (<em>¿¹¸¦ µé¾î</em>, <code>foo.html.en</code>) µÎ¾î¾ßÇÑ´Ù.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div> <div class="section"> <h2><a name="caching" id="caching">ij½¬¿¡ ´ëÇÏ¿©</a></h2> <p>ij½¬°¡ Ç¥ÇöÀ» ÀúÀåÇϸé Ç¥Çö°ú ¿äû URLÀ» ¿¬°ü½ÃŲ´Ù. ´ÙÀ½¹ø ±× URLÀ» ¿äûÇϸé ij½¬´Â ÀúÀåµÈ Ç¥ÇöÀ» »ç¿ëÇÑ´Ù. ±×·¯³ª ¼¹ö¿Í Çù»óÀÌ °¡´ÉÇÑ ÀÚ¿øÀÎ °æ¿ì ù¹ø° ¿äûÇÑ º¯Çü¸¸ ij½¬µÇ¾î ÀÌÈÄ ¿äûÀº ij½¬µÈ À߸øµÈ ÀÀ´äÀ» ¾òÀ» ¼ö ÀÖ´Ù. À̸¦ ¸·±âÀ§ÇØ ¾ÆÆÄÄ¡´Â º¸Åë ³»¿ëÇù»óÈÄ ¹ÝȯµÇ´Â ¸ðµç ¿äû¿¡ HTTP/1.0 Ŭ¶óÀ̾ðÆ®°¡ ij½¬¸¦ ¸øÇϵµ·Ï Ç¥½Ã¸¦ ÇÑ´Ù. ¶Ç, ¾ÆÆÄÄ¡´Â Çù»óÇÑ ÀÀ´äÀÇ Ä³½¬¸¦ Çã¿ëÇÏ´Â HTTP/1.1 ÇÁ·ÎÅäÄÝÀÇ ±â´ÉÀ» Áö¿øÇÑ´Ù.</p> <p><code class="directive"><a href="./mod/mod_negotiation.html#cachenegotiateddocs">CacheNegotiatedDocs</a></code> Áö½Ã¾î´Â HTTP/1.0 ȣȯ Ŭ¶óÀ̾ðÆ®(ºê¶ó¿ìÀú ȤÀº ij½¬)°¡ º¸³½ ¿äû¿¡ ´ëÇØ Çù»óÇÑ ÀÀ´äÀ» ij½¬ÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ÀÌ Áö½Ã¾î´Â ¼¹ö³ª °¡»óÈ£½ºÆ® ¼³Á¤¿¡ »ç¿ëÇϸç, ¾Æ±Ô¸ÕÆ®¸¦ ¹ÞÁö¾Ê´Â´Ù. ÀÌ Áö½Ã¾î´Â HTTP/1.1 Ŭ¶óÀ̾ðÆ®ÀÇ ¿äû°ú´Â °ü°è°¡ ¾ø´Ù.</p> <p>HTTP/1.1 Ŭ¶óÀ̾ðÆ®¿¡°Ô ¾ÆÆÄÄ¡´Â ÀÀ´äÀÇ Çù»ó ¹üÀ§¸¦ ¾Ë·ÁÁÖ´Â <code>Vary</code> HTTP ÀÀ´äÇì´õ¸¦ º¸³½´Ù. ÀÌ Á¤º¸¸¦ »ç¿ëÇÏ¿© ´ÙÀ½ ¿äûÀ» ij½¬µÈ º¹»çº»À¸·Î ´ëüÇÒ ¼ö ÀÖ´ÂÁö ÆÇ´ÜÇÒ ¼ö ÀÖ´Ù. Çé»óÀÇ ¹üÀ§¿Í °ü°è¾øÀÌ Ä³½¬µÈ º¹»çº»À» ±ÇÇÑ´Ù¸é <code>force-no-vary</code> <a href="env.html#special">ȯ°æº¯¼ö</a>¸¦ ¼³Á¤ÇÑ´Ù.</p> </div></div> <div class="bottomlang"> <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="./en/content-negotiation.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="./fr/content-negotiation.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="./ja/content-negotiation.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | <a href="./ko/content-negotiation.html" title="Korean"> ko </a> | <a href="./tr/content-negotiation.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> </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">Comments</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> <script type="text/javascript"><!--//--><![CDATA[//><!-- var comments_shortname = 'httpd'; var comments_identifier = 'http://httpd.apache.org/docs/2.2/content-negotiation.html'; (function(w, d) { if (w.location.hostname.toLowerCase() == "httpd.apache.org") { d.write('<div id="comments_thread"><\/div>'); var s = d.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); } else { d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); } })(window, document); //--><!]]></script></div><div id="footer"> <p class="apache">Copyright 2017 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> <p class="menu"><a href="./mod/">¸ðµâ</a> | <a href="./mod/directives.html">Áö½Ã¾îµé</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">¿ë¾î</a> | <a href="./sitemap.html">»çÀÌÆ®¸Ê</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- if (typeof(prettyPrint) !== 'undefined') { prettyPrint(); } //--><!]]></script> </body></html>