Apache HTTP サームãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.2
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
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
環境変数を
è¨å®šã—ã¾ã™ã€‚