Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
506 Variant Also Negotiates
Der HTTP-Statuscode506 Variant Also NegotiatesServer-Fehlerantwort wird während der Inhaltsaushandlung zurückgegeben, wenn es eine rekursive Schleife im Prozess der Ressourcenauswahl gibt.
Agentengesteuerte Inhaltsaushandlung ermöglicht es einem Client und einem Server gemeinsam zu entscheiden, welche Variante einer gegebenen Ressource am besten geeignet ist, wenn der Server mehrere Varianten hat. Ein Server sendet einen506 Statuscode aufgrund einer Serverfehlkonfiguration, die zu zirkulären Referenzen bei der Erstellung von Antworten führt.
Der Mangel an Standardisierung dafür, wie Clients automatisch aus Antworten wählen, und die zusätzlichen Round-Trips, die die Client-Server-Interaktion verlangsamen, bedeuten, dass dieser Mechanismus selten verwendet wird.Servergesteuerte Inhaltsaushandlung ist weitaus verbreiteter, wobei ein Server direkt die am besten geeignete Ressource für den Client basierend auf den Anfrage-Headern (Accept-Language,Accept, etc.) auswählt.
In diesem Artikel
Status
506 Variant Also NegotiatesBeispiele
>Ressource mit Varianten
Im folgenden Beispiel fordert ein Client eine Seite in derfr-Lokalisierung mittels desAccept-Language Headers an.Dies kann mit curl durchgeführt werden:
curl -H "Negotiate: trans" -H "Accept-Language: fr;" http://example.com/indexDies erzeugt die folgende Anfrage:
GET /index HTTP/1.1Host: example.comUser-Agent: curl/8.7.1Accept: */*Negotiate: transAccept-Language: frAufgrund einer Serverfehlkonfiguration verweist die Variantenantwort fürfr auf eineTypkarte, die selbst eine transparente Aushandlung verursacht. Der Server kann diesen Zustand anhand des Vorhandenseins einesTCN Headers in einer Auswahlantwort erkennen, bevor sie gesendet wird:
HTTP/1.1 506 Variant Also NegotiatesDate: Mon, 22 Jul 2024 10:00:00 GMTServer: Apache/2.4.41 (Unix)Content-Type: text/html; charset=UTF-8Content-Length: 233TCN: listVary: negotiate,accept-languageAlternates: {"index.html.en" 1 {type text/html} {language en} {length 48}}, {"another-map.html.fr.map" 1 {type text/html} {language fr} {length 45}}}}<html><head> <title>506 Variant Also Negotiates</title></head><body> <h1>Variant Also Negotiates</h1> <p>A variant for the requested resource is itself a negotiable resource. This indicates a configuration error.</p></body></html>Spezifikationen
| Specification |
|---|
| RFC 2295> # section-8.1> |
Siehe auch
300 Multiple Choices- RFC 2295
- Inhaltsaushandlung
- HTTP-Antwortstatuscodes
- Inhaltsaushandlung in der Apache HTTP Server-Dokumentation
- Apache httpd
mod_negotiation.cQuellcode, der Bedingungen zeigt, dieHTTP_VARIANT_ALSO_VARIESAntwort auslösen.