Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
506 Variant Also Negotiates
Der HTTP-Statuscode 506 Variant Also Negotiates Serverfehler-Antwort wird während der Inhaltsverhandlung zurückgegeben, wenn es in dem Prozess der Ressourcenauswahl zu einer rekursiven Schleife kommt.
Agentengesteuerte Inhaltsverhandlung ermöglicht es einem Client und Server, gemeinsam die beste Variante einer Ressource zu bestimmen, wenn der Server mehrere Varianten hat. Ein Server sendet einen 506-Statuscode aufgrund von Server-Fehlkonfigurationen, die zu zirkulären Referenzen bei der Erstellung von Antworten führen.
Das Fehlen einer Standardisierung, wie Clients automatisch aus Antworten auswählen, und die zusätzlichen Round-Trips, die die Interaktion zwischen Client und Server verlangsamen, führen dazu, dass dieses Verfahren selten genutzt wird. Servergesteuerte Inhaltsverhandlung ist weit verbreiteter, wobei ein Server direkt die passendste Ressource für den Client basierend auf den Anfrage-Headern (Accept-Language, Accept, etc.) wählt.
Status
506 Variant Also Negotiates
Beispiele
>Ressource mit Varianten
Im folgenden Beispiel fordert ein Client eine Seite in der fr Lokalisierung mit dem Accept-Language Header an. Dies kann mit curl durchgeführt werden:
curl -H "Negotiate: trans" -H "Accept-Language: fr;" http://example.com/index
Dies erzeugt die folgende Anfrage:
GET /index HTTP/1.1
Host: example.com
User-Agent: curl/8.7.1
Accept: */*
Negotiate: trans
Accept-Language: fr
Aufgrund einer Server-Fehlkonfiguration verweist die Variantenantwort für fr auf eine Type Map, die selbst zu einer transparenten Verhandlung führt. Der Server kann diesen Zustand durch das Vorhandensein eines TCN Headers in einer Auswahlantwort erkennen, bevor sie gesendet wird:
HTTP/1.1 506 Variant Also Negotiates
Date: 2024年7月22日 10:00:00 GMT
Server: Apache/2.4.41 (Unix)
Content-Type: text/html; charset=UTF-8
Content-Length: 233
TCN: list
Vary: negotiate,accept-language
Alternates: {"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
| Spezifikation |
|---|
| RFC 2295> # section-8.1> |
Siehe auch
300 Multiple Choices- RFC 2295
- Content negotiation
- HTTP-Antwort-Statuscodes
- Content Negotiation in der Apache HTTP Server-Dokumentation
- Apache httpd
mod_negotiation.cQuelle, die Bedingungen zeigt, dieHTTP_VARIANT_ALSO_VARIESAntwort auslösen.