GET与POST可传递的最大值到底是多少?
GET與POST可傳遞的最大值到底是多少?
前日,看到這個問題了。 沒有深入了解。我的常識里面get最大傳遞的值為256b,post 是2M。這是很久以前不知在哪看到的。
于是又百度一下。看到兩篇文章裝過來看看:
淺談 HTTP中Get與Post的區(qū)別
GET方式傳值的最大長度
都有些道理。引用其中一些觀點:
get
首先是"GET方式提交的數(shù)據(jù)最多只能是1024字節(jié)",因為GET是通過URL提交數(shù)據(jù),那么GET可提交的數(shù)據(jù)量就跟URL的長度有直接關(guān)系 了。而實際上,URL不存在參數(shù)上限的問題,HTTP協(xié)議規(guī)范沒有對URL長度進行限制。這個限制是特定的瀏覽器及服務(wù)器對它的限制。IE對URL長度的限制是2083字節(jié)(2K+35)。對于其他瀏覽器,如Netscape、FireFox等,理論上沒有長度限制,其限制取決于操作系統(tǒng)的支持。 注意這是限制是整個URL長度,而不僅僅是你的參數(shù)值數(shù)據(jù)長度。
【get方式提交數(shù)據(jù)的大小,http協(xié)議并沒有硬性限制;而是與瀏覽器及服務(wù)器、操作系統(tǒng)有關(guān)。第二篇文章里,就有談到用apache測試,使用get方式,url最長可達8167b。其中跟帖留言中還有談到代理的因素在里面,可能url太長還沒到服務(wù),就已經(jīng)被代理拒絕掉了。第一篇的留言討論很能學(xué)到東西哦~ 】
post
理論上講,POST是沒有大小限制的,HTTP協(xié)議規(guī)范也沒有進行大小限制,說“POST數(shù)據(jù)量存在 80K/100K的大小限制”是不準(zhǔn)確的,POST數(shù)據(jù)是沒有限制的,起限制作用的是服務(wù)器的處理程序的處理能力。
對于ASP程序,Request對象處理每個表單域時存在100K的數(shù)據(jù)長度限制。但如果使用Request.BinaryRead則沒有這個 限制。
由這個延伸出去,對于IIS 6.0,微軟出于安全考慮,加大了限制。我們還需要注意:
1).IIS 6.0默認(rèn)ASP POST數(shù)據(jù)量最大為200KB,每個表單域限制是100KB。
2).IIS 6.0默認(rèn)上傳文件的最大大小是4MB。
3).IIS 6.0默認(rèn)最大請求頭是16KB。
IIS 6.0之前沒有這些限制。[見參考資料5]
所以上面的80K,100K可能只是默認(rèn)值而已(注:關(guān)于IIS4和IIS5的參數(shù),我還沒有確認(rèn)),但肯定是可以自己設(shè)置的。由于每個版本的 IIS對這些參數(shù)的默認(rèn)值都不一樣,具體請參考相關(guān)的IIS配置文檔。
【post方式,傳送數(shù)據(jù)最大理論上沒有限制,取決于服務(wù)器設(shè)置和內(nèi)存大小。】
轉(zhuǎn)載于:https://www.cnblogs.com/cdhaicheng/p/3968025.html
總結(jié)
以上是生活随笔為你收集整理的GET与POST可传递的最大值到底是多少?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于easyui中的editIndex
- 下一篇: CentOS系统时间同步(NTP)