2016-08-24 93 views
1

我最近从Tomcat切换到Jetty,从那以后,我可以在我的日志中看到这种WARN。如何为414 URI产生自定义错误响应太大

WARN org.eclipse.jetty.http.HttpParser - URI太大> 65535

WARN org.eclipse.jetty.http.HttpParser - 坏HTTP解析:414 HttpChannelOverHttp @ 34ff28 {R = 0,c = false,a = IDLE,uri = null}

我正在寻找一种方法来更改返回的响应(我希望对通过返回的HTML进行json响应默认)并且不记录警告。这是可以做到的吗?经过一番研究之后,似乎这个错误是在任何地方我可以注入一些代码来处理这个问题之前记录的(例如servlet过滤器为例)

回答

0

这是错误的类别,称为“错误请求”并发生在处理传入请求时,很早就有

为请求

400 Bad Request    (common) 
412 Precondition Failed  (rather esoteric, rare) 
413 Request Entity Too Large (very common) 
414 URI Too Long    (very common) 
431 Requested Header Fields Too Large (not produced by Jetty, yet) 

错误请求的一些实例没有请求URI,并且因此不能被向下发送到该上下文来处理它的上下文。

这类坏的请求也没有头,所以你甚至不能检查Accept头作出一项决定,如果你甚至应该发回一个响应为application/json

最常见的原因,人们看到这些响应代码:

  • 东西是端口扫描
  • 客户端试图连接到你的HTTP服务器,但不是HTTP客户端(例如:错误配置的电子邮件客户端)
  • 的请求从一个严重实现HTTP用户代理
  • 有人正在探测的服务器的漏洞(其中有许多周围各种请求元数据的溢出)
  • 使用服务器的制造(例如,API) (例如:尝试将大型文档作为编码查询字符串发送)
+0

然后我才有意义返回HTML响应。对于日志记录,如果我理解正确,那么在Jetty中没有办法自定义这种行为(比如说在INFO级别而不是WARN进行日志记录)? – jrochette

相关问题