<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Content_Negotiation</id>
	<title>Content Negotiation - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Content_Negotiation"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Content_Negotiation&amp;action=history"/>
	<updated>2026-05-25T11:43:04Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Content_Negotiation&amp;diff=441365&amp;oldid=prev</id>
		<title>imported&gt;Aka: /* Weblinks */ https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Content_Negotiation&amp;diff=441365&amp;oldid=prev"/>
		<updated>2023-11-08T20:01:53Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Weblinks: &lt;/span&gt; https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Unter &amp;#039;&amp;#039;&amp;#039;Content Negotiation&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;Inhaltsvereinbarung&amp;#039;&amp;#039;)&amp;lt;ref&amp;gt;Ben Laurie, Peter Laurie: &amp;#039;&amp;#039;Apache. Das umfassende Handbuch.&amp;#039;&amp;#039; 2. Auflage. Deutsche Ausgabe der 3. Auflage. O’Reilly, Beijing u.&amp;amp;nbsp;a. 2003, ISBN 3-89721-356-7.&amp;lt;/ref&amp;gt; versteht man eine Technik im [[Hypertext Transfer Protocol]], die eine Abstimmung der Inhalte der angefragten Ressource aufgrund der Möglichkeiten und Vorzüge des [[Client]]s ermöglicht.&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
Im HTTP stehen zur Inhaltsvereinbarung die Anfrage-[[Header]]-Felder &amp;#039;&amp;#039;Accept&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Accept-Charset&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Accept-Encoding&amp;#039;&amp;#039; sowie &amp;#039;&amp;#039;Accept-Language&amp;#039;&amp;#039; zur Verfügung, die eine durch Kommas getrennte Liste bewerteter Eigenschaften beschreiben.&lt;br /&gt;
&lt;br /&gt;
; Accept&lt;br /&gt;
: Liste akzeptierter [[Internet Media Type|Inhaltstypen]]. Gegenstück in der Antwort ist das &amp;#039;&amp;#039;[[Content-Type]]&amp;#039;&amp;#039;-Feld&lt;br /&gt;
; Accept-Charset&lt;br /&gt;
: Liste akzeptierter [[Zeichensatz|Zeichensätze]] beziehungsweise [[Zeichenkodierung]]en. Gegenstück in der Antwort ist der &amp;#039;&amp;#039;charset&amp;#039;&amp;#039;-Parameter des &amp;#039;&amp;#039;Content-Type&amp;#039;&amp;#039;-Felds&lt;br /&gt;
; Accept-Encoding&lt;br /&gt;
: Liste akzeptierter Kodierungen. Gegenstück in der Antwort ist das &amp;#039;&amp;#039;Content-Encoding&amp;#039;&amp;#039;-Feld&lt;br /&gt;
; Accept-Language&lt;br /&gt;
: Liste akzeptierter Sprachen. Gegenstück in der Antwort ist das &amp;#039;&amp;#039;Content-Language&amp;#039;&amp;#039;-Feld&lt;br /&gt;
&lt;br /&gt;
Die Bewertung der Eigenschaften ist über den optionalen Qualitätsparameter &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt; möglich, der Werte zwischen 0&amp;amp;nbsp;(inakzeptabel) und 1&amp;amp;nbsp;(bevorzugt) erlaubt; fehlt dieser, wird der Standardwert 1 angenommen. Bei gleicher Wertigkeit wird je nach Header-Feld zusätzliche die Spezifität der Eigenschaft bei der Bestimmung der Reihenfolge herangezogen, wobei spezifischere den weniger spezifischen Eigenschaften vorgezogen werden.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich sollte bei der Nutzung von [[HTTP Caching|HTTP-Caching]]-Techniken in der Antwort des Webservers das &amp;#039;&amp;#039;Vary&amp;#039;&amp;#039;-Header-Feld diejenigen Header-Felder der Anfrage genannt werden, die bei der Abstimmung berücksichtigt wurden, die also zur eindeutigen Auswahl der gesendeten Repräsentation der Ressource führten.&lt;br /&gt;
&lt;br /&gt;
Falls die angeforderte URL eine generische ist, sie also die Repräsentation der Ressource nicht eindeutig beschreibt und stattdessen eine Inhaltsvereinbarung stattfindet, die ausgelieferte Repräsentation jedoch eine eigene spezifische URL besitzt, kann diese im &amp;#039;&amp;#039;Content-Location&amp;#039;&amp;#039;-Header-Feld angegeben werden.&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
Eine der am weitesten verbreiteten Anwendungen ist die automatische Auswahl der Sprache ({{enS|Language Negotiation}}). Dazu sendet der Client in seiner Anfrage das Feld &amp;#039;&amp;#039;Accept-Language&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
 GET /path/to/resource HTTP/1.1&lt;br /&gt;
 Host: example.com&lt;br /&gt;
 Accept-Language: de-de, de, en;q=0.5, fr;q=0.2&lt;br /&gt;
 ⋮&lt;br /&gt;
