spring mvc 控制器中 返回一个String,重定向,转发三者的区别

spring mvc 控制器中 InternalResourceViewResolver可以解析一个String,重定向(redirect:),或转发(forward:),那么三者的区别是什么啊,不都是根据最后的那个值,最后加个jsp后缀,然后返回该页面么

重定向是发一个302的状态码给浏览器,浏览器自己去请求跳转的网页。
forward是直接调用跳转的页面,让它返回,对于浏览器来说,它无法感觉服务器有没有forward。
好比你到一个机关办事,一个是办事窗口的那个人很不客气地说,这个事你别找我,你找xxx窗口,然后你自己跑到xxx窗口。
一个是窗口的人直接给你办了。
还有一个是窗口的人和你说,你等下,他自己跑去找另一个人沟通一番,然后跑回来给你办了。