Spec-Zone.ru › HTTP

Статус: 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>

См. также

  • Перенаправления в HTTP
  • Коды состояния ответа HTTP
  • 301 Moved Permanently
  • 302 Found временное перенаправление
  • 308 Permanent Redirect
  • 506 Variant Also Negotiates
  • Алгоритм согласования сервера Apache
  • RFC 2295: прозрачное согласование содержимого в HTTP

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API