&lt;br /&gt;
Diese Angabe ist so zu interpretieren, dass der Client Deutsch, Englisch und Französisch akzeptiert, wobei allerdings [[bundesdeutsches Hochdeutsch]] vor allen anderen Deutsch-Varianten sowie vor Englisch und Französisch bevorzugt wird. Wenn der Server also über eine Version im bundesdeutschen Hochdeutsch, im [[Österreichisches Deutsch|österreichischen Deutsch]] und im [[Schweizer Hochdeutsch]] verfügt, sollte die bundesdeutsche Version ausgeliefert werden.&lt;br /&gt;
&lt;br /&gt;
Eine Antwort des Webservers könnte dann beispielsweise wie folgt aussehen, hier wird deutschsprachiger Content geladen, ohne eine Varietät des [[Standarddeutsch]]en zu spezifizieren:&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Language: de&lt;br /&gt;
 Content-Location: /de/path/to/resource&lt;br /&gt;
 Vary: Accept-Language&lt;br /&gt;
 ⋮&lt;br /&gt;
&lt;br /&gt;
== HTTP-Statuscodes ==&lt;br /&gt;
Das HTTP bietet spezielle [[HTTP#HTTP-Statuscodes|Statuscodes]] an, die der Server an den Client senden sollte, wenn eine inhaltliche Abstimmung nicht möglich war:&lt;br /&gt;
; 300 Multiple Choices&lt;br /&gt;
: Wird gesendet, wenn mehrere zu den in der Anfrage gestellten Bedingungen passenden Ressourcen an anderer Stelle zu finden sind oder der Server dem Client die Auswahl überlassen möchte. Die entsprechenden Adressen und Charakteristiken der Auswahlmöglichkeiten sollten im Dokument angegeben werden; der Server kann die Adresse eines von ihm bevorzugten Dokuments im &amp;#039;&amp;#039;Location&amp;#039;&amp;#039;-Header-Feld mitsenden.&lt;br /&gt;
; 406 Not Acceptable&lt;br /&gt;
: Wird gesendet, wenn die angefragte Ressource zwar existiert, die vom Client gesendeten Bedingungen aber nicht erfüllbar sind.&lt;br /&gt;
; 506 Variant Also Negotiates&amp;lt;ref name=&amp;quot;RFC2295&amp;quot;&amp;gt;{{RFC-Internet |RFC=2295 |Titel=Transparent Content Negotiation in HTTP |Datum=1998-03}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
: Die Inhaltsvereinbarung der Anfrage ergibt einen [[Zirkelbezug]].&lt;br /&gt;
&lt;br /&gt;
== Unterstützung durch Webserver ==&lt;br /&gt;
Der [[Apache HTTP Server]] bietet über das Modul &amp;lt;code&amp;gt;mod_negotiation&amp;lt;/code&amp;gt; die Möglichkeit mehrere Sprachen anzubieten, ohne viel aufwendige Konfiguration betreiben zu müssen. Dazu muss (in der Standardeinstellung) lediglich die [[ISO 639|ISO-639]]-Kennung der jeweiligen Sprache an den Dateinamen angehängt werden, so wird deutschen Browsern, die die Datei &amp;lt;code&amp;gt;foo.html&amp;lt;/code&amp;gt; anfordern, eigentlich die Datei &amp;lt;code&amp;gt;foo.html.de&amp;lt;/code&amp;gt; ausgeliefert. Hierzu erzeugt &amp;lt;code&amp;gt;mod_negotiation&amp;lt;/code&amp;gt; transparent typemaps.&amp;lt;ref&amp;gt;[https://httpd.apache.org/docs/current/mod/mod_negotiation.html httpd.apache.org]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{RFC-Internet |RFC=2616 |Titel=Hypertext Transfer Protocol – HTTP-1.1 |Datum=1999-06 |Obsoletes=2068 |Kommentar=Spezifikation}}&lt;br /&gt;
** Beschreibung der Header-Felder:&lt;br /&gt;
*** &amp;lt;code&amp;gt;Accept&amp;lt;/code&amp;gt; – {{RFC-Internet |RFC=2616 |Titel=HTTP-1.1 |Abschnitt=14.1}}&lt;br /&gt;
*** &amp;lt;code&amp;gt;Accept-Charset&amp;lt;/code&amp;gt; – {{RFC-Internet |RFC=2616 |Titel=HTTP-1.1 |Abschnitt=14.2}}&lt;br /&gt;
*** &amp;lt;code&amp;gt;Accept-Encoding&amp;lt;/code&amp;gt; – {{RFC-Internet |RFC=2616 |Titel=HTTP-1.1 |Abschnitt=14.3}}&lt;br /&gt;
*** &amp;lt;code&amp;gt;Accept-Language&amp;lt;/code&amp;gt; – {{RFC-Internet |RFC=2616 |Titel=HTTP-1.1 |Abschnitt=14.4}}&lt;br /&gt;
** {{RFC-Internet |RFC=2616 |Titel=HTTP-1.1 |Abschnitt=12 |Abschnittstitel=Content Negotiation}}&lt;br /&gt;
* {{RFC-Internet |RFC=2295 |Titel=Transparent Content Negotiation in HTTP |Datum=1998-03}}&lt;br /&gt;
* [https://httpd.apache.org/docs/2.0/content-negotiation.html Apache Content Negotiation.] apache.org (englisch)&lt;br /&gt;
* [https://www.w3.org/International/questions/qa-when-lang-neg.de Wann es angebracht ist, Sprachvereinbarung (language negotiation) einzusetzen.] W3C, I18n FAQ (deutsch).&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HTTP]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Aka</name></author>
	</entry>
</feed>