各種web開發(fā)語言中,各個頁面之間基本都會進行數(shù)據(jù)的傳遞,web開發(fā)里面比較常用的數(shù)據(jù)傳遞方式有g(shù)et
成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站建設、成都網(wǎng)站制作與策劃設計,玉環(huán)網(wǎng)站建設哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設十余年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:玉環(huán)等地區(qū)。玉環(huán)做網(wǎng)站價格咨詢:18982081108
post,一直以來我都只知道get傳遞的數(shù)據(jù)量要比post傳遞的數(shù)據(jù)量要少,所以傳遞大數(shù)據(jù)量還是要用post,但是 get post
這兩種方式最大能傳遞多少數(shù)據(jù)呢?一直沒搞清楚。
今天由于工作的需要,還必須得把這個問題搞明白一下了,下面就說說GET與POST傳遞數(shù)據(jù)的最大長度能夠達到多少吧。
get
是通過URL提交數(shù)據(jù),因此GET可提交的數(shù)據(jù)量就跟URL所能達到的最大長度有直接關(guān)系。很多文章都說GET方式提交的數(shù)據(jù)最多只能是1024字節(jié),而
實際上,URL不存在參數(shù)上限的問題,HTTP協(xié)議規(guī)范也沒有對URL長度進行限制。這個限制是特定的瀏覽器及服務器對它的限制。IE對URL長度的限制
是2083字節(jié)(2K+35字節(jié))。對于其他瀏覽器,如FireFox,Netscape等,則沒有長度限制,這個時候其限制取決于服務器的操作系統(tǒng)。即
如果url太長,服務器可能會因為安全方面的設置從而拒絕請求或者發(fā)生不完整的數(shù)據(jù)請求。
post
理論上講是沒有大小限制的,HTTP協(xié)議規(guī)范也沒有進行大小限制,但實際上post所能傳遞的數(shù)據(jù)量大小取決于服務器的設置和內(nèi)存大小。因為我們一般
post的數(shù)據(jù)量很少超過MB的,所以我們很少能感覺的到post的數(shù)據(jù)量限制,但實際中如果你上傳文件的過程中可能會發(fā)現(xiàn)這樣一個問題,即上傳個頭比較
大的文件到服務器時候,可能上傳不上去,以php語言來說,查原因的時候你也許會看到有說PHP上傳文件涉及到的參數(shù)PHP默認的上傳有限定,一般這個值是2MB,更改這個值需要更改php.conf的post_max_size這個值。這就很明白的說明了這個問題了。
對,GET方式只能有這么多字節(jié),而且這種提交方式會將提交的內(nèi)容直接加在URL上,也就是說提交的內(nèi)容是完全可以從URL上看到。一般不牽涉到安全問題的提交可以采用GET方式,相對方便另外,還有一種POST提交方式,相比GET提交方式,POST能提交更多的字節(jié)數(shù),而且也不會將提交的內(nèi)容直接加在URL上,所以相對安全
1. GET是"得",即從服務器獲取數(shù)據(jù);
2. GET請求可以被緩存;
3. GET請求的效率更高,但是安全性相對于POST來說要更差,因為URL會包裝用戶名,密碼等敏感信息;
4. 在HTTP協(xié)議中,雖然沒有對GET請求限制數(shù)據(jù)大小。但是,根據(jù)瀏覽器的不同,數(shù)據(jù)一般會被限制在2-8k之間;
1. POST是"給",即從客戶機向服務器發(fā)送數(shù)據(jù),然后服務器根據(jù)這些數(shù)據(jù)返回相對應的數(shù)據(jù);
2. POST請求由于要提交數(shù)據(jù),所以不能做緩存;
3. POST請求相對于GET請求的效率更低,因為多了向服務器提供數(shù)據(jù)這一環(huán)節(jié);
4. 雖然使用POST請求不會讓用戶直接在URL中看到敏感信息,但是通過抓包軟件或者瀏覽器的一些插件可以很容易截取到這些信息。所以,在商業(yè)開發(fā)中,這些信息都會被加密;
5. POST提交數(shù)據(jù)比GET大,大小靠服務器限制,PHP上限通常是2M;
php中的GET和POST的區(qū)別和特點如下:
1. GET是從服務器上獲取數(shù)據(jù),POST是向服務器傳送數(shù)據(jù)。
2. GET是把參數(shù)數(shù)據(jù)隊列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個字段一一對應,在URL中可以看到。POST是通過HTTP POST機制,將表單內(nèi)各個字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
3.對于GET方式提交表單數(shù)據(jù),服務器端用$_GET[‘name’]獲取變量的值,對于POST方式提交表單數(shù)據(jù),服務器端用$_POST[‘name’]獲取提交的數(shù)據(jù),當然,兩者都可以通過$_REQUEST[‘name’]獲得表單數(shù)據(jù)。對于REQUEST方式提交表單數(shù)據(jù),服務器端用$_REQUEST[‘name’]獲取變量的值,但這種方式很少用。
4. GET傳送的數(shù)據(jù)量較小,不能大于2KB。POST傳送的數(shù)據(jù)量較大,一般被默認為不受限制。但理論上,一般認為不能超過100KB。
5. GET安全性非常低,POST安全性較高。
6. GET表單值可以通過_GET獲取;但通過action的url設置的參數(shù)總是獲取不到的,form method="get" action="a.asp?b=b"跟form method="get"action="a.asp"是一樣的,也就是說,在這種情況下,GET方式會忽略action頁面后邊帶的參數(shù)列表。POST表單值可以通過_POST獲取;但通過action的url參數(shù)設置的參數(shù)則可以不能通過_POST獲取到。action=test.php?id=1這種就是GET方式傳值,可以用$_REQUEST和$_GET接受傳值,但不能用POST方式獲取到值,即使表單是POST方式提交。所在,在提交表單時,如果action中同時有參數(shù),最好只能通過POST表單方式,對于表單內(nèi)數(shù)據(jù),直接通過POST獲取,對于action中參數(shù),童工GET獲取。
在做數(shù)據(jù)查詢時,建議用GET方式,而在做數(shù)據(jù)添加、修改或刪除時,建議用POST方式。
get 是通過URL提交數(shù)據(jù),因此GET可提交的數(shù)據(jù)量就跟URL所能達到的最大長度有直接關(guān)系。很多文章都說GET方式提交的數(shù)據(jù)最多只能是1024字節(jié),而實際上,URL不存在參數(shù)上限的問題,HTTP協(xié)議規(guī)范也沒有對URL長度進行限制。這個限制是特定的瀏覽器及服務器對它的限制。IE對URL長度的限制是2083字節(jié)(2K+35字節(jié))。對于其他瀏覽器,如FireFox,Netscape等,則沒有長度限制,這個時候其限制取決于服務器的操作系統(tǒng)。即如果url太長,服務器可能會因為安全方面的設置從而拒絕請求或者發(fā)生不完整的數(shù)據(jù)請求。
post 理論上講是沒有大小限制的,HTTP協(xié)議規(guī)范也沒有進行大小限制,但實際上post所能傳遞的數(shù)據(jù)量大小取決于服務器的設置和內(nèi)存大小。因為我們一般post的數(shù)據(jù)量很少超過MB的,所以我們很少能感覺的到post的數(shù)據(jù)量限制,但實際中如果你上傳文件的過程中可能會發(fā)現(xiàn)這樣一個問題,即上傳個頭比較大的文件到服務器時候,可能上傳不上去,以php語言來說,查原因的時候你也許會看到有說PHP上傳文件涉及到的參數(shù)PHP默認的上傳有限定,一般這個值是2MB,更改這個值需要更改php.conf的post_max_size這個值。這就很明白的說明了這個問題了。
分享題目:phpget數(shù)據(jù)大小的簡單介紹
轉(zhuǎn)載源于:http://m.kartarina.com/article44/hsdphe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、搜索引擎優(yōu)化、全網(wǎng)營銷推廣、手機網(wǎng)站建設、網(wǎng)頁設計公司、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)