PNG IHDR Û € ; ®IDATxÚíÜ»n€0áŒÿK¡ )(ŠpAá ±Ç7LeG{ý§ §㻢|¬ïذaà 6lذaà 6lذaà 6lomûó$^þy¿úÝØ°ag5 bà 6lذaà 6lذa{íŒ 6lذaà `µçãŽ}HÏFkm,m¶Ðû¬ÓªñÑêÃŽÒÃŽ!ÝxÛ|'Ü¢Ë;·E:Ôõ9&á¶¶}®{v]n&Ñ6ç íhíÕ_õ÷tšÚ ͵-Ò«¯ºZ;úŽZ$Û.PÔÄøkíÅŸ)º!§o¡¡>}l³eQfJÕT±u ѵòåÚª×\âÝX=8ÝîRÙ4`VwòlŸ>ëÃ×únGþ^ìiŸs©Ì"msÙ$×uñÝi»?w¡bs[m©6³K4áãçO¹.£4Þ%ºÐ×/õÀßÏbëC%çtûM× ú-lîG6±mrz2ô¶s%»9Às@¹ì-âk»9 =ìæî)ÎÝõÌåâk»B5ÕËÂ×\Ãñ+ÍçZsÙ²åµòRnÚÂ~G§ ÉRНCíšÉwIcIïén7jJ°åèhÛNCS|ìâÓj0æªò8yï·œiHKÛÖ¶ÐkòÉ+;Sz°¶úšáL /µFÐ*\çÆÔË#"5¯Âmë2Üï[SÅ«»Íú£=©g¯ÎnaóP eÚÒûî¬LÛÿ lذaà 6lØ^kãï̱aà 6lذaà 6lذa;ÿ ¶_ÚÎØ°aà 6lذaà 6lذaà ¶ášëR¢ÇÆ IEND®B`
Apache HTTP ãµãŒã ããŒãžã§ã³ 2.4
Apache 㯠HTTP/1.1 ã®èŠæ Œã«èšè¿°ãããŠããã³ã³ãã³ãããŽã·ãšãŒã·ã§ã³ã ãµããŒãããŠããŸãã ãã©ãŠã¶ã«ããæäŸãããã¡ãã£ã¢ã¿ã€ãã èšèªãæåã»ããããšã³ã³ãŒãã£ã³ã°ã®åªå åŸåã«åºã¥ããŠã æé©ãªãªãœãŒã¹ã®è¡šçŸãéžæã§ããŸãã ãŸããäžå®å šãªããŽã·ãšãŒã·ã§ã³æ å ±ãéã£ãŠãããã©ãŠã¶ããã®ãªã¯ãšã¹ãã ãã£ãšè³¢ãåãæ±ãããããããã€ãæ©èœãå®è£ ããŠãããŸãã
ã³ã³ãã³ãããŽã·ãšãŒã·ã§ã³ã¯
mod_negotiation
ã¢ãžã¥ãŒã«ã«ãã£ãŠæäŸãããŠããŠãããã©ã«ãã§çµã¿èŸŒãŸããŠããŸãã
ãªãœãŒã¹ã¯ã幟ã€ãç°ãªã£ã衚çŸã§å©çšã§ããå ŽåããããŸãã äŸãã°ãç°ãªãèšèªãç°ãªãã¡ãã£ã¢ã¿ã€ãã ãŸãã¯ãããã®çµã¿åããã§å©çšã§ããããç¥ããŸããã ãã£ãšãé©ããéžæãããæ¹æ³ã®äžã€ã«ã¯ãã€ã³ããã¯ã¹ããŒãžã ãŠãŒã¶ã«èŠããŠããŠãŒã¶ã«éžãã§ãããæ¹æ³ããããŸãã ãããããµãŒããèªåçã«éžã¶ããšãã§ããå Žåãå€ããããŸãã ããã¯ããã©ãŠã¶ããªã¯ãšã¹ãæ¯ã«ã ã©ã®è¡šçŸãå奜ããããšããæ å ±ãéãããšã§åäœããŠããŸãã äŸãã°ãã©ãŠã¶ã¯ãå¯èœãªããã©ã³ã¹èªã§æ å ±ãèŠããã äžå¯èœãªããã®ä»£ããã«è±èªã§ããããšã èªåã®å奜ãç¥ãããããšãã§ããŸãã ãã©ãŠã¶ã¯ãªã¯ãšã¹ãã®ãããã§èªåã®åªå åŸåãç¥ãããŸãã ãã©ã³ã¹èªã®ã¿ã®è¡šçŸãèŠæ±ããå Žåã¯ããã©ãŠã¶ã¯æ¬¡ãéããŸãã
Accept-Language: fr
ãã®åªå åŸåã¯ãéžæå¯èœãªè¡šçŸãååšããŠã èšèªã«ãã£ãŠæ§ã ãªè¡šçŸãããå Žåã«ã®ã¿é©çšããã ãšããããšã«æ³šæããŠãã ããã
ãã£ãšè€éãªãªã¯ãšã¹ãã®äŸãæããŸãããã ãã®ãã©ãŠã¶ã¯ãã©ã³ã¹èªãšè±èªãåãä»ãããããããã©ã³ã¹èªã奜ãã ãããŠæ§ã ãªã¡ãã£ã¢ã¿ã€ããåãä»ãããã ãã¬ã€ã³ããã¹ããä»ã®ã¿ã€ããã㯠HTML ã奜ãã ä»ã®ã¡ãã£ã¢ã¿ã€ããã㯠GIF ã JPEG ã奜ãããããæçµææ®µãšã㊠ä»ã®ã¡ãã£ã¢ã¿ã€ããåãä»ããããšèšå®ãããŠããŸãã
Accept-Language: fr; q=1.0, en; q=0.5
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
Apache 㯠HTTP/1.1 èŠæ Œã§å®çŸ©ãããŠãã 'server
driven' ã³ã³ãã³ãããŽã·ãšãŒã·ã§ã³ããµããŒãããŠããŸãã
Accept
, Accept-Language
,
Accept-Charset
, Accept-Encoding
ãªã¯ãšã¹ãããããå®å
šã«ãµããŒãããŠããŸããApache ã¯
'transparent' ã³ã³ãã³ãããŽã·ãšãŒã·ã§ã³ããµããŒãããŠããŸããã
ãã㯠RFC 2295 ãš RFC 2296 ã§å®çŸ©ãããŠãã詊éšçãª
ããŽã·ãšãŒã·ã§ã³ãããã³ã«ã§ãã
ãããã® RFCã§å®çŸ©ãããŠãã 'feature negotiation'
ã¯ãµããŒãããŠããŸããã
ãªãœãŒã¹ãšã¯ URI ã§ç¹å®ãããæŠå¿µäžã®ãã®ã®ããšã§ã (RFC 2396)ã Apache ã®ãã㪠HTTP ãµãŒãã¯ããã®åå空éã®äžã§ã® ãªãœãŒã¹ã®è¡šçŸãžã®ã¢ã¯ã»ã¹ãæäŸããŸãã ããããã®è¡šçŸã¯ å®çŸ©ãããã¡ãã£ã¢ã¿ã€ããæåã»ããããšã³ã³ãŒãã£ã³ã°çã® ä»å±ããããã€ãåã®åœ¢åŒã§ãã ããããã®ãªãœãŒã¹ã¯ããæç¹ã§ 0 åã1 åããã以äžã®è¡šçŸãš é¢é£ä»ããããå¯èœæ§ããããŸããè€æ°ã®è¡šçŸãå©çšã§ããå Žåã¯ã ãªãœãŒã¹ã¯ããŽã·ãšãŒã·ã§ã³å¯èœã§ãããšããã åã ã®è¡šçŸã¯ variant ãšåŒã°ããŸãã ããŽã·ãšãŒã·ã§ã³å¯èœãªãªãœãŒã¹ã® variant ãç°ãªãã ãã®ç¶æ ãæããŠã ããŽã·ãšãŒã·ã§ã³ã®æ¬¡å ãšåŒã³ãŸãã
ãªãœãŒã¹ãããŽã·ãšãŒã·ã§ã³ããããã«ã¯ã ãµãŒã㯠variant ããããã«ã€ããŠã®æ å ±ãç¥ã£ãŠããå¿ èŠããããŸãã ããã¯ä»¥äžã®äºã€ã®æ¹æ³ã®ã©ã¡ããã§è¡ãããŸãã
*.var
ãã¡ã€ã«)
ãäœ¿ãæ¹æ³ã ãã㯠variant
ãæç€ºçã«æããŠãããã¡ã€ã«ãæå®ããŸããã¿ã€ãããã㯠type-map
ãã³ãã©
(ãããã¯ãå€ã Apache
ã®èšå®ãšäžäœäºæã§ãã MIME ã¿ã€ã
application/x-type-map
)
ã«é¢é£ä»ããããããã¥ã¡ã³ãã§ãã
ãã®æ©èœã䜿ãããã«ã¯ããããã¡ã€ã«ã®æ¡åŒµåã
type-map
ãšããŠå®çŸ©ãããããªãã³ãã©ãã
èšå®ãã¡ã€ã«äžã«çœ®ãå¿
èŠãããããšã«æ³šæããŠãã ããã
ããã¯
AddHandler type-map .var
ããµãŒãèšå®ãã¡ã€ã«äžã«æžãããšãäžçªè¯ãæ¹æ³ã§ãã
ã¿ã€ãããããã¡ã€ã«ã¯èšè¿°ãããªãœãŒã¹ãšåãååãæã£ãŠããŠã
å©çšå¯èœãª variant ããããã®ãšã³ããªãæã£ãŠããå¿
èŠããããŸãã
ãããŠããã®ãšã³ããªã¯é£ç¶ãã HTTP ã®ãããè¡ã§æ§æãããŸãã
ç°ãªã variant ã®ããã®ãšã³ããªã¯ç©ºè¡ã§åºåãããŠããŸãã
ãšã³ããªäžã«ç©ºè¡ãè€æ°ãã£ãŠã¯ãããŸããã
ç¿æ
£çã«ã¯ãããããã¡ã€ã«ã¯å
šäœãçµåãããã®ã®ãšã³ããªããå§ãŸããŸã
(ãããããã¯å¿
é ã§ã¯ãªãããã£ããšããŠãç¡èŠããããã®ã§ã)ã
次ã«äŸã瀺ããŸãããã®ãã¡ã€ã«ã¯ãªãœãŒã¹ foo
ãèšè¿°ããŠããã®ã§ãfoo.var
ãšããååã«ãªããŸãã
URI: foo
URI: foo.en.html
Content-type: text/html
Content-language: en
URI: foo.fr.de.html
Content-type: text/html;charset=iso-8859-2
Content-language: fr, de
ããšã MultiViews ã䜿çšããããã«ãªã£ãŠãããšããŠãã ãã¡ã€ã«åã®æ¡åŒµåããã¿ã€ããããã®æ¹ãåªå æš©ãæã€ãšããããšã«ã 泚æããŠãã ããã variant ã®å質ãéããšãã¯ããã®ç»åã®ããã« (JPEG, GIF, ASCII ã¢ãŒãããããŸã) ã¡ãã£ã¢ã¿ã€ãã® "qs" ãã©ã¡ãŒã¿ã§æå®ãããŸãã
URI: foo
URI: foo.jpeg
Content-type: image/jpeg; qs=0.8
URI: foo.gif
Content-type: image/gif; qs=0.5
URI: foo.txt
Content-type: text/plain; qs=0.01
qs å€ã®ç¯å²ã¯ 0.000 ãã 1.000 ã§ããqs å€ã 0.000 ã® variant ã¯æ±ºããŠ éžæãããªãããšã«æ³šæããŠãã ããã'qs' å€ã®ãªã variant 㯠qs å€ 1.0 ã äžããããŸããqs ãã©ã¡ãŒã¿ã¯ã¯ã©ã€ã¢ã³ãã®èœåã«é¢ä¿ç¡ããä»ã® variant ãš æ¯èŒãããšãã® variant ã®çžå¯Ÿçãªãå質ãã瀺ããŸãã äŸãã°ãåçã衚çŸããããšããŠãããšã㯠JPEG ãã¡ã€ã«ã®æ¹ãæ®é㯠ASCII ãã¡ã€ã«ãããé«ãå質ã«ãªããŸãããããããªãœãŒã¹ãå ã ASCII ã¢ãŒãã§è¡šçŸãããŠãããšãã¯ãASCII ãã¡ã€ã«ã® æ¹ã JPEG ãã¡ã€ã«ãããé«ãå質ã«ãªããŸãããã®ããã«ãqs 㯠衚çŸããããªãœãŒã¹ã®æ§è³ªã«ãã£ãŠ variant æ¯ã«ç¹æã®å€ãåããŸãã
èªèããããããã®äžèŠ§ã¯ mod_negotiation ããã¥ã¡ã³ãã«ãããŸãã
MultiViews
ã¯ãã£ã¬ã¯ããªæ¯ã®ãªãã·ã§ã³ã§ã
httpd.conf
ãã¡ã€ã«ã®
<Directory>
,
<Location>
,
<Files>
ã»ã¯ã·ã§ã³äžãã(AllowOverride
ãé©åãªå€ã« èšå®ãããŠãããš) .htaccess
ãã¡ã€ã«ã§ Options
ãã£ã¬ã¯ãã£ãã«ãã£ãŠèšå®ããããšãã§ããŸãã
Options All
ã¯
MultiViews
ãã»ããããªãããšã«æ³šæããŠãã ãããæç€ºçã«
ãã®ååãæžãå¿
èŠããããŸãã
MultiViews
ã®å¹æã¯ä»¥äžã®ããã«ãªããŸã:
ãµãŒãã /some/dir/foo
ãžã®ãªã¯ãšã¹ããåãåãã/some/dir
ã§
MultiViews
ãæå¹ã§ãã£ãŠã
/some/dir/foo
ãååšããªãå Žåã
ãµãŒãã¯ãã£ã¬ã¯ããªãèªãã§ foo.*
ã«ããŠã¯ãŸãå
šãŠã®ãã¡ã€ã«ãæ¢ãã
äºå®äžãããã®ãã¡ã€ã«ããããããã¿ã€ãããããäœããŸãã
ãã®ãšããã¡ãã£ã¢ã¿ã€ããšã³ã³ãã³ããšã³ã³ãŒãã£ã³ã°ã¯ããã®ãã¡ã€ã«åã
çŽæ¥æå®ãããšããšåããã®ãå²ãåœãŠãããŸãã
ããããã¯ã©ã€ã¢ã³ãã®èŠæ±ã«äžçªåããã®ãéžã³ãŸãã
ãµãŒãããã£ã¬ã¯ããªã®çŽ¢åŒãäœãããšããŠããå Žåã
MultiViews
㯠DirectoryIndex
ãã£ã¬ã¯ãã£ãã§æå®ããããã¡ã€ã«ãæ¢ãéçšã«ã
é©çšãããŸããèšå®ãã¡ã€ã«ã«
DirectoryIndex index
ãæžãããŠããŠãindex.html
ãš
index.html3
ã
äž¡æ¹ååšããŠãããšããµãŒãã¯ãã®äžããã©ã¡ãããé©åœã«éžã³ãŸãã
ãããã®äž¡æ¹ãååšããã« index.cgi
ãååšããŠãããšã ãµãŒãã¯ãããå®è¡ããŸãã
ãããã£ã¬ã¯ããªãèªãã§ããéã«ã
æåã»ãããã³ã³ãã³ãã¿ã€ããèšèªããšã³ã³ãŒãã£ã³ã°ã
æå®ããããã® mod_mime
ã§èªèã§ããæ¡åŒµåãæããªããã¡ã€ã«ãèŠã€ãããšãçµæã¯
MultiViewsMatch
ãã£ã¬ã¯ãã£ãã®èšå®ã«äŸåããŸãããã®ãã£ã¬ã¯ãã£ãã¯
ãã³ãã©ããã£ã«ã¿ãä»ã®ãã¡ã€ã«æ¡åŒµåã¿ã€ãã®ã©ãã
MultiViews ããŽã·ãšãŒã·ã§ã³ã§äœ¿çšã§ããããæ±ºå®ããŸãã
Apache ã¯ãªãœãŒã¹ã® variant ã®äžèЧããã¿ã€ãããããã¡ã€ã«ã ãã£ã¬ã¯ããªå ã®ãã¡ã€ã«åãããã§ååŸããåŸã ãæé©ãªã variant ãæ±ºå®ããããã«äºã€ã®æ¹æ³ã® ã©ã¡ãããèµ·åããŸãã Apache ã®ã³ã³ãã³ãããŽã·ãšãŒã·ã§ã³ã®æ©èœã䜿ãããã«ã ã©ã®ããã«ããŠãã®èª¿åãè¡ãããã詳现ãç¥ãå¿ èŠã¯ãããŸããã ããããªããããã®ææžã®æ®ãã§ã¯é¢å¿ã®ãã人ã®ããã«ã 䜿çšãããŠããæ¹æ³ã«ã€ããŠèª¬æããŠããŸãã
ããŽã·ãšãŒã·ã§ã³æ¹æ³ã¯äºã€ãããŸãã
次å | 説æ |
---|---|
ã¡ãã£ã¢ã¿ã€ã | ãã©ãŠã¶ã¯ Accept
ããããã£ãŒã«ãã§åªå
åŸåãæå®ããŸãã
ã¢ã€ãã ããããã¯ãé¢é£ããå質æ°å€ãæã€ããšãã§ããŸãã
variant ã®èª¬æãå質æ°å€ãæã€ããšãã§ããŸã
("qs" ãã©ã¡ãŒã¿ãã芧äžãã)ã |
èšèª | ãã©ãŠã¶ã¯ Accept-Language
ããããã£ãŒã«ãã§åªå
åŸåãæå®ããŸãã
èŠçŽ ããããã«å質æ°å€ãæãããããšãã§ããŸãã
variants 㯠0 ã 1 ã€ããã以äžã®èšèªãš
é¢é£ã¥ããããšãã§ããŸãã |
ãšã³ã³ãŒãã£ã³ã° | ãã©ãŠã¶ã¯ Accept-Encoding
ããããã£ãŒã«ãã§åªå
åŸåãæå®ããŸãã
èŠçŽ ããããã«å質æ°å€ãæãããããšãã§ããŸãã |
æåã»ãã | ãã©ãŠã¶ã¯ Accept-Charset
ããããã£ãŒã«ãã§åªå
åŸåãæå®ããŸãã
èŠçŽ ããããã«å質æ°å€ãæãããããšãã§ããŸãã
variant ã¯ã¡ãã£ã¢ã¿ã€ãã®ãã©ã¡ãŒã¿ãšããŠæåã»ããã
æå®ããããšãã§ããŸãã |
ãã©ãŠã¶ã«è¿ããæé©ãªãvariant ã (ããããã°) éžæããããã« Apache ã¯æ¬¡ã®ã¢ã«ãŽãªãºã ã䜿ãããšãã§ããŸãã ãã®ã¢ã«ãŽãªãºã ãèšå®ã«ãã倿Žããããšã¯ã§ããŸããã æ¬¡ã®ããã«åäœããŸã:
Accept
ãããã®å質æ°å€ãšã®ç©ãèšç®ããŠãæé«å€ã® variant
ãéžã³ãŸããAccept-Language
ãããã®èšèªé ãã
(ããããã°)
LanguagePriority
ãã£ã¬ã¯ãã£ãã®èšèªé ã§æé©ãªèšèªã® variant ãéžã³ãŸããAccept-Charset
ãããè¡ã§äžããããŠããæé«ã®æåã»ãã
ã¡ãã£ã¢ãã©ã¡ãŒã¿ãæã€ variant ãéžã³ãŸãã
æç€ºçã«é€å€ãããŠããªãéããISO-8859-1
ã蚱容ãããããã«ãªã£ãŠããŸãã
text/*
ã¡ãã£ã¢ã¿ã€ãã§ããããã©ã
ç¹å®ã®æåã»ããã«æç€ºçã«é¢é£ã¥ããããŠããããã§ã¯ãªã
variant 㯠ISO-8859-1 ã§ãããšä»®å®ãããŸããVary
ãèšå®ãããŸã
(ãªãœãŒã¹ã®ãã£ãã·ã¥ãããæã«ã
ãã©ãŠã¶ããã£ãã·ã¥ã¯ãã®æ
å ±ã䜿ãããšãã§ããŸã)ã
以äžã§çµãããVary
ããããèšå®ãããŸããäžèšã® Apache ããŽã·ãšãŒã·ã§ã³ã¢ã«ãŽãªãºã ã®å³æ Œãªè§£éã§
åŸãããã§ãããå€ãããApache ã¯å質æ°å€ãæã
å€ããŸãã
ããã¯ããã®ã¢ã«ãŽãªãºã ã§å®å
šã§ã¯ãªãããããã¯æ£ç¢ºã§ãªãæ
å ±ãéã
ãã©ãŠã¶åãã«ããããçµæãåŸãããã«è¡ãããŸãã
ããªãããã¥ã©ãŒãªãã©ãŠã¶ã§ããããªããšééã£ã variant
ãéžæããçµæã«ãªã£ãŠããŸããã㪠Accept
ãããæ
å ±ãéããã®ããããŸãã
ãã©ãŠã¶ãå®å
šã§æ£ããæ
å ±ãéã£ãŠããã°ã
ãã®æ°å€å€åã¯é©çšãããŸããã
Accept:
ãªã¯ãšã¹ããããã¯ã¡ãã£ã¢ã¿ã€ãã®åªå
åŸåãæå®ããŸãã
ããã¯ãŸãã"image/*" ã "*/*"
ãšãã£ããã¯ã€ã«ãã«ãŒããã¡ãã£ã¢ã¿ã€ããå«ãããšãã§ããŸãã
ããã§ * ã¯ä»»æã®æååã«ãããããŸãã
ã§ããããæ¬¡ã®:
Accept: image/*, */*
ãå«ããªã¯ãšã¹ãã¯ã"image/" ã§ã¯ããŸãã¿ã€ãå šãŠã蚱容ã§ããã ãããŠä»ã®ã©ããªã¿ã€ãã蚱容ã§ãã (ãã®å Žåã¯ããã® "image/*" ã¯åé·ã«ãªããŸã) ããšã瀺ããŸãã æ±ãããšã®ã§ããæç€ºçãªã¿ã€ãã«å ããŠãæ©æ¢°çã« ã¯ã€ã«ãã«ãŒããéããã©ãŠã¶ããããŸããäŸãã°:
Accept: text/html, text/plain, image/gif, image/jpeg, */*
ããããããšã®çãã¯ãæç€ºçã«ãªã¹ãããŠããã¿ã€ããåªå ãããããã©ãã ç°ãªã衚çŸãå©çšå¯èœã§ããã°ããã§ãè¯ãããšããããšã§ãã ããããªãããäžã®åºæ¬çãªã¢ã«ãŽãªãºã ã§ã¯ã */* ã¯ã€ã«ãã«ãŒãã¯ä»ã®å šãŠã®ã¿ã€ããšå šãåçãªã®ã§åªå ãããŸããã ãã©ãŠã¶ã¯ */* ã«ãã£ãšäœãå質 (åªå ) å€ãä»ããŠãªã¯ãšã¹ããéãã¹ããªã®ã§ããäŸãã°:
Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01
æç€ºçãªã¿ã€ãã«ã¯å質æ°å€ãä»ããããŠããŸããã®ã§ã ããã©ã«ãã® 1.0 (æé«å€) ã®åªå ã«ãªããŸãã ã¯ã€ã«ãã«ãŒã */* ã¯äœãåªå 床 0.01 ãäžããããŠããã®ã§ã æç€ºçã«ãªã¹ããããŠããã¿ã€ãã«åèŽãã variant ããªãå Žåã«ã®ã¿ã ä»ã®ã¿ã€ããè¿ãããŸãã
ãã Accept:
ãããã q å€ãå
šãå«ãã§ããªããã°ã
æã¿ã®æåãããããã«ã
Apache 㯠"*/*" ãããã° 0.01 ã® q å€ãèšå®ããŸãã
ãŸãã"type/*" ã®åœ¢ã®ã¯ã€ã«ãã«ãŒãã«ã¯ 0.02 ã® q å€ãèšå®ããŸã
(ã§ãããããã㯠"*/*" ã®ããããããåªå
ãããŸã)ã
ãã Accept:
ãããäžã®ã¡ãã£ã¢ã¿ã€ãã®ã©ããã q
å€ãå«ãã§ããã°ããããã®ç¹æ®ãªå€ã¯é©å¿ãããã
æ£ããæ
å ±ãéããã©ãŠã¶ããã®ãªã¯ãšã¹ãã¯æåŸ
éãã«
åäœããããã«ãªããŸãã
Apache 2.0 ã§ã¯æ°ãã«ãèšèªããŽã·ãšãŒã·ã§ã³ãé©åãããã®ã èŠã€ããã®ã«å€±æããæã«ãåªé ã«ãã©ãŒã«ããã¯ã§ãããã㪠ããŽã·ãšãŒã·ã§ã³ã¢ã«ãŽãªãºã ã幟ã€ã远å ãããŸããã
ãµãŒãã®ããŒãžãã¯ã©ã€ã¢ã³ãããªã¯ãšã¹ãããããã©ãã
ãã©ãŠã¶ã®éã£ãŠãã Accept-Language
ã«åèŽããããŒãžãäžã€ã
èŠã€ãããªãã£ãå Žåã«ããµãŒã㯠"No Acceptable Variant"
ã "Multiple Choices" ã¬ã¹ãã³ã¹ãã¯ã©ã€ã¢ã³ãã«è¿ããŸãã
ãããã®ãšã©ãŒã¡ãã»ãŒãžãè¿ããªãããã«ã
ãã®ãããªå Žåã«ã¯ Apache ã Accept-Language
ãç¡èŠããŠã
ã¯ã©ã€ã¢ã³ãã®ãªã¯ãšã¹ãã«æç€ºçã«ã¯åèŽããªãããã¥ã¡ã³ãã
æäŸããããã«èšå®ã§ããŸãã
ForceLanguagePriority
ãã£ã¬ã¯ãã£ãã¯ããããã®ãšã©ãŒã®äžã€ãäž¡æ¹ããªãŒããŒã©ã€ãããããã«
䜿çšã§ããŠã
LanguagePriority
ãã£ã¬ã¯ãã£ãã®å
容ã䜿ã£ãŠãµãŒãã®å€æã代è¡ããããã«ã§ããŸãã
ãµãŒãã¯ä»ã«é©åãããã®ãèŠã€ãããªããã°ã
èšèªãµãã»ããã§é©åãããã®ã詊ãããšãããŸãã
äŸãã°ã¯ã©ã€ã¢ã³ããè±åœè±èªã§ãã en-GB
èšèªã§
ããã¥ã¡ã³ãããªã¯ãšã¹ãããå ŽåããµãŒã㯠HTTP/1.1
èŠæ Œã§ã¯ãåã« en
ãšããŒã¯ãããŠããããã¥ã¡ã³ãã
ããããããã®ãšããããšã¯éåžžã¯èš±ãããŠããŸããã
(è±åœè±èªã¯çè§£ã§ãããã©äžè¬çãªè±èªã¯çè§£ã§ããªããšããèªã¿æã¯
èããããªãã®ã§ãAccept-Language ãããã§ en-GB
ãå«ãã§ en
ãå«ãŸãªãã®ã¯ã»ãŒç¢ºå®ã«èšå®ã®ééãã§ããã
ãšããããšã«æ³šæããŠãã ããã
ã§ããäžå¹žãªããšã«ãå€ãã®ã¯ã©ã€ã¢ã³ãã§ã¯ããã©ã«ãã§
ãã®ãããªèšå®ã«ãªã£ãŠããŸãã)
ããããªãããä»ã®èšèªã«ã¯ãããããã"No Acceptable Variants"
ãšã©ãŒãè¿ãããã
LanguagePriority
ã«ãã©ãŒã«ããã¯ããããšããŠãããšãã¯ã
ãµãã»ããæå®ãç¡èŠããŠãen-GB
ã en
ã«ãããããŸãã
Apache ã¯ã¯ã©ã€ã¢ã³ãã®èš±å®¹èšèªãªã¹ãã«æé»ã«
éåžžã«äœãå質å€ã®èŠªèšèªãå ããããšã«ãªããŸãã
ããããã¯ã©ã€ã¢ã³ãã "en-GB; q=0.9, fr; q=0.8" ãšãªã¯ãšã¹ãããŠã
ãµãŒãã "en" ãš "fr" ãšèšèšãããããã¥ã¡ã³ããæã£ãŠããå Žåã¯ã
"fr" ããã¥ã¡ã³ããè¿ãããããšã«æ³šæããŠãã ããã
ãã®ãããªåŠçã¯ãHTTP 1.1 èŠæ Œãšã®æŽåæ§ãç¶æããŠã
é©åã«èšå®ãããã¯ã©ã€ã¢ã³ããšããã¡ããšåäœããããã«
å¿
èŠã§ãã
ããé«åºŠãªãã¯ãã㯠(Cookie ãç¹æ®ãª URL ãã¹ç)
ã«ãããŠããŠãŒã¶ã®èšèªéžæããµããŒãããããã
Apache 2.0.47 ããã¯ãmod_negotiation
ãç°å¢å€æ° prefer-language
ãèªèããããã«ãªããŸããã
ãã®å€æ°ãååšããŠãé©åãªèšèªã¿ã°ã代å
¥ãããŠããã®ã§ããã°ã
mod_negotiation
ã¯åèŽãã variant
ãéžæããããšããŸããåèŽãããã®ãç¡ããã°ã
éåžžã®ããŽã·ãšãŒã·ã§ã³æé ãé©çšãããŸãã
SetEnvIf Cookie "language=(.+)" prefer-language=$1
Header append Vary cookie
Apache 㯠transparent content negotiation ãããã³ã«
(RFC 2295) ãæ¬¡ã®ããã«æ¡åŒµããŠããŸãã
ç¹å®ã®ã³ã³ãã³ããšã³ã³ãŒãã£ã³ã°ã®ã¿ãå©çšå¯èœã§ãã variant
ã«å°ãä»ããããã«ãæ°ãã« {encoding ..}
èŠçŽ ã variant ãªã¹ãäžã«äœ¿ã£ãŠããŸãã
ãªã¹ãäžã®ãšã³ã³ãŒãããã variant ãèªèãã
Accept-Encoding
ãªã¯ãšã¹ããããã«åŸã£ãŠèš±å®¹ããã
ãšã³ã³ãŒãããã£ã variant ã¯ãã©ãã§ãåè£ variant
ãšããŠäœ¿çšããããã«ã
RVSA/1.0 ã¢ã«ãŽãªãºã (RFC 2296) ã®å®è£
ãæ¡åŒµãããŸããã
RVSA/1.0 ã®å®è£
ã§ã¯ãæé©ãª variant ãèŠã€ãããŸã§ã
èšç®ããå質æ°å€ã¯å°æ°ç¹ä»¥äž 5 æ¡ãŸã§äžžããŸããã
èšèªããŽã·ãšãŒã·ã§ã³ã䜿ã£ãŠããå Žåã¯ã ãã¡ã€ã«ãäžã€ä»¥äžã®æ¡åŒµåãæãŠãŠã æ¡åŒµåã®é çªã¯éåžžã¯èæ ®ãããªã (詳现㯠mod_mime ãåç §) ã®ã§ã 幟ã€ãã®ç°ãªãååã®å€æãéžã¹ãããšã«ãªããŸãã
å
žåçãªãã¡ã€ã«ã§ã¯ãMIME ã¿ã€ãæ¡åŒµå (äŸãã°
html
) ãæã£ãŠããŠããšã³ã³ãŒãã£ã³ã°æ¡åŒµå
(äŸãã° gz
) ãæã£ãŠãããããããªããŠã
ãã®ãã¡ã€ã«ã«ç°ãªãèšèª variant ãçšæããŠããã°ã
ãã¡ããèšèªæ¡åŒµå (äŸãã° en
)
ãæã£ãŠããã§ãããã
äŸ:
ãã¡ã€ã«åãšãããã«å¯ŸããŠäœ¿ãããªã³ã¯ãšäœ¿ããªããªã³ã¯ã®äŸã§ã:
ãã¡ã€ã«å | 䜿ãããªã³ã¯ | 䜿ããªããªã³ã¯ |
---|---|---|
foo.html.en | foo foo.html |
- |
foo.en.html | foo | foo.html |
foo.html.en.gz | foo foo.html |
foo.gz foo.html.gz |
foo.en.html.gz | foo | foo.html foo.html.gz foo.gz |
foo.gz.html.en | foo foo.gz foo.gz.html |
foo.html |
foo.html.gz.en | foo foo.html foo.html.gz |
foo.gz |
äžã®è¡šãèŠãŠãæ¡åŒµåãªãã®ãªã³ã¯ (äŸãã° foo
)
ããã€ã§ã䜿ããããšã«æ°ãä»ãã§ãããã
ãã®å©ç¹ã¯ãããã¥ã¡ã³ããšããŠå¿çãããã¡ã€ã«ã®
å®éã®ãã¡ã€ã«ã¿ã€ããé èœããŠããªã³ã¯ã®åç
§ã倿Žããããšãªã
åŸãããã¡ã€ã«ã倿Žã§ããã
äŸãã° html
ãã shtml
ã«ãããã㯠cgi
ã«å€æŽã§ããç¹ã§ãã
ãªã³ã¯ã« MIME ã¿ã€ãã䜿ãç¶ããã (äŸãã°
foo.html
)æã¯ãèšèªæ¡åŒµåã¯
(ãšã³ã³ãŒãã£ã³ã°æ¡åŒµåãããã°ãããå«ããŠ)
MIME ã¿ã€ãæ¡åŒµåã®å³åŽã«ãªããã°ãªããŸãã
(äŸãã° foo.html.en
)ã
ãã£ãã·ã¥ãäžã€ã®è¡šçŸãä¿åããŠãããšãã¯ã ãªã¯ãšã¹ã URL ãšé¢é£ã¥ããããŠããŸãã æ¬¡ã«ãã® URL ããªã¯ãšã¹ããããæã«ããã£ãã·ã¥ã¯ ä¿åãããŠãã衚çŸã䜿çšã§ããŸãããããã ãªãœãŒã¹ããµãŒãã§ããŽã·ãšãŒã·ã§ã³å¯èœã§ããã°ã æåã®ãªã¯ãšã¹ãã§ãã£ãã·ã¥ãããŠç¶ããã£ãã·ã¥ãããã§ã¯ ééã£ãå¿çãè¿ããŠããŸããšããããšã«ãªããããŸããã ãããé²ãããã«ãApache ã¯ã³ã³ãã³ãããŽã·ãšãŒã·ã§ã³ã® åŸã«è¿ãããå¿çå šãŠã«ãHTTP/1.0 ã¯ã©ã€ã¢ã³ãã§ã¯ ãã£ãã·ã¥äžå¯èœã®å°ãã€ããŸãã ãŸããããŽã·ãšãŒã·ã§ã³ãããå¿çã®ãã£ãã·ã¥ãå¯èœã«ãã HTTP/1.1 ãããã³ã«ã®æ©èœã Apache ã¯ãµããŒãããŸãã
HTTP/1.0 æºæ ã®ã¯ã©ã€ã¢ã³ãããã®ãªã¯ãšã¹ãã«å¯ŸããŠã¯ã
(ãã©ãŠã¶ã§ããããšãã£ãã·ã¥ã§ããããš)
ããŽã·ãšãŒã·ã§ã³ãåããå¿çã®ãã£ãã·ã¥ãèš±ãããã«ã
CacheNegotiatedDocs
ãã£ã¬ã¯ãã£ãã䜿çšã§ããŸãã
ãã®ãã£ã¬ã¯ãã£ãã¯ããµãŒãèšå®ãã¡ã€ã«ãããŒãã£ã«ãã¹ãã«æžãããšãã§ãã
åŒæ°ããšããŸããã
HTTP/1.1 ã¯ã©ã€ã¢ã³ãããã®ãªã¯ãšã¹ãã«ã¯å¹åãæã¡ãŸããã
HTTP/1.1 ã¯ã©ã€ã¢ã³ãã«å¯ŸããŠã¯ãã¬ã¹ãã³ã¹ã®ããŽã·ãšãŒã·ã§ã³æ¬¡å
ã瀺ãããã« Vary
HTTP ã¬ã¹ãã³ã¹ããããéããŸãã
ãã£ãã·ã¥ã¯ãããã䜿ã£ãŠåŸç¶ã®ãªã¯ãšã¹ãã«å¯ŸããŠããŒã«ã«ã³ããŒã§å¿çã§ããã
ã©ãããæ±ºå®ã§ããŸãã
ããŽã·ãšãŒã·ã§ã³æ¬¡å
ãšã¯é¢ä¿ãªãã«ããŒã«ã«ã³ããŒã®äœ¿çšãåªå
ããããã«ããã«ã¯ã
force-no-vary
ç°å¢å€æ°ã
èšå®ããŸãã