<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
<modulesynopsis metafile="mod_negotiation.xml.meta">
<name>mod_negotiation</name>
<description>Ermöglicht die <a
href="../content-negotiation.html">Content Negotiation</a></description>
<status>Base</status>
<sourcefile>mod_negotiation.c</sourcefile>
<identifier>negotiation_module</identifier>
<summary>
<p>Bei der Content Negotiation oder Auswahl einer Antwort gemäß
der
Bedürfnisse des Clients durch den Server wird das Dokument
ausgewählt,
das den Fähigkeiten des zugreifenden Clients am meisten entspricht,
falls
mehrere Dokumente zur Auswahl stehen. Hierfür gibt es zwei
Möglichkeiten:</p>
<ul>
<li>Eine Type-Map (eine Datei mit dem Handler
<code>type-map</code>), welche die Dateien mit den unterschiedlichen
Varianten explizit aufführt.</li>
<li><code>MultiViews</code>, bei welcher der Server einen
impliziten Mustervergleich des Dateinamens und innerhalb
der Ergebnisse (dieses Vergleichs) eine Auswahl durchführt.</li>
</ul>
</summary>
<seealso><directive module="core">Options</directive></seealso>
<seealso><module>mod_mime</module></seealso>
<seealso><a href="../content-negotiation.html">Content
Negotiation</a></seealso>
<section id="typemaps"><title>Type-Maps</title>
<p>Das Format einer Type-Map ist mit dem Mail-Headern nach RFC822
vergleichbar. Sie enthält durch Leerzeilen getrennte
Dokumentbeschreibungen. Zeilen, die mit einem Doppelkreuz ('#') beginnen,
werden als Kommentare behandelt. Eine Dokumentbeschreibung besteht
aus mehreren Header-Datensätzen, die sich über mehrere Zeilen
fortsetzen
können. Die Fortsetzungszeilen müssen mit Leerzeichen beginnen,
die bei der
Verkettung der Zeilen entfernt werden. Ein Header-Datensatz enthält
ein Schlüsselwort mit einem Doppelpunkt und einen Wert.
Zwischen Header-Name und Wert sowie den Elementen des Wertes
stehen. Zulässige Header sind: </p>
<dl>
<dt><code>Content-Encoding:</code></dt>
<dd>Das auf diese Datei angewendete Kodierungsverfahren. Apache erkennt
nur Kodierungsverfahren, die mit einer <directive
module="mod_mime">AddEncoding</directive>-Direktive definiert
wurden. Normalerweise gehören hierzu die Optionen
<code>x-compress</code> und <code>x-gzip</code>. Der
Präfix <code>x-</code> wird bei Vergleichen von Kodierungen
ignoriert.</dd>
<dt><code>Content-Language:</code></dt>
<dd>Die Sprachvariante(n) angegeben mit dem Internet-Standard-Sprach-Tag
(<a href="http://www.ietf.org/rfc/rfc1766.txt"
>RFC 1766</a>). <code>en</code> steht beispielsweise für die
englische Sprache. Mehrere Sprachvarianten werden durch Kommata
voneinander getrennt.</dd>
<dt><code>Content-Length:</code></dt>
<dd>Die Dateilänge in Byte. Ist dieser Header nicht
vorhanden, wird die tatsächliche Dateilänge zugrunde
gelegt.</dd>
<dt><code>Content-Type:</code></dt>
<dd>
Der MIME-Medientyp des Dokuments, mit optionalen
Parametern. Parameter werden vom Medientyp
und anderen Parametern ein Semikolon getrennt. Ihre Syntax lautet
<code>Name=Wert</code>. Zu den gebräuchlichen Parametern
gehören:
<dl>
<dt><code>level</code></dt>
<dd>Eine ganze Zahl, die die Version des Medientyps angibt.
Für <code>text/html</code> hat diese den Standardwert
<code>2</code>,
sonst <code>0</code>.</dd>
<dt><code>qs</code></dt>
<dd>Eine Gleitkommazahl mit einem Wert zwischen <code>0.0</code>
und <code>1.0</code>, der die relative 'Qualität' der Variante
im Vergleich zu anderen verfügbaren Varianten angibt, ohne
Rücksicht auf die Möglichkeiten des Clients. Eine
JPEG-Datei hat zum Beispiel in der Regel eine höhere
Qualität
als eine ASCII-Datei, wenn es sich um die Wiedergabe einer
Fotografie handelt. Handelt es sich hingegen um eine reine
ASCII-Grafik, dann hat die ASCII-Datei die höhere Priorität.
Die <code>qs</code>-Werte sind daher immer für eine bestimmte
Datei spezifisch.</dd>
</dl>
<example><title>Beispiel</title>
Content-Type: image/jpeg; qs=0.8
</example>
</dd>
<dt><code>URI:</code></dt>
<dd>Die URI der Datei mit der Variante (des angegebenen
Medientyps, kodiert nach der angegebenen Inhaltskodierung).
Hierbei handelt es sich um URLs relativ zur Map-Datei (sie müssen auf
den gleichen Server (!) liegen und müssen auf Dateien verweisen,
für die der
Client Zugriffsrechte haben muss, wenn sie direkt angefordert
würden.</dd>
<dt><code>Body:</code></dt>
<dd>Seit der Version Apache 2.0 kann der tatsächliche Inhalt der
Ressource
kann in der Type-Map-Datei mit dem <code>Body</code>-Header
angegeben werden. Dieser Header muss eine Zeichenfolge enthalten, die
ein Begrenzungszeichen für den Rumpfinhalt festlegt. Die folgenden
Zeilen einer Type-Map-Datei werden bis zum Begrenzungszeichen
dem Ressourcenrumpf zugerechnet:
<example><title>Beispiel:</title>
Body:----xyz----<br />
<html><br />
<body><br />
<p>Content of the page.</p><br />
</body><br />
</html><br />
----xyz----
</example>
</dd>
</dl>
</section>
<section id="multiviews"><title>MultiViews</title>
<p>Eine MultiView-Suche wird über die <code>MultiViews</code>
<directive module="core">-Option</directive> aktiviert. Erhält
der Server eine Anfrage für <code>/some/dir/foo</code> und
ist <code>/some/dir/foo</code> <em>nicht</em> vorhanden,
dann liest der Server das Verzeichnis und sucht nach Dateien mit der
Bezeichnung <code>foo.*</code>. Auf diese Weise erzeugt ein
künstliches Type-Map mit diesen Dateien und weist ihnen die gleichen
Medientypen und Inhaltsverschlüsselungen zu, die sie hätten, wenn
der Client eine von ihnen namentlich angefordert hätte.
Anschließend
wählt er die für die Möglichkeiten des Clients geeignetste
Datei aus
und sendet das entsprechende Dokument.</p>
</section>
<directivesynopsis>
<name>CacheNegotiatedDocs</name>
<description>Erlaubt das Caching von Dateien, die über die
Content Negotiation ausgewählt wurden, durch Proxy-Server.</description>
<syntax>CacheNegotiatedDocs On|Off</syntax>
<default>CacheNegotiatedDocs Off</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<compatibility>Die Syntax hat sich mit der Version 2.0
geändert.</compatibility>
<usage>
<p>Diese Direktive erlaubt eine Zwischenspeicherung der Ergebnisse der
Content Negotiation durch Proxy-Server. Das kann bedeuten, dass Clients,
die hinter diesen Proxys liegen, möglicherweise Versionen erhalten, die
nicht optimal ihren Fähigkeiten entsprechen. Allerdings wird dadurch
das
Caching durch den Proxy effizienter.</p>
<p>Diese Direktive ist nur für Anfragen von HTTP/1.0-Browsern wirksam.
HTTP/1.1 bietet bessere Möglichkeiten für das Caching von via
Content Negotiation ausgelieferten Dokumenten. Auf Antworten auf
HTTP/1.1-Anfragen hat diese Anweisung keine Auswirkungen.</p>
<p>Vor der Version 2.0 übernahm
<directive>CacheNegotiatedDocs</directive> kein
Argument, sondern die Direktive wurde allein durch ihr
Vorhandensein aktiviert.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>ForceLanguagePriority</name>
<description>Durchzuführende Aktion für den Fall, dass kein passendes
Dokument
gefunden wird.</description>
<syntax>ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]</syntax>
<default>ForceLanguagePriority Prefer</default>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context><context>.htaccess</context></contextlist>
<override>FileInfo</override>
<compatibility>Verfügbar seit Version 2.0.30</compatibility>
<usage>
<p>Die <directive>ForceLanguagePriority</directive>-Direktive
verwendet die vorhandene
<directive module="mod_negotiation">LanguagePriority</directive>
(Sprach-Priorität), um eine Entscheidung zu treffen, falls der Server
andernfalls
keine eindeutige Wahl (eines 'besten' Dokuments) treffen kann.</p>
<p><code>ForceLanguagePriority Prefer</code> verwendet die
<code>LanguagePriority</code>, um ein gültiges Ergebnis und
nicht nur den <code>Status 300 (MULTIPLE CHOICES)</code>
zurückzuliefern, wenn mehrere gleichermaßen geeignete
Sprachvarianten gefunden worden. Enthält eine
Anfrage die <code>Accept-Language</code>-Header
<code>en</code> und <code>de</code> mit jeweils der gleichen
Qualitätsangabe <code>.500</code> (gleichermaßen geeignet), dann
wird bei
den unten aufgeführten Direktiven die erste übereinstimmende
Variante
mit der Sprachangabe <code>en</code> zurückgesendet.</p>
<example>
LanguagePriority en fr de<br />
ForceLanguagePriority Prefer
</example>
<p><code>ForceLanguagePriority Fallback</code> liefert in Verbindung
mit der Sprach-Priorität ein
gültiges Ergebnis anstatt der Antwort <code>Status 406
(NOT ACCEPTABLE)</code> zurück. Lässt die
<code>Accept-Language</code>-Anweisung der Antwort nur
eine Antwort in der Sprache <code>es</code> zu,
ohne dass eine solche Variante gefunden wird,
dann liefern die unten angeführten Direktiven die erste Variante aus
der
<directive module="mod_negotiation"
>LanguagePriority</directive>-Liste zurück.</p>
<example>
LanguagePriority en fr de<br />
ForceLanguagePriority Fallback
</example>
<p>Es kann sowohl die Option <code>Prefer</code> als auch die Option
<code>Fallback</code> angegeben werden, so dass entweder die erste
übereinstimmende Variante für <directive
module="mod_negotiation">LanguagePriority</directive> zurückgeliefert
wird, wenn mehr als eine Variante akzeptabel ist, oder das erste
verfügbare Dokument gesendet wird, wenn keine der Varianten in der
Liste der vom Client akzeptierten Sprachen enthalten ist.</p>
</usage>
<seealso><directive module="mod_mime">AddLanguage</directive></seealso>
</directivesynopsis>
<directivesynopsis>
<name>LanguagePriority</name>
<description>Auszuwählende Sprachvariante falls der Client keine
bevorzugte Sprache angibt.</description>
<syntax>LanguagePriority <var>MIME-lang</var> [<var>MIME-lang</var>]
...</syntax>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context><context>.htaccess</context></contextlist>
<override>FileInfo</override>
<usage>
<p>Die <directive>LanguagePriority</directive>-Direktive legt fest,
welche der Sprachvarianten bei MultiView-Anfragen vorzuziehen ist,
falls der Client keine Angabe zur bevorzugten Sprache macht. Die
<var>MIME-lang</var>-Liste führt die Sprachen in absteigender
Reihenfolge ihrer Prioritäten auf.</p>
<example><title>Beispiel:</title>
LanguagePriority en fr de
</example>
<p>Existieren die Varianten <code>foo.html.fr</code> und
<code>foo.html.de</code> und macht der Browser keine Angabe
zur bevorzugten Sprache, dann wird bei der Anfrage nach
<code>foo.html</code> die Variante <code>foo.html.fr</code>
geliefert.</p>
<p>Diese Direktive ist nur wirksam, wenn die geeignetste Sprache
nicht anders ermittelt werden kann oder wenn die <directive
module="mod_negotiation">ForceLanguagePriority</directive>-Direktive
nicht auf <code>None</code> gesetzt wurde. Bei korrekt ausgeführten
HTTP/1.1-Anfragen hat diese Direktive ebenfalls keine Auswirkungen.</p>
</usage>
<seealso><directive module="mod_mime">AddLanguage</directive></seealso>
</directivesynopsis>
</modulesynopsis>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]