Java 如何在检查Servlet中的头之后删除请求体
在继续正文之前,我想检查请求的头是否包含某个头。例如,我想检查多部分/表单数据是否在标题中包含Java 如何在检查Servlet中的头之后删除请求体,java,servlets,Java,Servlets,在继续正文之前,我想检查请求的头是否包含某个头。例如,我想检查多部分/表单数据是否在标题中包含“Authorization”。如果不是,则不需要继续上载多部分正文,因为对于文件上载来说,多部分正文通常非常大 servlet允许您这样做吗?我曾尝试在谷歌上随机搜索,但没有运气。下面是我在servlet中尝试的代码,但在调用此doPost方法之前,它仍然继续接收主体。在调用servlet之前,流似乎已被完全接收 @Override protected void doPost(HttpServletR
“Authorization”
。如果不是,则不需要继续上载多部分正文,因为对于文件上载来说,多部分正文通常非常大
servlet允许您这样做吗?我曾尝试在谷歌上随机搜索,但没有运气。下面是我在servlet中尝试的代码,但在调用此doPost
方法之前,它仍然继续接收主体。在调用servlet之前,流似乎已被完全接收
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
response.setContentType("text/plain");
if (request.getHeader("Authorization") == null) {
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
out.println("Status: " + HttpServletResponse.SC_UNAUTHORIZED + " - UNAUTHORIZED");
return;
}
// ... the rests
}
这就是HTTP的局限性。当请求尚未完全读取到结尾时,您无法发送响应。RFC 2616说明: 发送消息体的HTTP/1.1(或更高版本)客户端在传输请求时应监视网络连接的错误状态。如果客户端看到错误状态,它应该立即停止传输正文
所以我不同意,这不是HTTP限制,而是servlet限制。我记得和一位朋友谈过,有一些程序可以通过检查头部来阻止攻击,并确定是否应该在完全接收正文之前断开连接。我只是想知道,如果这是HTTP的限制,那么这意味着通过发送大带宽攻击网站是可能的,对吗?Servlet API不提供任何中断HTTP连接的工具。你知道客户端是否真的支持这一点吗?