各種web開發語言中,各個頁面之間基本都會進行數據的傳遞,web開發裡面比較常用的數據傳遞方式有get post,一直以來我都只知道get傳遞的數據量要比post傳遞的數據量要少,所以傳遞大數據量還是要用post,但是 get post 這兩種方式最大能傳遞多少數據呢?一直沒搞清楚。
今天由於工作的需要,還必須得把這個問題搞明白一下了,下面就說說GET與POST傳遞數據的最大長度能夠達到多少吧。
get 是通過URL提交數據,因此GET可提交的數據量就跟URL所能達到的最大長度有直接關系。很多文章都說GET方式提交的數據最多只能是1024字節,而實際上,URL不存在參數上限的問題,HTTP協議規范也沒有對URL長度進行限制。這個限制是特定的浏覽器及服務器對它的限制。IE對URL長度的限制是2083字節(2K+35字節)。對於其他浏覽器,如FireFox,Netscape等,則沒有長度限制,這個時候其限制取決於服務器的操作系統。即如果url太長,服務器可能會因為安全方面的設置從而拒絕請求或者發生不完整的數據請求。
post 理論上講是沒有大小限制的,HTTP協議規范也沒有進行大小限制,但實際上post所能傳遞的數據量大小取決於服務器的設置和內存大小。因為我們一般post的數據量很少超過MB的,所以我們很少能感覺的到post的數據量限制,但實際中如果你上傳文件的過程中可能會發現這樣一個問題,即上傳個頭比較大的文件到服務器時候,可能上傳不上去,以php語言來說,查原因的時候你也許會看到有說PHP上傳文件涉及到的參數PHP默認的上傳有限定,一般這個值是2MB,更改這個值需要更改php.conf的post_max_size這個值。這就很明白的說明了這個問題了。