您好,我想拒绝传入的请求,在我的Jetty.I中有太大的主体或头部。我想我必须设置一些过滤器,但我还没有找到任何解决方案。你有什么意见建议?谢谢。
发布于 2015-04-24 21:19:34
很容易构建一个Servlet Filter或Jetty Handler,它关注请求的Content-Length头,然后拒绝(用http错误状态码响应)请求。
至于报头大小限制,这是由HttpConfiguration.setRequestHeaderSize(int)控制的
然而,有一类请求,它使用分块的Transfer-Encoding,对于这些类型的请求,没有Content-Length,当它达到一定大小后,您只能在从HttpServletRequest.getInputStream()读取请求时拒绝它。
还有Mime多部分请求正文内容的复杂性,以及如何确定请求内容太大。
不幸的是,另一个注意事项是,由于HTTP连接处理必须执行的方式,即使客户端向您发送了太多的请求正文内容,服务器仍然必须读取整个正文内容并将其丢弃。这是在规范中发现的半封闭场景,它由客户端来查看早期拒绝的http响应并关闭/终止连接。
https://stackoverflow.com/questions/29846735
复制相似问题