[php] 什麼是發布請求的大小限制?


Answers

請求(GET和POST)的URL部分可能受瀏覽器和服務器的限制 - 通常安全大小為2KB,因為幾乎沒有瀏覽器或服務器使用較小的限制。

請求(POST)主體通常由服務器以字節為單位進行限制,以防止某種類型的DoS攻擊(請注意,這意味著字符轉義會增加主體的字節大小)。 最常見的服務器設置為10MB,儘管所有流行的服務器都允許通過設置文件或面板來增加或減少此設置。

*舊手機或其他小型設備瀏覽器存在一些例外情況 - 在這些情況下,它更多地是為設備上的此目的而預留的堆空間功能,然後是其他任何功能。

Question

對不起,如果這是重複的,我會認為這將是但無法找到任何東西。

我有一個靈活的應用程序,我通過IE發布數據到php / mysql服務器。 我還沒有遇到任何問題,但提前知道這可能會為我節省一些挫折和工作。 是否有通過http發布數據的大小限制?

本文說不: http://www.netlobo.com/ie_form_submit.htmlhttp://www.netlobo.com/ie_form_submit.html

這個討論說是: http://bytes.com/topic/php/answers/538226-what-maximum-limit-using-post-method : http://bytes.com/topic/php/answers/538226-what-maximum-limit-using-post-method

這一切都來回我能夠在網上找到。 因此, 請將答案限制在個人測試/驗證號碼。

我想回發一個可能非常大的XML字符串(比如高達5mb)。

如果它有什麼區別:瀏覽器將永遠是IE瀏覽器(我們的產品需要它),帖子來自和httpService in flex,web服務器是php,DB是mySql。




您可以通過設置php.ini變量發布大量數據: max_input_vars此變量的默認大小為1000,但如果要發送大量數據,則必須相應地增加大小。 如果你不能從ini_set設置大小,你必須通過htaccess或者直接修改php.ini文件。

max_input_vars  2500
memory_limit    256M



由http服務器決定是否有限制。 我工作的產品允許​​管理員配置限制。




這是最好的解決方案之一,您不要使用多個或多個輸入字段。 您可以連接多個輸入和任何特殊字符,例如。 @

看到這個:

<input type='text' name='hs1' id='hs1'>
<input type='text' name='hs2' id='hs2'>
<input type='text' name='hs3' id='hs3'>
<input type='text' name='hs4' id='hs4'>
<input type='text' name='hs5' id='hs5'>

<input type='hidden' name='hd' id='hd'>

使用任何腳本(JavaScript或JScript),

document.getElementById("hd").value = document.getElementById("hs1").value+"@"+document.getElementById("hs2").value+"@"+document.getElementById("hs3").value+"@"+document.getElementById("hs4").value+"@"+document.getElementById("hs5").value

有了這個,你將繞過max_input_vars問題。 如果你增加php.ini文件中的max_input_vars ,那對服務器是有害的,因為它使用更多的服務器緩存,並且這有時會使服務器崩潰。




Links