我可以使用转发而不是重定向来提高效率吗?
can i use forward instead of redirect for efficiency?
我已经阅读了转发和重定向的区别。
http://grails.asia/grails-redirect-vs-forward
对于这个幼稚的问题感到抱歉,但在我看来,由于重定向返回到浏览器并且浏览器发出新请求,转发似乎更有效率。所以我想知道为什么在通过使用效率更高的转发来实现相同目的时完全使用重定向?是否存在正确使用重定向而不是转发的情况。感谢帮助!
这里的主要区别是浏览器在重定向中获得 "touched"(已经提到)。
登录use-case的演示很简单。
用户获得 /login
页面并向 /doLogin
提交登录表单,结果显示他的 /profile
页面。登录操作验证用户输入。
关键区别在于:如果操作执行 forward
操作,则用户将在 url-box 中看到 /doLogin
。这就是该操作应该执行 redirect
的原因,以便用户在 url-box 中看到 /profile
并且浏览器可以正确处理 back-navigation。
对于不需要在浏览器历史记录中考虑的任何状态更改的其他操作,您可以使用 forward
。
我已经阅读了转发和重定向的区别。
http://grails.asia/grails-redirect-vs-forward
对于这个幼稚的问题感到抱歉,但在我看来,由于重定向返回到浏览器并且浏览器发出新请求,转发似乎更有效率。所以我想知道为什么在通过使用效率更高的转发来实现相同目的时完全使用重定向?是否存在正确使用重定向而不是转发的情况。感谢帮助!
这里的主要区别是浏览器在重定向中获得 "touched"(已经提到)。
登录use-case的演示很简单。
用户获得 /login
页面并向 /doLogin
提交登录表单,结果显示他的 /profile
页面。登录操作验证用户输入。
关键区别在于:如果操作执行 forward
操作,则用户将在 url-box 中看到 /doLogin
。这就是该操作应该执行 redirect
的原因,以便用户在 url-box 中看到 /profile
并且浏览器可以正确处理 back-navigation。
对于不需要在浏览器历史记录中考虑的任何状态更改的其他操作,您可以使用 forward
。