我在MVC控制器中有一些逻辑,这可能会导致URL参数被忽略,从而导致URL可能会被误导
举个例子:
如果以下URL的控制器中的GET处理程序逻辑:
http://example.com/results?sortByField=10&search=full&locationId=1
忽略sortByField的值并使用其他参数类型计算值
例如:
if (search="full" && locationId = 1)
then
//sort results by field 1
else
//sort results by sortByField paramater这意味着URL意味着结果是按字段10排序的,而实际排序字段是1。
一种解决方案是执行302重定向到原始URL,以便在上面的if语句中修改sortByField=1。这将导致一个干净的URL,它反映了页面的行为,但会导致额外的往返,而且似乎也不完全符合302重定向的定义。
任何关于这是否重要的想法,以及使用重定向的利弊,我都很感谢。
发布于 2014-12-17 20:32:12
如果您正在规范化URL,则301是要使用的状态代码。客户端已请求:
http://example.com/results?sortByField=10&search=full&locationId=1并被重定向至:
http://example.com/results?sortByField=1&search=full&locationId=1以后应该始终使用第二个URL。
有没有想过这是否重要
如果您希望您的客户检查他们正在使用的URL,那么这是一种很好的自我文档化方法。缓存也有好处。
这当然是REST完全有效的;额外的往返是否值得,实际上取决于您正在运行的站点的性能问题。
https://stackoverflow.com/questions/27521661
复制相似问题