300 Multiple Choices означает, что у целевого ресурса несколько представлений, у каждого свой URL, и сервер хочет, чтобы выбор сделал пользователь или пользовательский агент. Типичные примеры — один и тот же документ на разных языках или в разных форматах. В теле ответа должен быть список вариантов со ссылками.
Если у сервера есть предпочтительный вариант, он должен передать его URL в заголовке Location. RFC 9110 разрешает пользовательским агентам переходить по нему автоматически, но браузеры этого не делают: стандарт Fetch предусматривает автоматический переход только для 301, 302, 303, 307 и 308. Вместо этого пользователь видит тело ответа.
Ответ 300 кэшируется эвристически. Автоматическое согласование работает ненадежно, поэтому большинство сайтов сами выбирают вариант и либо сразу отдают его, либо используют обычный редирект.
Пример ответа
HTTP/1.1 300 Multiple Choices
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: https://www.example.com/guide.en.html
Content-Type: text/html; charset=utf-8
Content-Length: 102
<ul>
<li><a href="/guide.en.html">English</a></li>
<li><a href="/guide.de.html">Deutsch</a></li>
</ul> SEO и проверка редиректов
Код 300 встречается редко и плохо поддерживается поисковыми роботами, поэтому не полагайтесь на него, чтобы распределять посетителей или ботов. Для разных языков используйте отдельные URL, связанные аннотациями hreflang. Если вы перенаправляете посетителей в зависимости от языка или устройства, используйте 302 или 307 и оставьте версию по умолчанию, доступную поисковым роботам. Браузеры на коде 300 останавливаются, поэтому при аудите редиректов считайте его концом цепочки.
Типичные причины и сценарии использования
- Модуль Apache
mod_spelingнаходит несколько файлов, подходящих под URL с опечаткой, и выводит их список. - Согласование содержимого выводит список доступных языковых вариантов или форматов вместо того, чтобы выбрать один.
- API предлагает документ в нескольких форматах и дает клиенту выбрать.