【发布时间】:2012-12-26 19:31:47
【问题描述】:
根据AJAX redirect dilemma, how to get redirect URL OR how to set properties for redirect request,似乎无法查明何时发生 HTTP 重定向,也无法查明浏览器重定向到的目标 URL。
因此,如何以可靠的方式比较两个 URL?例如,我的代码比较了两个 URL:
http://example.com/users/joe@home.com/ 和
http://example.com/users/53/
这两者实际上指的是同一个用户(第一个请求使用HTTP 303 重定向到第二个请求)但浏览器似乎没有办法发现这一点,因此它错误地认为这两个用户不同。
从技术上讲,资源表示可以包含其规范 URI,但如果可能,我想避免这种变通办法/黑客。有什么想法吗?
【问题讨论】:
-
最终要做什么?当然,如果 URI 的路径不同,它们就是两个不同的资源。那么你到底想达到什么目的呢?
-
@DanMan,你错了。 URI 可能不同,但它们引用相同的资源。这就是 URI 规范化的全部意义所在。 URI 标识对于缓存目的以及某些业务逻辑至关重要。例如,客户端想要对除自身之外的所有用户调用操作。如果它不能比较用户,它就不能将自己排除在处理之外。
-
如果每样东西都有它自己的、唯一的地址,你就不必考虑这个了。如果第二个 URI 是首选 URI,则应使用状态 301 重定向。
-
@DanMan,URI 规范化和使用状态 303 有充分的理由。我无法在此处详细介绍,但如果您阅读 RESTful Web Services,它们会得到详细解释。跨度>
标签: rest xmlhttprequest http-redirect