300 Multiple Choices 表示目标资源有不止一种表示形式,每种都有自己的 URL,服务器希望由用户或用户代理来选择。典型的例子是同一文档的不同语言版本或不同文件格式。响应体应以链接形式列出这些选项。
如果服务器有首选项,应在 Location 响应头中发送该 URL。RFC 9110 允许用户代理自动跟随它,但浏览器并不会这样做:Fetch 标准只跟随 301、302、303、307 和 308,用户看到的是响应体。
300 响应可以被启发式缓存。由于自动协商并不可靠,大多数网站会自行选定一个版本,要么直接返回,要么使用常规重定向。
响应示例
HTTP
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 与重定向检测
常见原因与使用场景
- Apache 的
mod_speling找到多个可能与拼错的 URL 匹配的文件,并将它们列出。 - 内容协商列出可用的语言或格式版本,而不是自行选择一个。
- API 提供同一文档的多种格式,让客户端自行选择。