Статус: 300
300 Несколько вариантов
Код состояния HTTP 300 Multiple Choices ответа перенаправления указывает, что у запроса есть несколько возможных ответов. Пользовательский агент или пользователь должен выбрать один из них.
Примечание: При согласовании содержимого под управлением агента клиент и сервер совместно выбирают лучший вариант заданного ресурса, если у сервера есть несколько вариантов. В большинстве клиентов нет способа автоматически выбирать ответ, а дополнительные циклы обмена данными замедляют взаимодействие клиента и сервера. Гораздо чаще используется согласование содержимого под управлением сервера, при котором сервер выбирает наиболее подходящий для клиента ресурс на основе заголовков запроса (Accept-Language, Accept и т. д.).
Сервер должен включить в ответ содержимое со списком метаданных ресурсов и URI, из которых пользователь или пользовательский агент может выбрать нужный вариант. Формат содержимого зависит от реализации, но должен легко разбираться пользовательским агентом (например, HTML или JSON).
Если сервер предпочитает вариант, который клиенту следует запросить, он может указать его в заголовке Location.
Статус
300 Multiple Choices
Примеры
>Ответ 300 со списком ресурсов
В следующем примере показан обмен запросом и ответом при прозрачном согласовании содержимого. Сервер Apache предлагает несколько вариантов ресурса, определённых в карте типов: index.html.en для ресурса на английском языке и index.html.fr для французской версии:
URI: index.html.en Content-Language: en URI: index.html.fr Content-Language: fr
Заголовок запроса Negotiate: trans указывает, что клиент хочет использовать TCN для выбора ресурса. Из-за слабой поддержки этого механизма браузерами вместо них необходимо использовать пользовательский агент, например curl:
curl -v -H "Negotiate: trans" http://localhost/index
В результате формируется следующий запрос:
GET /index HTTP/1.1 Host: localhost User-Agent: curl/8.7.1 Accept: */* Negotiate: trans
Мы получаем ответ 300 с описанием различных представлений запрошенного ресурса:
HTTP/1.1 300 Multiple Choices
Date: Fri, 30 Aug 2024 09:21:48 GMT
Server: 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-language
TCN: list
Content-Length: 419
Content-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>
Спецификации
| Спецификация |
|---|
| Семантика HTTP> # status.300> |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/300