www.wikidata.de-de.nina.az
Unter Content Negotiation Inhaltsvereinbarung 1 versteht man eine Technik im Hypertext Transfer Protocol die eine Abstimmung der Inhalte der angefragten Ressource aufgrund der Moglichkeiten und Vorzuge des Clients ermoglicht Inhaltsverzeichnis 1 Funktionsweise 2 Beispiel 3 HTTP Statuscodes 4 Unterstutzung durch Webserver 5 Weblinks 6 EinzelnachweiseFunktionsweise BearbeitenIm HTTP stehen zur Inhaltsvereinbarung die Anfrage Header Felder Accept Accept Charset Accept Encoding sowie Accept Language zur Verfugung die eine durch Kommas getrennte Liste bewerteter Eigenschaften beschreiben Accept Liste akzeptierter Inhaltstypen Gegenstuck in der Antwort ist das Content Type Feld Accept Charset Liste akzeptierter Zeichensatze beziehungsweise Zeichenkodierungen Gegenstuck in der Antwort ist der charset Parameter des Content Type Felds Accept Encoding Liste akzeptierter Kodierungen Gegenstuck in der Antwort ist das Content Encoding Feld Accept Language Liste akzeptierter Sprachen Gegenstuck in der Antwort ist das Content Language FeldDie Bewertung der Eigenschaften ist uber den optionalen Qualitatsparameter q moglich der Werte zwischen 0 inakzeptabel und 1 bevorzugt erlaubt fehlt dieser wird der Standardwert 1 angenommen Bei gleicher Wertigkeit wird je nach Header Feld zusatzliche die Spezifitat der Eigenschaft bei der Bestimmung der Reihenfolge herangezogen wobei spezifischere den weniger spezifischen Eigenschaften vorgezogen werden Zusatzlich sollte bei der Nutzung von HTTP Caching Techniken in der Antwort des Webservers das Vary Header Feld diejenigen Header Felder der Anfrage genannt werden die bei der Abstimmung berucksichtigt wurden die also zur eindeutigen Auswahl der gesendeten Reprasentation der Ressource fuhrten Falls die angeforderte URL eine generische ist sie also die Reprasentation der Ressource nicht eindeutig beschreibt und stattdessen eine Inhaltsvereinbarung stattfindet die ausgelieferte Reprasentation jedoch eine eigene spezifische URL besitzt kann diese im Content Location Header Feld angegeben werden Beispiel BearbeitenEine der am weitesten verbreiteten Anwendungen ist die automatische Auswahl der Sprache englisch Language Negotiation Dazu sendet der Client in seiner Anfrage das Feld Accept Language GET path to resource HTTP 1 1 Host example com Accept Language de de de en q 0 5 fr q 0 2 Diese Angabe ist so zu interpretieren dass der Client Deutsch Englisch und Franzosisch akzeptiert wobei allerdings bundesdeutsches Hochdeutsch vor allen anderen Deutsch Varianten sowie vor Englisch und Franzosisch bevorzugt wird Wenn der Server also uber eine Version im bundesdeutschen Hochdeutsch im osterreichischen Deutsch und im Schweizer Hochdeutsch verfugt sollte die bundesdeutsche Version ausgeliefert werden Eine Antwort des Webservers konnte dann beispielsweise wie folgt aussehen hier wird deutschsprachiger Content geladen ohne eine Varietat des Standarddeutschen zu spezifizieren HTTP 1 1 200 OK Content Language de Content Location de path to resource Vary Accept Language HTTP Statuscodes BearbeitenDas HTTP bietet spezielle Statuscodes an die der Server an den Client senden sollte wenn eine inhaltliche Abstimmung nicht moglich war 300 Multiple Choices 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 uberlassen mochte Die entsprechenden Adressen und Charakteristiken der Auswahlmoglichkeiten sollten im Dokument angegeben werden der Server kann die Adresse eines von ihm bevorzugten Dokuments im Location Header Feld mitsenden 406 Not Acceptable Wird gesendet wenn die angefragte Ressource zwar existiert die vom Client gesendeten Bedingungen aber nicht erfullbar sind 506 Variant Also Negotiates 2 Die Inhaltsvereinbarung der Anfrage ergibt einen Zirkelbezug Unterstutzung durch Webserver BearbeitenDer Apache HTTP Server bietet uber das Modul mod negotiation die Moglichkeit mehrere Sprachen anzubieten ohne viel aufwendige Konfiguration betreiben zu mussen Dazu muss in der Standardeinstellung lediglich die ISO 639 Kennung der jeweiligen Sprache an den Dateinamen angehangt werden so wird deutschen Browsern die die Datei foo html anfordern eigentlich die Datei foo html de ausgeliefert Hierzu erzeugt mod negotiation transparent typemaps 3 Weblinks BearbeitenRFC 2616 Hypertext Transfer Protocol HTTP 1 1 Juni 1999 lost RFC 2068 ab Spezifikation englisch Beschreibung der Header Felder Accept RFC 2616 HTTP 1 1 Abschnitt 14 1 englisch Accept Charset RFC 2616 HTTP 1 1 Abschnitt 14 2 englisch Accept Encoding RFC 2616 HTTP 1 1 Abschnitt 14 3 englisch Accept Language RFC 2616 HTTP 1 1 Abschnitt 14 4 englisch RFC 2616 HTTP 1 1 Abschnitt 12 Content Negotiation englisch RFC 2295 Transparent Content Negotiation in HTTP Marz 1998 englisch Apache Content Negotiation apache org englisch Wann es angebracht ist Sprachvereinbarung language negotiation einzusetzen W3C I18n FAQ deutsch Einzelnachweise Bearbeiten Ben Laurie Peter Laurie Apache Das umfassende Handbuch 2 Auflage Deutsche Ausgabe der 3 Auflage O Reilly Beijing u a 2003 ISBN 3 89721 356 7 RFC 2295 Transparent Content Negotiation in HTTP Marz 1998 englisch httpd apache org Abgerufen von https de wikipedia org w index php title Content Negotiation amp oldid 238934871