2016-08-24 49 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

相關問題