Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> 電腦軟件教程 >> 服務器技術 >> 關於服務器 >> Your browser sent a request that this server could not understand

Your browser sent a request that this server could not understand

日期:2017/2/8 10:13:10      編輯:關於服務器

錯誤的請求,您的浏覽器發送一個請求,該服務器無法理解。
一個請求頭域的大小超過服務器的限制.
簡單來說,這是服務器內部錯誤,你可以換個網站訪問

這句話大概是說:你的浏覽器向未知服務器發送了一個請求。
這應該不會是病毒,感覺更像某個浏覽器的控件!


錯誤的請求

您的浏覽器發送一個請求,這個服務器無法理解。
一個請求頭字段的大小超過服務器的限制。

另一個朋友的提示


這段時間在把程序部署到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 © Windows教程網 All Rights Reserved