1. 程式人生 > >提交方式get和post有什麼區別

提交方式get和post有什麼區別

提交方式post和get有什麼區別?

 

(1)post是向伺服器傳送資料;get是從伺服器上獲取資料。

(2)在客戶端,get是把引數資料佇列加到提交表單的ACTION屬性所指的URL中,值和表單內各個欄位一一對應,在URL中可以看到。

post是通過HTTP post機制,將表單內各個欄位與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。使用者看不到這個過程。

(3)對於get方式,伺服器端用Request.QueryString獲取變數的值,對於post方式,伺服器端用Request.Form獲取提交的資料。

例如:get 提交Request.QueryString["aa"].ToString();

post 提交用 Request.Form["aa"].ToString();

(4)get可以傳送的資料量則非常小,只能有1024位元組,不能大於2KB。post傳送的資料量較大,一般被預設為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。

(5)安全性問題。正如在(1)中提到,使用 get 的時候,引數會顯示在瀏覽器位址列上,而 post 不會。

 

建議:

1、get方式的安全性較post方式要差些,但是執行效率卻比post方法好。

如果這些資料是中文資料而且是非敏感資料,那麼使用 get;如果使用者輸入的資料不是中文字元而且包含敏感資料,包含機密資訊的話,建議用post資料提交方式為好;

2、在做資料查詢時,建議用get方式;而在做資料新增、修改或刪除時,建議用post方式;

總結:(簡答)

(1)get的引數會顯示在瀏覽器位址列中,而post的引數不會顯示在瀏覽器位址列中;

(2)使用post提交的頁面在點選【重新整理】按鈕的時候瀏覽器一般會提示“是否重新提交”,而get則不會;

(3)用get的頁面可以被搜尋引擎抓取,而用post的則不可以;

(4)用post可以提交的資料量非常大,而用get可以提交的資料量則非常小(2k),受限於網頁地址的長度。

(5)用post可以進行檔案的提交,而用get則不可以。

轉載自:提交方式post和get有什麼區別?

 

個人補充:get方式可以做資源定位,比如淘寶網站,你點開如下兩個網站最終得到的網站結果是一樣的。

https://www.taobao.com/markets/tbhome/yhh-detail?spm=a21bo.2017.201870.2.5af911d96QfHXF&contentId=2500000210001947284&scm=1007.12846.65991.0&pvid=cb56c230-2321-4b35-9265-7d0e52924149

https://www.taobao.com/markets/tbhome/yhh-detail?contentId=2500000210001947284