📄 mod_negotiation.html
字号:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="keywords" content="Apache, 中文, 手册, 中文版, 中文手册, 中文版手册, 参考手册, 中文参考手册, 金步国" />
<meta name="description" content="Apache 2.2 中文版参考手册" />
<meta name="author" content="金步国" />
<link href="../style/css/manual-zip.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-zip-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" />
<title>mod_negotiation - Apache 2.2 中文版参考手册</title>
</head>
<body><div id="page-header">
<p class="menu"><a href="../mod/index.html">模块索引</a> | <a href="../mod/directives.html">指令索引</a> | <a href="../faq/index.html">常见问题</a> | <a href="../glossary.html">词汇表</a> | <a href="../sitemap.html">站点导航</a></p><p class="apache">Apache HTTP Server 版本2.2</p><img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./index.html"><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/">文档</a> > <a href="../index.html">版本2.2</a> > <a href="./index.html">模块</a></div>
<div id="translation-info"> <a href="../translator_announcement.html#thanks">致谢</a> | <a href="../translator_announcement.html#announcement">译者声明</a> | 本篇译者:<a href="mailto:csfrank@citiz.net">金步国</a> | 本篇译稿最后更新:2006年1月28日 | <a href="../translator_announcement.html#last_new">获取最新版本</a></div>
<div id="page-content"><div id="preamble"><h1>Apache模块 mod_negotiation</h1>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="module">
<tr><th><a href="module-dict.html#Description">说明</a></th><td>提供<a href="../content-negotiation.html">内容协商</a>支持</td></tr>
<tr><th><a href="module-dict.html#Status">状态</a></th><td>基本(B)</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">模块名</a></th><td>negotiation_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">源文件</a></th><td>mod_negotiation.c</td></tr>
</table>
<h3>概述</h3>
<p>内容协商,更准确的说应该是"内容选择",是从几个有效文档中选择一个最匹配客户端要求的文档的过程。内容协商有两种实现方法。</p>
<ul>
<li>使用类型表(一个包含<code>type-map</code>处理器信息的文件)明确地列出各变种的文件名。</li>
<li>使用"MultiViews"搜索(由<code class="directive"><a href="../mod/core.html#options">Options</a></code>指令中的<code>MultiViews</code>选项激活),即服务器执行一个隐含的文件名模式匹配,并在结果中选择。</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="typemaps" id="typemaps">类型表</a></h2>
<p>类型表的格式有点类似于RFC822邮件头的格式。它包含以空行分格的文档描述,以井号(#)打头的行被当作是注释。一个文档描述包含几个头记录,以空格开始的行将被认为是前一行的延续,这样文档描述记录就可以包含多行。在处理处理多行记录时,行与行被连接起来,打头的空格会被删除。一个头记录包含一个关键字名,并且总是在结尾的地方用一个冒号将它自己和紧跟其后的值分隔开。在头名字与它的值之间以及取值的各个标记之间可以插入空格。头可以是:</p>
<dl>
<dt><code>Content-Encoding:</code></dt>
<dd>文件的编码方式。Apache只支持用<code class="directive"><a href="../mod/mod_mime.html#addencoding">AddEncoding</a></code>指令定义的编码方式。它一般包含compress压缩文件的<code>x-compress</code>编码和gzip文件的<code>x-gzip</code>编码。在编码对照过程中,"<code>x-</code>"前缀会被忽略。</dd>
<dt><code>Content-Language:</code></dt>
<dd>按互联网标准语言标签(<a href="http://www.ietf.org/rfc/rfc1766.txt">RFC 1766</a>)定义的变体语言。举例来说<code>en</code>表示英语。如果变体包含一种以上的语言,用逗号来分隔。</dd>
<dt><code>Content-Length:</code></dt>
<dd>以字节为单位的文件长度。如果这个头不存在,则使用文件的实际长度。</dd>
<dt><code>Content-Type:</code></dt>
<dd>带可选参数的文档<a class="glossarylink" href="../glossary.html#mime-type" title="see glossary">MIME类型</a>。参数与MIME类型之间以及参数之间都用分号分隔,参数使用类似"<code>name=value</code>"这样的语法。参数包括:
<dl>
<dt><code>level</code></dt>
<dd>一个指明媒体类型版本的整数。对<code>text/html</code>来讲,默认值是"2",其它的默认值为"0"。</dd>
<dt><code>qs</code></dt>
<dd>一个取值在0.0到1.0之间的浮点数,它表示在不考虑客户端性能的情况下,一个变体相对于其它变体的"品质"。比如在表现一张照片时,jpeg文件通常比字符构图有较高的还原品质;而如果要表现的本来就是一个字符构图,那么当然Ascii文件会比jpeg文件有较高的还原品质。因此,所有的<code>qs</code>取值都是特定于某个资源的。</dd>
</dl>
<div class="example"><h3>示例</h3><p><code>
Content-Type: image/jpeg; qs=0.8
</code></p></div>
</dd>
<dt><code>URI:</code></dt>
<dd>文件的URI包含了媒体类型、编码方式等变量的信息,这些被解释为与映射文件相关的URL ,它们必须在<strong>同一个</strong>服务器上。如果它们被直接调用的话,它们所涉及的文件必须对用户是可以访问的。</dd>
<dt><code>Body:</code></dt>
<dd>这是2.0新增的功能,使用Body头,资源的实际内容可以直接包含在类型表里。这个头必须包含一个指明分隔符的字符串。这样在类型表文件中,接下来直到分隔字符串之前的所有内容,会被当作是资源实体。
<div class="example"><h3>示例:</h3><p><code>
Body:----xyz----<br />
<html><br />
<body><br />
<p>Content of the page.</p><br />
</body><br />
</html><br />
----xyz----
</code></p></div>
</dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="multiviews" id="multiviews">MultiViews</a></h2>
<p>MultiViews查询是由<code class="directive"><a href="../mod/core.html#options">Options</a></code>指令的<code>MultiViews</code>选项激活的。如果服务器接收了一个对<code>/some/dir/foo</code>的请求,而<code>/some/dir/foo</code>并<em>不</em>存在,则服务器会查找这个目录下所有的 <code>foo.*</code> 文件,并有效地伪造一个说明这些 <code>foo.*</code> 文件的类型表,假定客户可能请求的一个,把他们指定为这个类型的媒体类型及内容编码。最终选择其中最符合客户请求的文档,返回给客户。</p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -