form中get和post的區別

2021-08-30 18:07:45 字數 1498 閱讀 6106

一、get和post定義

form元素的method屬性用來指定傳送form的http方法:

使用get時,form資料集被附加到form元素的action屬性所指定的uri後面。

使用post時,form資料集被包裝在請求的body中並被傳送。

使用get提交方式,生成的uri:user.do?loginid=abc

get僅僅是拼接乙個uri,然後直接向服務區請求資料,需要提交給伺服器的資料集包含在uri中。

使用post提交方式,生成的uri:user.do

post會把form的資料集,即loginid=abc這個鍵值對包裝在請求的body中,發給伺服器,然後向伺服器請求資料。

二、get和post區別

1、安全性

如果用get提交乙個驗證使用者名稱和密碼的form,一般認為是不安全的,因為使用者名稱和密碼將出現在url上,進而出現在瀏覽器的歷史記錄中。顯然,在對安全性有要求的情況下,應該使用post。

2、編碼

get只能向伺服器傳送ascii字元,而post則可以傳送整個iso10646中的字元。

3、提交的資料長度

ie將請求的url長度限制為2083個字元,從而限制了get提交的資料長度,如果url超出了這個限制,提交form時ie不會有任何反映。

4、快取

由於乙個get得到的結果直接對應到乙個uri,所以get的結果頁面有可能被瀏覽器快取。而post一般則不能。

5、引用和seo

可以用乙個uri引用乙個get的結果頁面,而post的結果則不能,所以必然不能被搜尋引擎搜到。

三、正確的使用get和post

當且僅當form是冪等的時候,使用get。

冪等:多次相同的請求產生的***,和一次請求的***相同。

如果提交請求純粹只是從伺服器端獲取資料而不是進行其他操作,並且多次提交不會有明顯的***,應該使用get。

比如:搜尋引擎的查詢(和分頁(user.do?page=1)

如果提交這個請求會產生其他操作和影響,就應該使用post。

比如:修改伺服器上資料庫中的資料;傳送一封郵件;刪除乙個檔案等

另乙個要考慮因素是安全性。

若符合下列任一情況,則用post方法:

a.請求的結果有持續性的***,例如:資料庫內新增新的資料行。

b.若使用get方法,則表單上收集的資料可能讓url過長。

c.要傳送的資料不是採用ascii編碼。

若符合下列任一情況,則用get方法:

a.請求是為了查詢資源,html表單資料僅用來搜尋。

b.請求結果無持續性的***。

c.收集的資料及html表單內的輸入欄位名稱的總長不超過1024個字元。

四、瀏覽器差異

ie6:url長度限制為2083個字元;post之後,重新整理頁面不會自動重新post資料,會出現警告。

ie7和ie6相同。

firefox:重新整理頁面不會自動重新post資料會出現警告。

form中的get 和 post方法

在b s應用程式中,前台與後台的資料互動,都是通過html中form表單完成的。form提供了兩種資料傳輸的方式 get和post。雖然它們都是資料的提交方式,但是在實際傳輸時確有很大的不同,並且可能會對資料產生嚴重的影響。雖然為了方便的得到變數值,web容器已經遮蔽了二者的一些差異,但是了解二者的...

form中post和get的區別

form中的get和post方法,在資料傳輸過程中分別對應了http協議中的get和post方法。二者主要區別如下 1 get是用來從伺服器上獲得資料,而post是用來向伺服器上傳遞資料。2 get將表單中資料的按照variable value的形式,新增到action所指向的url後面,並且兩者使...

Form中的Get和Post的區別

form中的get和post方法,在資料傳輸過程中分別對應了http協議中的get和post方法。二者主要區別如下 1 get是用來從伺服器上獲得資料,而post是用來向伺服器上傳遞資料。2 get將表單中資料的按照variable value的形式,新增到action所指向的url後面,並且兩者使...