308 重定向 (Permanent Redirect) 是 RFC 7538 中定义的永久重定向状态码。它与 301 的关系类似于 307 与 302 的关系:308 表示永久移动,同时严格要求保持原始请求方法不变。
308 的引入解决了 301 重定向的同样歧义问题。虽然 HTTP 规范规定 301 重定向应保持请求方法,但实际上大多数浏览器会将 POST 请求改为 GET。308 明确消除了这种不确定性。欢迎参阅在 Amazon 搜索 Web 协议书籍。
在实际应用中,308 重定向主要用于 API 端点的永久迁移场景,确保客户端在重定向后仍然使用正确的 HTTP 方法。对于 URL 缩短服务,308 的使用场景较少,因为短链接的访问主要是 GET 请求。
了解 301、302、307、308 四种重定向状态码的区别对于 Web 开发者至关重要。选择正确的状态码不仅影响浏览器行为和 SEO,还关系到 API 的正确性和安全性。在 Amazon 搜索 Web 开发进阶书籍系统地介绍了这些概念。