Movatterモバイル変換


[0]ホーム

URL:


  1. 開発者向けのウェブ技術
  2. HTTP
  3. リファレンス
  4. HTTP レスポンスステータスコード
  5. 300 Multiple Choices

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。

View in EnglishAlways switch to English

300 Multiple Choices

HTTP の300 Multiple Choicesリダイレクトレスポンスステータスコードで、リクエストに対して複数のレスポンスがあることを示します。ユーザーエージェントやユーザーは、その内から一つを選択します。

メモ:エージェント駆動型コンテンツネゴシエーションでは、サーバーに複数の候補が存在する場合、クライアントとサーバーが共同で指定されたリソースの最適な候補を決定します。ほとんどのクライアントは、レスポンスから自動的に選択する手段を持っていません。また、追加の往復通信により、クライアントとサーバーの対話が遅くなります。サーバー駆動型コンテンツネゴシエーションの方がはるかに広く使用されており、サーバーはリクエストヘッダー(Accept-LanguageAccept など)に基づいて、クライアントに最も適したリソースを選べます。

サーバーは、ユーザーまたはユーザーエージェントが選択できるリソースメタデータと URI のリストを含むコンテンツをレスポンスに含めるべきです。コンテンツの形式は実装に依存しますが、ユーザーエージェントによって簡単に解析できる形式(HTML や JSON など)であるべきです。

サーバーが推奨する選択肢がある場合は、Location ヘッダーを生成してください。

ステータス

http
300 Multiple Choices

リソースのリストがついた 300 レスポンス

次の例は、透過的コンテンツネゴシエーションのリクエストとレスポンスのやり取りを示しています。Apache サーバーは、型マップで定義されたリソースの複数の版を、入力する言語に応じて、英語のコンテンツにはindex.html.en、フランス語のコンテンツにはindex.html.fr というように提供します。

http
URI: index.html.enContent-Language: enURI: index.html.frContent-Language: fr

Negotiate: trans リクエストヘッダーは、クライアントが TCN を使用してリソースを選べます。このメカニズムに対応するブラウザーが少ないということは、代わりに curl などのユーザーエージェントが使用されているということになります。

bash
 curl -v -H "Negotiate: trans" http://localhost/index

これは、次のリクエストを生成します。

http
GET /index HTTP/1.1Host: localhostUser-Agent: curl/8.7.1Accept: */*Negotiate: trans

リクエストされたリソースのさまざまな表現の詳細とともに、300 のレスポンスを受け取ります。

http
HTTP/1.1 300 Multiple ChoicesDate: Fri, 30 Aug 2024 09:21:48 GMTServer: Apache/2.4.59 (Unix)Alternates: {"index.html.en" 1 {type text/html} {language en} {length 48}}, {"index.html.fr" 1 {type text/html} {language fr} {length 45}}Vary: negotiate,accept-languageTCN: listContent-Length: 419Content-Type: text/html; charset=iso-8859-1<html><head><title>300 Multiple Choices</title></head><body><h1>Multiple Choices</h1>Available variants:<ul><li><a href="index.html.en">index.html.en</a> , type text/html, language en</li><li><a href="index.html.fr">index.html.fr</a> , type text/html, language fr</li></ul></body></html>

仕様書

Specification
HTTP Semantics
# status.300

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp