java - 为什么 Spring "ForwardedHeaderFilter" 和 "RelativeRedirectFilter" 使用代码 303 而不是 302 重定向?
问题描述
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
FilterChain filterChain) throws ServletException, IOException {
if (this.removeOnly) {
ForwardedHeaderRemovingRequest wrappedRequest = new ForwardedHeaderRemovingRequest(request);
filterChain.doFilter(wrappedRequest, response);
}
else {
HttpServletRequest wrappedRequest =
new ForwardedHeaderExtractingRequest(request);
HttpServletResponse wrappedResponse = this.relativeRedirects ?
RelativeRedirectResponseWrapper.wrapIfNecessary(response, HttpStatus.SEE_OTHER) :
new ForwardedHeaderExtractingResponse(response, wrappedRequest);
filterChain.doFilter(wrappedRequest, wrappedResponse);
}
}
public class RelativeRedirectFilter extends OncePerRequestFilter {
private HttpStatus redirectStatus = HttpStatus.SEE_OTHER;
“302”和“303”有什么区别?为什么 Spring 使用“303”而不是“302”?
解决方案
推荐阅读
- excel - Excel堆积面积图未到达图形边缘
- c++ - 如果 char 和 int 仅在位数上有所不同,为什么它们在打印时会有所不同?
- deep-learning - 计算相机和不同大小物体之间的距离
- javascript - Mui-Datatables 中的“更改 rowsPerPage”逻辑
- r - R - 功能:数据的逻辑转换?
- c# - 我如何知道我的 Asp.Net Web 应用程序是否是同步 -> 异步死锁的受害者?
- javascript - react JS,异步等待访问承诺值
- javascript - 这里发生了什么我试图围绕递归和这个返回函数
- node.js - 有没有人通过 AAD 成功连接 SQL Server - NodeJS 项目的托管标识?
- javascript - 如何设置传单标记不透明度?