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