萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> ”Your browser sent a request that this server could not understand“什麼意思

”Your browser sent a request that this server could not understand“什麼意思

   錯誤的請求,您的浏覽器發送一個請求,該服務器無法理解。

  一個請求頭域的大小超過服務器的限制.

  簡單來說,這是服務器內部錯誤,你可以換個網站訪問

  這句話大概是說:你的浏覽器向未知服務器發送了一個請求。

  這應該不會是病毒,感覺更像某個浏覽器的控件!

  錯誤的請求

  您的浏覽器發送一個請求,這個服務器無法理解。

  一個請求頭字段的大小超過服務器的限制。

  另一個朋友的提示

  這段時間在把程序部署到apache2服務器,在調試程序的時候經常出現

  Your browser sent a request that this server could not understand.

  Size of a request header field exceeds server limit.

  開始是以為P3P協議設置cookie的問題,查閱了P3P的文檔,沒有相關的條目。經過不懈的搜索,終於發現原來是Apache中資源使用限制的設置問題。

  技術背景:

  Apache中“資源使用限制”就是要限制用戶對網站特定資源(如目錄、服務器硬件等)的訪問。相關指令包括:LimitRequestBody、LimitRequestFields、LimitRequestFieldSize、LimitRequestLine、RLimitCPU、RLimitMEM、RLimitNPROC和ThreadStackSize。LimitRequest*系列指令用來限制Apache在讀取客戶端請求的過程中使用的資源數量。通過限制這些值,可以減輕某些拒絕服務(DOS)攻擊;RLimit*系列指令限制被Apache子進程所派生的進程使用的資源數量,通常這些指令用來控制CGI腳本和SSI exec命令所使用的資源;ThreadStackSize指令在某些平台上用來控制堆棧大小。

  LimitRequestLine

  LimitRequestLine指令用來限制接收客戶端發送的HTTP請求行的字節數,允許服務器管理員增加或減少客戶端HTTP請求行允許大小的限制。因為請求行包括HTTP方法、URI、協議版本,所以LimitRequestLine指令會限制請求URI的長度。服務器會需要這個值足夠大以裝載它所有的資源名,包括可能在GET請求中所傳遞的查詢部分的所有信息。

  LimitRequestFieldSize

  LimitRequestFieldSize指令用來限制客戶端發送的請求頭的字節數,允許服務器管理員增加,或減少HTTP請求頭域大小的限制。一般來說,服務器需要此值足夠大,以適應普通客戶端的任何請求的頭域大小。一個普通頭域的大小對於不同的客戶端來說是有很大差別的,一般與用戶配置他們的浏覽器以支持更多的內容協議密切相關。

  LimitRequestLine和LimitRequestFieldSize指令給了服務器管理員更大的可控性,以控制客戶端不正常的請求行為。這有助於避免某些形式的拒絕服務攻擊。默認值為“8190”。

  解決

  在Apache的httpd.conf配置文件中新增下面2行代碼

  LimitRequestLine 40940

  LimitRequestFieldSize 40940

copyright © 萬盛學電腦網 all rights reserved