| <?xml version='1.0' encoding='EUC-KR' ?> |
| <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd"> |
| <?xml-stylesheet type="text/xsl" href="./style/manual.ko.xsl"?> |
| <!-- English Revision: 151408:1673932 (outdated) --> |
| |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <manualpage metafile="content-negotiation.xml.meta"> |
| |
| <title>³»¿ëÇù»ó (Content Negotiation)</title> |
| |
| <summary> |
| |
| <p>¾ÆÆÄÄ¡´Â HTTP/1.1 ±Ô¾à¿¡ ±â¼úµÈ ³»¿ëÇù»ó(content |
| negotiation)À» Áö¿øÇÑ´Ù. ³»¿ëÇù»óÀº media type, ¾ð¾î, ¹®ÀÚÁýÇÕ, |
| ÀÎÄÚµù µî¿¡ ´ëÇØ ºê¶ó¿ìÀú°¡ Á¦°øÇÑ ¼±È£µµ¿¡ µû¶ó ÀÚ¿øÀÇ |
| °¡Àå ÀûÇÕÇÑ Ç¥ÇöÀ» ¼±ÅÃÇÑ´Ù. ¶Ç ºÒ¿ÏÀüÇÑ Çù»ó Á¤º¸¸¦ º¸³»´Â |
| ºê¶ó¿ìÀúÀÇ ¿äûÀ» Áö´ÉÀûÀ¸·Î ó¸®ÇÏ´Â ±â´Éµµ ÀÖ´Ù.</p> |
| |
| <p>±âº»ÀûÀ¸·Î ÄÄÆÄÀϵǴ <module>mod_negotiation</module> |
| ¸ðµâÀÌ ³»¿ëÇù»ó ±â´ÉÀ» Á¦°øÇÑ´Ù.</p> |
| </summary> |
| |
| <section id="about"><title>³»¿ëÇù»ó¿¡ ´ëÇØ</title> |
| |
| <p>ÀÚ¿øÀº ¿©·¯ ´Ù¸¥ Ç¥ÇöÀ» °¡Áú ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, ´Ù¸¥ |
| ¾ð¾î³ª ´Ù¸¥ media type ȤÀº µÑ ¸ðµÎ°¡ ´Ù¸¥ Ç¥ÇöµéÀÌ ÀÖÀ» |
| ¼ö ÀÖ´Ù. °¡Àå Àû´çÇÑ Ç¥ÇöÀ» ¼±ÅÃÇÏ´Â ÇÑ°¡Áö ¹æ¹ýÀº »ç¿ëÀÚ¿¡°Ô |
| ¸ñ·Ï ÆäÀÌÁö¸¦ º¸¿©ÁÖ°í ¼±ÅÃÇÏ°Ô ÇÏ´Â °ÍÀÌ´Ù. ±×·¯³ª ¼¹ö°¡ |
| ÀÚµ¿À¸·Î ¼±ÅÃÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù. ÀÌ´Â ºê¶ó¿ìÀú°¡ ¿äûÀÇ |
| ÀϺηΠ±×µéÀÌ ¼±È£Çϴ ǥÇö¿¡ ´ëÇÑ Á¤º¸¸¦ º¸³»±â¶§¹®¿¡ |
| °¡´ÉÇÏ´Ù. ¿¹¸¦ µé¾î, ºê¶ó¿ìÀú´Â °¡´ÉÇÑÇÑ ºÒ¾î·Î, ±×·¯³ª |
| ¾ø´Ù¸é ¿µ¾î·Î Á¤º¸¸¦ º¸°í½Í´Ù°í ¾Ë·ÁÁÙ ¼ö ÀÖ´Ù. ºê¶ó¿ìÀú´Â |
| ¿äûÀÇ Çì´õ·Î ±×µéÀÇ ±âÈ£¸¦ ³ªÅ¸³½´Ù. ¿ÀÁ÷ ºÒ¾î·ÎµÈ Ç¥Çö¸¸À» |
| ¿äûÇÑ´Ù¸é ºê¶ó¿ìÀú´Â ´ÙÀ½°ú °°ÀÌ º¸³½´Ù.</p> |
| |
| <example>Accept-Language: fr</example> |
| |
| <p>ÀÌ·± ±âÈ£´Â Ç¥ÇöÀÌ ¾ð¾îº°·Î ´Ù¸¦ °æ¿ì¿¡¸¸ °í·ÁµÈ´Ù.</p> |
| |
| <p>´ÙÀ½Àº ´õ º¹ÀâÇÑ ¿äûÀÇ ¿¹·Î ºê¶ó¿ìÀú°¡ ºÒ¾î¿Í ¿µ¾î¸¦ |
| ¹ÞÀ» ¼ö ÀÖÁö¸¸, ºÒ¾î¸¦ ´õ ¼±È£ÇÏ°í, ¿©·¯ media typeÀ» ¹ÞÀ» |
| ¼ö ÀÖÁö¸¸, ÀÏ¹Ý ÅؽºÆ® º¸´Ù´Â HTML, ´Ù¸¥ media type º¸´Ù´Â |
| GIF¿Í JPEGÀ» ¼±È£ÇÑ´Ù°í ¾Ë·ÁÁØ´Ù.</p> |
| |
| <example> |
| 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 |
| </example> |
| |
| <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> |
| </section> |
| |
| <section id="negotiation"><title>¾ÆÆÄÄ¡ÀÇ Çù»ó</title> |
| |
| <p>ÀÚ¿øÀ» Çù»óÇϱâÀ§ÇØ ¼¹ö´Â °¢ º¯Çü¿¡ ´ëÇÑ Á¤º¸°¡ ÇÊ¿äÇÏ´Ù. |
| ´ÙÀ½ µÎ°¡Áö ¹æ¹ýÁß Çϳª·Î Á¤º¸¸¦ ¾ò´Â´Ù:</p> |
| |
| <ul> |
| <li>º¯ÇüÀ» ´ãÀº ÆÄÀϵéÀ» Á÷Á¢ ¿°ÅÇÑ type mapÀ» (<em>¿¹¸¦ |
| µé¾î</em>, <code>*.var</code> ÆÄÀÏ) »ç¿ëÇϰųª,</li> |
| |
| <li>Á÷Á¢ ÁöÁ¤ÇÏÁö¾Ê¾Æµµ ¼¹ö°¡ ÆÄÀÏ¸í¿¡¼ ±ÔÄ¢À» ã¾Æ¼ |
| °á°ú¸¦ ¼±ÅÃÇÏ´Â 'MultiViews'¸¦ »ç¿ëÇÑ´Ù.</li> |
| </ul> |
| |
| <section id="type-map"><title>type-map ÆÄÀÏ »ç¿ëÇϱâ</title> |
| |
| <p>type mapÀº <code>type-map</code>À̶õ Çڵ鷯¿Í ¿¬°áµÈ |
| (ȤÀº ÀÌÀü ¾ÆÆÄÄ¡ ¼³Á¤°ú ȣȯÀ» À§ÇØ MIME typeÀÌ |
| <code>application/x-type-map</code>ÀÎ) ¹®¼´Ù. ÀÌ ±â´ÉÀ» |
| »ç¿ëÇÏ·Á¸é ¼³Á¤¿¡¼ <code>type-map</code> Çڵ鷯¿¡ ´ëÇÑ |
| ÆÄÀÏ È®ÀåÀÚ¸¦ ÁöÁ¤ÇØ¾ß ÇÑ´Ù. ¼¹ö ¼³Á¤ÆÄÀÏ¿¡ ´ÙÀ½°ú °°ÀÌ |
| ¼³Á¤ÇÏ´Â °ÍÀÌ ÁÁ´Ù.</p> |
| |
| <example>AddHandler type-map .var</example> |
| |
| <p>Type map ÆÄÀÏÀº ÇØ´çÇÏ´Â ÀÚ¿ø°ú À̸§ÀÌ °°¾Æ¾ß ÇÏ°í, |
| °¢ º¯Çü¿¡ ´ëÇÑ Ç׸ñÀÌ ÀÖ¾î¾ß ÇÑ´Ù. Ç׸ñÀº ¿©·¯ HTTPÇü½Ä |
| Çì´õ ÁÙ·Î ±¸¼ºµÈ´Ù. º¯Çü¿¡ ´ëÇÑ °¢°¢ÀÇ Ç׸ñµéÀº ºóÁÙ·Î |
| ±¸ºÐÇÑ´Ù. Ç׸ñ¾È¿¡¼ ºóÁÙÀ» »ç¿ëÇÒ ¼ö ¾ø´Ù. (ÀÌ·¸°Ô ÇÒ |
| ÇÊ¿ä°¡ ¾ø°í, À־ ¹«½ÃÇÏÁö¸¸) ¿©·¯ Ç׸ñÀÌ °øÅëÀ¸·Î °¡Áö°í |
| ÀÖ´Â ³»¿ëÀ¸·Î map ÆÄÀÏÀ» ½ÃÀÛÇÏ´Â °ÍÀÌ º¸ÅëÀÌ´Ù. ´ÙÀ½Àº |
| map ÆÄÀÏ ¿¹´Ù. ÀÌ ÆÄÀÏÀÇ À̸§Àº <code>foo.var</code>·Î, |
| <code>foo</code>¶ó´Â ÀÚ¿øÀ» ¼³¸íÇÑ´Ù.</p> |
| |
| <example> |
| 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 /> |
| </example> |
| <p>typemap ÆÄÀÏÀÌ ÆÄÀϸí È®ÀåÀÚ º¸´Ù, ½ÉÁö¾î Multiviews¸¦ |
| »ç¿ëÇÏ¿©µµ, ¿ì¼±±ÇÀ» °¡ÁüÀ» ÁÖÀÇÇ϶ó. º¯ÇüÀÌ ¼·Î ´Ù¸¥ Ç°ÁúÀ» |
| °¡Áø´Ù¸é, ´ÙÀ½°ú °°ÀÌ (JPEG, GIF, ASCII-art¿¡ ÇØ´çÇÏ´Â) |
| media type¿¡ "qs" ÆĶó¹ÌÅÍ·Î Ç°Áú(source quality)À» Ç¥½ÃÇÒ |
| ¼ö ÀÖ´Ù:</p> |
| |
| <example> |
| 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 /> |
| </example> |
| |
| <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> |
| </section> |
| |
| <section id="multiviews"><title>Multiviews</title> |
| |
| <p><code>MultiViews</code>´Â µð·ºÅ丮º° ¿É¼ÇÀ̹ǷÎ, |
| <code>httpd.conf</code>ÀÇ |
| <directive module="core" type="section">Directory</directive>, |
| <directive module="core" type="section">Location</directive>, |
| <directive module="core" type="section">Files</directive> |
| ¼½¼Ç ȤÀº (<directive module="core">AllowOverride</directive>°¡ |
| ÀûÀýÈ÷ ¼³Á¤µÇ¾ú´Ù¸é) <code>.htaccess</code> ÆÄÀÏÀÇ |
| <directive module="core">Options</directive> Áö½Ã¾î¿¡ ¼³Á¤ÇÒ |
| ¼ö ÀÖ´Ù. <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>´Â ¼¹ö°¡ µð·ºÅ丮¸¦ ÂüÁ¶ÇÒ¶§ |
| ÆÄÀÏÀ» ã´Â <directive |
| module="mod_dir">DirectoryIndex</directive> Áö½Ã¾î¿¡µµ |
| Àû¿ëµÈ´Ù. ¼³Á¤ÆÄÀÏÀÌ ´ÙÀ½°ú °°´Ù¸é,</p> |
| <example>DirectoryIndex index</example> |
| <p><code>index.html</code>°ú <code>index.html3</code>ÀÌ |
| ¸ðµÎ ÀÖ´Ù¸é ¼¹ö´Â ÀÌµÑ Áß¿¡ Çϳª¸¦ °áÁ¤ÇÑ´Ù. µÑ ¸ðµÎ ¾ø°í |
| <code>index.cgi</code>°¡ ÀÖ´Ù¸é, ¼¹ö´Â ±×°ÍÀ» ½ÇÇàÇÑ´Ù.</p> |
| |
| <p>µð·ºÅ丮¸¦ ÀÐÀ»¶§ ÆÄÀÏÁß Çϳª°¡ Charset, Content-Type, |
| Language, Encoding¸¦ ÆÇ´ÜÇÏ´Â <code>mod_mime</code>ÀÌ ¸ð¸£´Â |
| È®ÀåÀÚ¸¦ °¡Áø´Ù¸é, °á°ú´Â <directive |
| module="mod_mime">MultiViewsMatch</directive> Áö½Ã¾î ¼³Á¤¿¡ |
| ´Þ·Ç´Ù. ÀÌ Áö½Ã¾î´Â Çڵ鷯, ÇÊÅÍ, ´Ù¸¥ È®ÀåÇüµéÀÌ MultiViews |
| Çù»ó¿¡ Âü¿©ÇÒÁö ¿©ºÎ¸¦ °áÁ¤ÇÑ´Ù.</p> |
| </section> |
| </section> |
| |
| <section id="methods"><title>Çù»ó¹æ¹ý</title> |
| |
| <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> |
| |
| <section id="dimensions"><title>Çù»óÀÇ ¹üÀ§</title> |
| |
| <table> |
| <columnspec><column width=".15"/><column width=".85"/></columnspec> |
| <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> |
| </section> |
| |
| <section id="algorithm"><title>¾ÆÆÄÄ¡ Çù»ó ¾Ë°í¸®Áò</title> |
| |
| <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> |
| </section> |
| </section> |
| |
| <section id="better"><title>Ç°Áú°è¼ö Á¶ÀÛÇϱâ</title> |
| |
| <p>¾ÆÆÄÄ¡´Â Á¾Á¾ À§ÀÇ ¾ÆÆÄÄ¡ Çù»ó ¾Ë°í¸®ÁòÀ» ¾ö°ÝÈ÷ ÁöÅ°Áö¾Ê°í |
| Ç°Áú°è¼ö¸¦ º¯°æÇÑ´Ù. ÀÌÀ¯´Â ¿ÏÀüÇÏ°í Á¤È®ÇÑ Á¤º¸¸¦ º¸³»Áö¾Ê´Â |
| ºê¶ó¿ìÀú¿¡°Ô (¾Ë°í¸®ÁòÀÇ) ´õ ³ªÀº °á°ú¸¦ º¸³»±â À§Çؼ´Ù. |
| ³Î¸® ¾²ÀÌ´Â ºê¶ó¿ìÀúÁß ÀϺδ ÀÚÁÖ À߸øµÈ º¯ÇüÀ» ¼±ÅÃÇϵµ·Ï |
| <code>Accept</code> Çì´õ¸¦ º¸³½´Ù. ºê¶ó¿ìÀú°¡ ¿ÏÀüÇÏ°í ¿Ã¹Ù¸¥ |
| Á¤º¸¸¦ º¸³½´Ù¸é, Á¶ÀÛÀ» ÇÏÁö¾Ê´Â´Ù.</p> |
| |
| <section id="wildcards"><title>Media Type°ú ¿ÍÀϵåÄ«µå</title> |
| |
| <p><code>Accept:</code> ¿äû Çì´õ´Â media type¿¡ ´ëÇÑ ¼±È£¸¦ |
| ³ªÅ¸³½´Ù. ¶Ç, *´Â ¾î¶² ¹®ÀÚ¿ÀÌ¶óµµ °¡´ÉÇϱ⶧¹®¿¡ "image/*"³ª |
| "*/*" °°ÀÌ '¿ÍÀϵåÄ«µå' media typeÀ» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ±×·¡¼ |
| ´ÙÀ½°ú °°Àº ¿äûÀº:</p> |
| |
| <example>Accept: image/*, */*</example> |
| |
| <p>"image/"·Î ½ÃÀÛÇÏ´Â ¾î¶² type°ú ´Ù¸¥ ¾î¶² typeµµ °¡´ÉÇÔÀ» |
| ÀǹÌÇÑ´Ù. ¾î¶² ºê¶ó¿ìÀú´Â |
| ÀÚ½ÅÀÌ ½ÇÁ¦·Î ´Ù·ê ¼ö ÀÖ´Â type¿¡ Ãß°¡·Î ¿ÍÀϵåÄ«µå¸¦ º¸³½´Ù. |
| ¿¹¸¦ µé¸é:</p> |
| |
| <example> |
| Accept: text/html, text/plain, image/gif, image/jpeg, */* |
| </example> |
| <p>ÀÌÀ¯´Â Á÷Á¢ ¿°ÅÇÑ typeÀ» ¼±È£ÇÏÁö¸¸ ´Ù¸¥ Ç¥ÇöÀÌ ÀÖ´Ù¸é |
| ±×°Íµµ ±¦ÂúÀ½À» ³ªÅ¸³»±â À§Çؼ´Ù. ºê¶ó¿ìÀú°¡ ½ÇÁ¦·Î ¿øÇÑ |
| °ÍÀº ´ÙÀ½°ú °°ÀÌ ¸í½ÃÀûÀ¸·Î Ç°Áú°ªÀ» »ç¿ëÇÑ °ÍÀÌ´Ù.</p> |
| <example> |
| Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01 |
| </example> |
| <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> |
| </section> |
| |
| <section id="exceptions"><title>¾ð¾î(language) Çù»óÀÇ ¿¹¿Ü</title> |
| |
| <p>¾ÆÆÄÄ¡ 2.0Àº ¾ð¾î Çù»óÀÌ ½ÇÆÐÇÑ °æ¿ì ºÎµå·´°Ô º¹±¸ÇϱâÀ§ÇØ |
| Çù»ó ¾Ë°í¸®Áò¿¡ »õ·Î ¿¹¿Ü¸¦ ¸î°³ Ãß°¡Çß´Ù.</p> |
| |
| <p>Ŭ¶óÀ̾ðÆ®°¡ ¼¹ö¿¡ ÆäÀÌÁö¸¦ ¿äûÇßÀ»¶§ ¼¹ö°¡ ºê¶ó¿ìÀú°¡ |
| º¸³½ <code>Accept-language</code>¿¡ ¸Â´Â ÆäÀÌÁö¸¦ ´Ü ÇÑ°³¸¸ |
| ãÀ¸¸é ¹®Á¦°¡ ¾øÁö¸¸, ±×·¯Áö ¾ÊÀº °æ¿ì ¼¹ö´Â Ŭ¶óÀ̾ðÆ®¿¡°Ô |
| "No Acceptable Variant"³ª "Multiple Choices" ÀÀ´äÀ» º¸³½´Ù. |
| ÀÌ·± ¿À·ù¹®À» ÇÇÇϱâÀ§ÇØ ÀÌ °æ¿ì <code>Accept-language</code>¸¦ |
| ¹«½ÃÇÏ°í Ŭ¶óÀ̾ðÆ®ÀÇ ¿äû¿¡ ¸íÈ®È÷ ¸ÂÁö´Â ¾ÊÁö¸¸ ¹®¼¸¦ |
| º¸³»µµ·Ï ¾ÆÆÄÄ¡¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. <directive |
| module="mod_negotiation">ForceLanguagePriority</directive> |
| Áö½Ã¾î´Â ¼¹ö°¡ ÀÌ·± ¿À·ù¹®Áß Çϳª ȤÀº µÑ´Ù¸¦ ¹«½ÃÇÏ°í |
| <directive module="mod_negotiation">LanguagePriority</directive> |
| Áö½Ã¾î·Î ÆÇ´ÜÇϵµ·Ï ÇÑ´Ù.</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" ¿À·ù¸¦ º¸³»°Å³ª |
| <directive module="mod_negotiation">LanguagePriority</directive>·Î |
| µ¹¾Æ°¡¾ß ÇÑ´Ù¸é, ¼¹ö´Â ÇÏÀ§¾ð¾î ±Ô¾àÀ» ¹«½ÃÇÏ°í |
| <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ºÎÅÍ |
| <module>mod_negotiation</module>Àº <code>prefer-language</code>¶ó´Â |
| <a href="env.html">ȯ°æº¯¼ö</a>¸¦ ÀνÄÇÑ´Ù. ÀÌ È¯°æº¯¼ö°¡ |
| Á¸ÀçÇÏ°í ÀûÀýÇÑ ¾ð¾îű׸¦ Æ÷ÇÔÇÑ´Ù¸é, |
| <module>mod_negotiation</module>Àº ÇØ´çÇÏ´Â º¯ÇüÀ» ¼±ÅÃÇÏ·Á°í |
| ½ÃµµÇÑ´Ù. ±×·± º¯ÇüÀÌ ¾ø´Ù¸é ÀϹÝÀûÀÎ Çù»ó°úÁ¤À» ½ÃÀÛÇÑ´Ù.</p> |
| |
| <example><title>¿¹Á¦</title> |
| SetEnvIf Cookie "language=(.+)" prefer-language=$1 |
| </example> |
| </section> |
| </section> |
| |
| <section id="extensions"><title>ÀÚ¿¬½º·¯¿î(transparent) ³»¿ëÇù»óÀÇ È®Àå</title> |
| |
| <p>¾ÆÆÄÄ¡´Â ´ÙÀ½°ú °°ÀÌ ÀÚ¿¬½º·¯¿î ³»¿ëÈ®Àå ÇÁ·ÎÅäÄÝÀ» (RFC 2295) |
| È®ÀåÇÑ´Ù. º¯Çü ¸ñ·ÏÀÇ »õ·Î¿î <code>{encoding ..}</code>´Â ƯÁ¤ |
| content-encodingÀ» °¡Áø º¯Çü¸¸À» ÁöĪÇÑ´Ù. RVSA/1.0 ¾Ë°í¸®ÁòÀº |
| (RFC 2296) ¸ñ·Ï¿¡¼ ÀÎÄÚµùµÈ º¯ÇüÀ» ÀνÄÇÒ ¼ö ÀÖ°í, ÀÎÄÚµùÀÌ |
| <code>Accept-Encoding</code> ¿äû Çì´õ¿¡ ¸Â´Â °æ¿ì ÀÎÄÚµùµÈ |
| º¯Çüµéµµ È帷Π»ç¿ëÇϵµ·Ï È®ÀåµÇ¾ú´Ù. RVSA/1.0 ±¸ÇöÀº ÃÖÀûÀÇ |
| º¯ÇüÀ» ã±â Àü¿¡ °è»êµÈ Ç°Áú°è¼ö¸¦ ¼Ò¼öÁ¡ 5ÀÚ¸®¿¡¼ ¹Ý¿Ã¸²ÇÏÁö |
| ¾Ê´Â´Ù.</p> |
| </section> |
| |
| <section id="naming"><title>ÇÏÀÌÆÛ¸µÅ©¿Í À̸§±ÔÄ¢¿¡ ´ëÇÏ¿©</title> |
| |
| <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 border="1" cellpadding="8" cellspacing="0"> |
| <columnspec><column width=".2"/><column width=".2"/> |
| <column width=".2"/></columnspec> |
| <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> |
| </section> |
| |
| <section id="caching"><title>ij½¬¿¡ ´ëÇÏ¿©</title> |
| |
| <p>ij½¬°¡ Ç¥ÇöÀ» ÀúÀåÇϸé Ç¥Çö°ú ¿äû URLÀ» ¿¬°ü½ÃŲ´Ù. |
| ´ÙÀ½¹ø ±× URLÀ» ¿äûÇϸé ij½¬´Â ÀúÀåµÈ Ç¥ÇöÀ» »ç¿ëÇÑ´Ù. |
| ±×·¯³ª ¼¹ö¿Í Çù»óÀÌ °¡´ÉÇÑ ÀÚ¿øÀÎ °æ¿ì ù¹ø° ¿äûÇÑ º¯Çü¸¸ |
| ij½¬µÇ¾î ÀÌÈÄ ¿äûÀº ij½¬µÈ À߸øµÈ ÀÀ´äÀ» ¾òÀ» ¼ö ÀÖ´Ù. |
| À̸¦ ¸·±âÀ§ÇØ ¾ÆÆÄÄ¡´Â º¸Åë ³»¿ëÇù»óÈÄ ¹ÝȯµÇ´Â ¸ðµç ¿äû¿¡ |
| HTTP/1.0 Ŭ¶óÀ̾ðÆ®°¡ ij½¬¸¦ ¸øÇϵµ·Ï Ç¥½Ã¸¦ ÇÑ´Ù. ¶Ç, ¾ÆÆÄÄ¡´Â |
| Çù»óÇÑ ÀÀ´äÀÇ Ä³½¬¸¦ Çã¿ëÇÏ´Â HTTP/1.1 ÇÁ·ÎÅäÄÝÀÇ ±â´ÉÀ» |
| Áö¿øÇÑ´Ù.</p> |
| |
| <p><directive |
| module="mod_negotiation">CacheNegotiatedDocs</directive> |
| Áö½Ã¾î´Â 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> |
| |
| </section> |
| |
| </manualpage> |