Java SpringWeb控制器如何确定重定向的HTTP状态代码
我有一个SpringMVC应用程序,它有一个导致重定向的端点——请参阅下面的代码 我注意到Spring为此重定向返回的HTTP状态代码是Java SpringWeb控制器如何确定重定向的HTTP状态代码,java,spring,spring-mvc,Java,Spring,Spring Mvc,我有一个SpringMVC应用程序,它有一个导致重定向的端点——请参阅下面的代码 我注意到Spring为此重定向返回的HTTP状态代码是307。我的问题是为什么Spring选择返回307而不是301或302 这仅仅是因为GET和POST两种方法都可以在这个端点上使用,而且307是客户端可以执行的最不允许的响应,因此Spring将其作为默认实现 import org.springframework.web.bind.annotation.RequestMapping; import org.spr
307
。我的问题是为什么Spring选择返回307
而不是301
或302
这仅仅是因为GET
和POST
两种方法都可以在这个端点上使用,而且307
是客户端可以执行的最不允许的响应,因此Spring将其作为默认实现
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@RequestMapping(value = "/login", method = {RequestMethod.GET, RequestMethod.POST})
public String loginAttemptWithoutCookie() {
return "redirect:" + "/some/other/url;
}
所有现代浏览器将自动检测302 302 实际上,将考虑
3xx
类别中的所有HTTP响应状态代码
重定向消息,所有现代浏览器将自动检测302
找到的响应代码,并自动处理临时重定向操作
307
实际上307
来自管理端的内部重定向
客户端单击购物车项目,然后浏览器将一篇帖子发送到/cart-items.html,然后告诉它在/purchase-selected-items.php重定向帖子
意思是,Spring正在尝试重定向自定义(管理员已经创建的视图)视图,而不使用默认重定向302已被303或307取代(替换)。因此,新版本的Spring中出现了307。