4

我正在构建一个 RESTful Web 服务,它的一个资源具有多个 URI,因为有多个唯一标识符。服务器应该通过返回资源来响应对备用 URI 的 GET 请求,还是应该向规范 URI 发送 HTTP 3xx 重定向?HTTP 303(另见)是最合适的重定向吗?

澄清:HTTP 规范明确指出,重定向的选择取决于未来的请求应该使用哪个 URI。在我的应用程序中,“规范”URI 是最稳定的替代方案;替代 URI 将始终指向相同的规范 URI,否则将变为无效。

4

3 回答 3

4

我个人会因为返回资源而不是使用重定向而变得丰满,尽管我怀疑这只是因为我的潜意识告诉我重定向更慢。

但是,如果您决定使用重定向,我认为 302 或 307 可能比 303 更合适,尽管w3.org有您可以使用的不同重定向代码的详细信息。

于 2008-08-28T07:59:53.457 回答
2

在 W3C 的万维网架构第一卷下,有一节关于 URI 别名(第 2.3.1 节),其中陈述如下:

“当 URI 别名确实成为通用货币时,URI 所有者应该使用诸如服务器端重定向之类的协议技术来关联这两种资源。当 URI 所有者支持将别名 URI 重定向到相应的“官方”URI 时,社区会受益。有关重定向的更多信息,请参阅RFC2616中的第 10.3 节,重定向。有关服务器管理员的一些最佳实践的讨论,另请参阅CHIPS 。

对于它的价值,我建议使用 302 重定向。

于 2008-08-28T08:26:01.710 回答
1

Ubiguchi 的回答满足了我的需要,只是我现在认为重定向是可行的方法,通过响应代码上 HTTP 1.1 规范部分的链接。事实证明,我实际上需要一个 301 重定向,因为我重定向到的 URI 更“正确”且更稳定,因此应该用于未来的请求。

于 2008-08-28T13:27:57.850 回答