このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
506 Variant Also Negotiates
HTTP の506 Variant Also Negotiates はサーバーエラーレスポンスステータスコードで、コンテンツの選択プロセスに再帰ループがある場合、コンテンツネゴシエーション中に返されます。
エージェント駆動型コンテンツネゴシエーションにより、サーバーが複数の版を保有している場合に、クライアントとサーバーが協調して指定されたリソースの最適な版を決定することができます。サーバーがレスポンスを作成する際にサーバーの誤設定により、自分自身への循環参照が発生した場合、サーバーは506 ステータスコードを送信します。
クライアントがレスポンスから自動的に選べる方法の標準化が欠如しており、クライアントとサーバーの操作が遅くなる追加の往復があるため、このメカニズムはほとんど使用されていないということ意味しています。サーバー駆動型コンテンツネゴシエーションの方がはるかに一般的であり、サーバーはリクエストヘッダー(Accept-Language、Accept など)に基づいて、クライアントに最も適したリソースを直接選べます。
In this article
ステータス
506 Variant Also Negotiates例
>別な版のあるリソース
次の例では、クライアントがAccept-Language ヘッダーを使用してfr ロケールのページをリクエストしています。これは、curl を使用して実行することができます。
curl -H "Negotiate: trans" -H "Accept-Language: fr;" http://example.com/indexこれにより、次のリクエストが生成されます。
GET /index HTTP/1.1Host: example.comUser-Agent: curl/8.7.1Accept: */*Negotiate: transAccept-Language: frサーバーの誤設定により、fr に対する様々なレスポンスが、それ自体が「透過的ネゴシエーション」を発生させるタイプマップを指しています。サーバーは、送信される前の選択レスポンスにTCN ヘッダーが存在することで、この状態を検出できるかもしれません。
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>仕様書
| Specification |
|---|
| RFC 2295> # section-8.1> |
関連情報
300 Multiple Choices- RFC 2295
- コンテンツネゴシエーション
- HTTP レスポンスステータスコード
- Content Negotiation (Apache HTTP Server ドキュメント)
- Apache httpd
mod_negotiation.csource は、HTTP_VARIANT_ALSO_VARIESレスポンスの発生する条件を示しています。