<?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&ouml;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&auml;&szlig; 
der
    Bed&uuml;rfnisse des Clients durch den Server wird das Dokument 
ausgew&auml;hlt,
    das den F&auml;higkeiten des zugreifenden Clients am meisten entspricht, 
falls
    mehrere Dokumente zur Auswahl stehen. Hierf&uuml;r gibt es zwei 
M&ouml;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&uuml;hrt.</li>

      <li><code>MultiViews</code>, bei welcher der Server einen
impliziten Mustervergleich des Dateinamens und innerhalb
der Ergebnisse (dieses Vergleichs) eine Auswahl durchf&uuml;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&auml;lt durch Leerzeilen getrennte
    Dokumentbeschreibungen. Zeilen, die mit einem Doppelkreuz ('#') beginnen,
    werden als Kommentare behandelt. Eine Dokumentbeschreibung besteht
    aus mehreren Header-Datens&auml;tzen, die sich &uuml;ber mehrere Zeilen 
fortsetzen
    k&ouml;nnen. Die Fortsetzungszeilen m&uuml;ssen mit Leerzeichen beginnen, 
die bei der
    Verkettung der Zeilen entfernt werden. Ein Header-Datensatz enth&auml;lt
    ein Schl&uuml;sselwort mit einem Doppelpunkt und einen Wert.
    Zwischen Header-Name und Wert sowie den Elementen des Wertes
    stehen. Zul&auml;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&ouml;ren hierzu die Optionen
      <code>x-compress</code> und <code>x-gzip</code>. Der
      Pr&auml;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&uuml;r die
      englische Sprache. Mehrere Sprachvarianten werden durch Kommata
      voneinander getrennt.</dd>

      <dt><code>Content-Length:</code></dt>
      <dd>Die Dateil&auml;nge in Byte. Ist dieser Header nicht
      vorhanden, wird die tats&auml;chliche Dateil&auml;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&auml;uchlichen Parametern
        geh&ouml;ren: 

        <dl>
          <dt><code>level</code></dt>
          <dd>Eine ganze Zahl, die die Version des Medientyps angibt.
          F&uuml;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&auml;t' der Variante
          im Vergleich zu anderen verf&uuml;gbaren Varianten angibt, ohne
          R&uuml;cksicht auf die M&ouml;glichkeiten des Clients. Eine
          JPEG-Datei hat zum Beispiel in der Regel eine h&ouml;here 
Qualit&auml;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&ouml;here Priorit&auml;t.
          Die <code>qs</code>-Werte sind daher immer f&uuml;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&uuml;ssen auf
      den gleichen Server (!) liegen und m&uuml;ssen auf Dateien verweisen, 
f&uuml;r die der
      Client Zugriffsrechte haben muss, wenn sie direkt angefordert 
w&uuml;rden.</dd>

      <dt><code>Body:</code></dt>
      <dd>Seit der Version Apache 2.0 kann der tats&auml;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&uuml;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 />
        &lt;html&gt;<br />
        &lt;body&gt;<br />
        &lt;p&gt;Content of the page.&lt;/p&gt;<br />
        &lt;/body&gt;<br />
        &lt;/html&gt;<br />
        ----xyz----
      </example>
      </dd>
    </dl>
</section>

<section id="multiviews"><title>MultiViews</title>
    <p>Eine MultiView-Suche wird &uuml;ber die <code>MultiViews</code>
    <directive module="core">-Option</directive> aktiviert. Erh&auml;lt
    der Server eine Anfrage f&uuml;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&uuml;nstliches Type-Map mit diesen Dateien und weist ihnen die gleichen
    Medientypen und Inhaltsverschl&uuml;sselungen zu, die sie h&auml;tten, wenn
    der Client eine von ihnen namentlich angefordert h&auml;tte. 
Anschlie&szlig;end
    w&auml;hlt er die f&uuml;r die M&ouml;glichkeiten des Clients geeignetste 
Datei aus
    und sendet das entsprechende Dokument.</p>
</section>

<directivesynopsis>
<name>CacheNegotiatedDocs</name>
<description>Erlaubt das Caching von Dateien, die &uuml;ber die
Content Negotiation ausgew&auml;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&auml;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&ouml;glicherweise Versionen erhalten, die
    nicht optimal ihren F&auml;higkeiten entsprechen. Allerdings wird dadurch 
das
   Caching durch den Proxy effizienter.</p>

    <p>Diese Direktive ist nur f&uuml;r Anfragen von HTTP/1.0-Browsern wirksam.
    HTTP/1.1 bietet bessere M&ouml;glichkeiten f&uuml;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 &uuml;bernahm
    <directive>CacheNegotiatedDocs</directive> kein
    Argument, sondern die Direktive wurde allein durch ihr
    Vorhandensein aktiviert.</p>
</usage>
</directivesynopsis>

<directivesynopsis>
<name>ForceLanguagePriority</name>
<description>Durchzuf&uuml;hrende Aktion f&uuml;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&uuml;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&auml;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&uuml;ltiges Ergebnis und
    nicht nur den <code>Status 300 (MULTIPLE CHOICES)</code>
    zur&uuml;ckzuliefern, wenn mehrere gleicherma&szlig;en geeignete
    Sprachvarianten gefunden worden. Enth&auml;lt eine
    Anfrage die <code>Accept-Language</code>-Header 
    <code>en</code> und <code>de</code> mit jeweils der gleichen
    Qualit&auml;tsangabe <code>.500</code> (gleicherma&szlig;en geeignet), dann 
wird bei
    den unten aufgef&uuml;hrten Direktiven die erste &uuml;bereinstimmende 
Variante
    mit der Sprachangabe  <code>en</code> zur&uuml;ckgesendet.</p>

    <example>
      LanguagePriority en fr de<br />
      ForceLanguagePriority Prefer
    </example>

    <p><code>ForceLanguagePriority Fallback</code> liefert in Verbindung
    mit der Sprach-Priorit&auml;t ein
    g&uuml;ltiges Ergebnis anstatt der Antwort <code>Status 406
    (NOT ACCEPTABLE)</code> zur&uuml;ck. L&auml;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&uuml;hrten Direktiven die erste Variante aus 
der
    <directive module="mod_negotiation"
    >LanguagePriority</directive>-Liste zur&uuml;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
    &uuml;bereinstimmende Variante f&uuml;r <directive
    module="mod_negotiation">LanguagePriority</directive> zur&uuml;ckgeliefert
    wird, wenn mehr als eine Variante akzeptabel ist, oder das erste
    verf&uuml;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&auml;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&uuml;hrt die Sprachen in absteigender
    Reihenfolge ihrer Priorit&auml;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&uuml;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]

Reply via email to