PNG IHDR ; IDATxܻn0K )(pA7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5 bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô!x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%tMז -lG6mrz2s%9s@-k9=)kB5\+͂ZsٲRn~GRCwIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL /F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ R IENDB`
Apache HTTP Server Version 2.4
ġ HTTP/1.1 Ծ (content negotiation) Ѵ. media type, , , ڵ ȣ ڿ ǥ Ѵ. ҿ û óϴ ɵ ִ.
⺻ ϵǴ mod_negotiation
Ѵ.
ڿ ٸ ǥ ִ. , ٸ ٸ media type Ȥ ΰ ٸ ǥ ִ. ǥ ϴ Ѱ ڿ ְ ϰ ϴ ̴. ڵ ϴ ͵ ϴ. ̴ û Ϻη ȣϴ ǥ ϴ. , Ҿ, ٸ ʹٰ ˷ ִ. û ȣ Ÿ. Ҿε ǥ ûѴٸ .
Accept-Language: fr
̷ ȣ ǥ ٸ 쿡 ȴ.
û Ҿ , Ҿ ȣϰ, media type , Ϲ ؽƮ ٴ HTML, ٸ media type ٴ 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
ġ HTTP/1.1 Ծ ǵ ' ֵ(server driven)'
Ѵ. ġ Accept
,
Accept-Language
, Accept-Charset
,
Accept-Encoding
û Ѵ.
, ġ RFC 2295 RFC 2296 ǵ
'ڿ(transparent)' û Ѵ.
RFC ǵ ' (feature negotiation)'
ʴ´.
ڿ(resource) (RFC 2396) URI ϴ . ġ ڿ ǥ(representations) Ѵ. ǥ media type, , ڵ Ʈ ִ. ڿ ǥ (δ ִ) ȴ. ڿ ǥ ִٸ ڿ ϴٰ(negotiable) θ, ̶ ǥ (variant)̶ Ѵ. ڿ (dimension) Ѵ.
ڿ ϱ ʿϴ. ΰ ϳ ´:
*.var
) ϰų,type map type-map
̶ ڵ鷯
(Ȥ ġ ȣȯ MIME type
application/x-type-map
) .
Ϸ type-map
ڵ鷯
Ȯڸ ؾ Ѵ. Ͽ
ϴ .
AddHandler type-map .var
Type map شϴ ڿ ̸ ƾ ϰ,
־ Ѵ. HTTP
ٷ ȴ. ٷ
Ѵ. ȿ . (̷
ʿ䰡 , ־ )
ִ map ϴ ̴.
map . ̸ foo.var
,
foo
ڿ Ѵ.
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
typemap ϸ Ȯ , Multiviews Ͽ, 켱 ϶. ٸ ǰ ٸ, (JPEG, GIF, ASCII-art شϴ) media type "qs" Ķͷ ǰ(source quality) ǥ ִ:
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 õ ϶. 'qs' 1.0 ȴ. qs Ŭ̾Ʈ ɷ° ٸ Ͽ 'ǰ' Ÿ. , Ÿ JPEG ASCII Ϻٴ ǰ . ڿ ASCII artٸ ASCII ǥ JPEG ǥ ǰ ִ. Ƿ qs ǥϷ ڿ ٸ.
MultiViews
丮 ɼ̹Ƿ,
httpd.conf
<Directory>
,
<Location>
,
<Files>
Ȥ (AllowOverride
Ǿٸ) .htaccess
Options
þ
ִ. Options All
MultiViews
϶. Ѵ.
MultiViews
ϸ Ͼ:
/some/dir/foo
û ް
/some/dir/foo
MultiViews
ϸ
/some/dir/foo
,
丮 ̸ foo.* ϵ ϴ
type map . Ŭ̾Ʈ û media type
content-encoding ߿ Ѵ.
MultiViews
丮 Ҷ
ã DirectoryIndex
þ
ȴ. ٸ,
DirectoryIndex index
index.html
index.html3
ִٸ ̵ ߿ ϳ Ѵ.
index.cgi
ִٸ, װ Ѵ.
丮 ϳ Charset, Content-Type,
Language, Encoding Ǵϴ mod_mime
Ȯڸ ٸ, MultiViewsMatch
þ
Ǵ. þ ڵ鷯, , ٸ Ȯ MultiViews
θ Ѵ.
ġ type-map ̳ 丮 ִ ϸ ־ ڿ ԵǸ '' ϱ ϳ Ѵ. ġ ϱ Ȯ Ͼ ڼ ʿ . ñ Ѵ.
ΰ ִ:
Media Type | Accept ȣ Ÿ.
ǰ ִ. ǰ
("qs" Ķ) ִ. |
Language | Accept-Language ȣ
Ÿ. ǰ ִ.
(Ȥ ƹ ) ִ. |
Encoding | Accept-Encoding ȣ
Ÿ. ǰ ִ. |
Charset | Accept-Charset ȣ
Ÿ. ǰ ִ.
media type Ķͷ Ÿ ִ. |
ġ '' (ִٸ) ϱ Ʒ ˰ Ѵ. ˰ . Ѵ:
Accept
ǰ
media type ǰ Ͽ
Ѵ.Accept-Language
(ִٸ)
Ȥ LanguagePriority
þ (ִٸ)
Ѵ.Accept-Charset
charset media Ķ ã´.
ٸ ISO-8859-1 ȣѴ.
text/*
media type
Ư հ ISO-8859-1
Ѵ.Vary
Ÿ ȴ. ( ij ڿ ijҶ
ִ.) .Vary
Ÿ.ġ ġ ˰ Űʰ
ǰ Ѵ. ϰ Ȯ ʴ
(˰) ؼ.
θ ̴ Ϻδ ߸ ϵ
Accept
. ϰ ùٸ
ٸ, ʴ´.
Accept:
û media type ȣ
Ÿ. , * ڿ̶ ϱ "image/*"
"*/*" 'ϵī' media type ִ.
û:
Accept: image/*, */*
"image/" ϴ type ٸ type ǹѴ. ڽ ٷ ִ type ߰ ϵī带 . :
Accept: text/html, text/plain, image/gif, image/jpeg, */*
type ȣ ٸ ǥ ִٸ װ͵ Ÿ ؼ. ǰ ̴.
Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01
type ǰ ⺻ ( ) 1.0 . ϵī */* ȣ 0.01 Ƿ type ´ 쿡 ٸ type ȴ.
Accept:
q
"*/*" ִٸ, ġ ٶ ൿ q 0.01
Ѵ. , "type/*" ϵī忡 ("*/*"ٴ
ȣϵ) 0.02 Ѵ. Accept:
q media type ִٸ ̷ Ư ߰
ʴ´.
û ûѵ óѴ.
ġ 2.0 ε巴 ϱ ˰ ܸ ߰ߴ.
Ŭ̾Ʈ û
Accept-language
´ Ѱ
ã , Ŭ̾Ʈ
"No Acceptable Variant" "Multiple Choices" .
̷ ϱ Accept-language
ϰ Ŭ̾Ʈ û Ȯ
ġ ִ. ForceLanguagePriority
þ ̷ ϳ Ȥ Ѵٸ ϰ
LanguagePriority
þ Ǵϵ Ѵ.
, ´ ã θ ã
ִ. Ŭ̾Ʈ ϴ
en-GB
û , HTTP/1.1 ǥؿ
en
θ ǥõ Ϲ
Ѵ. ( ϴ ڰ Ϲ
Ƿ Accept-Language
en-GB
ϰ en
Ȯ ߸ ϶.
Ŭ̾Ʈ ̷ ⺻ִ.) ٸ
ã Ͽ "No Acceptable Variants" ų
LanguagePriority
ư Ѵٸ, Ծ ϰ
en-GB
en
Ѵ.
Ϲ ġ θ ſ ǰ
Ŭ̾Ʈ Ͽ ߰Ѵ. Ŭ̾Ʈ
"en-GB; q=0.9, fr; q=0.8" ûϰ "en" "fr"
ִٸ, "fr" õ ϶. ̴ HTTP/1.1
ǥ Ű, ùٷ Ŭ̾Ʈ ȿ
ϱ̴.
ڰ ȣϴ ˾Ƴ (Ű Ư
URL- ) ϱ ġ 2.0.47
mod_negotiation
prefer-language
ȯ溯 νѴ. ȯ溯
ϰ ± Ѵٸ,
mod_negotiation
شϴ Ϸ
õѴ. ٸ Ϲ Ѵ.
SetEnvIf Cookie "language=(.+)" prefer-language=$1
ġ ڿ Ȯ (RFC 2295)
ȮѴ. ο {encoding ..}
Ư
content-encoding ĪѴ. RVSA/1.0 ˰
(RFC 2296) Ͽ ڵ ν ְ, ڵ
Accept-Encoding
û ´ ڵ
鵵 ĺ ϵ ȮǾ. RVSA/1.0
ã ǰ Ҽ 5ڸ ݿø
ʴ´.
(language) Ѵٸ Ȯڸ Ȯ Ƿ ϸ ٸ ̸Ģ ִ. (ڼ mod_mime ϶.)
MIME-type Ȯ ( ,
html
), 쿡 encoding Ȯ (
, gz
), Ͽ ִ
Ȯڸ ( , 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-type ( ,
foo.html
) ϰ ʹٸ (encoding Ȯڰ
ִٸ ̰͵ Ͽ) Ȯڸ MIME-type Ȯں
ʿ ( , foo.html.en
)
ξѴ.
ij ǥ ϸ ǥ û URL Ų. URL ûϸ ij ǥ Ѵ. ڿ ù° û ijǾ û ij ߸ ִ. ̸ ġ ȯǴ û HTTP/1.0 Ŭ̾Ʈ ij ϵ ǥø Ѵ. , ġ ij ϴ HTTP/1.1 Ѵ.
CacheNegotiatedDocs
þ HTTP/1.0 ȣȯ Ŭ̾Ʈ( Ȥ ij)
û ij ְ Ѵ. þ
ȣƮ ϸ, ƱԸƮ ʴ´.
þ HTTP/1.1 Ŭ̾Ʈ û 谡 .
HTTP/1.1 Ŭ̾Ʈ ġ
˷ִ Vary
HTTP .
Ͽ û ij 纻 ü ִ
Ǵ ִ. ij 纻
Ѵٸ force-no-vary
ȯ溯 Ѵ.