含义
资源有多种表示(语言、格式),需要客户端或用户选择其一。服务器可以通过 Location 推荐首选项。
常见原因
- 内容协商无法在多个变体中做出选择
- 服务器列出可选的格式或语言
解决方法
客户端或访问者
如有 Location 就跟随它,否则从列出的链接中选择。浏览器不会自动选择。
网站或 API 的维护者
优先使用服务器驱动的协商(Accept、Accept-Language),直接返回最匹配的 200;300 很少是最好的用户体验。
响应示例
HTTP/1.1
HTTP/1.1 300 Multiple Choices
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Link: </doc.en.html>; rel=alternate; hreflang=en
Link: </doc.de.html>; rel=alternate; hreflang=de
Content-Length: 0 规范
常见问题
› 浏览器会自动跟随 300 吗?
如果有 Location 头,有些浏览器会跟随;否则用户会看到带选项的页面内容。
› 多语言网站适合用 300 吗?
通常不适合。可以用 302 重定向,或直接提供正确语言并加上 hreflang 链接。