iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 26
0
自我挑戰組

我要努力成為軟體後端工程師!系列 第 26

Day 26-ASP.NET中的post & get之介紹

-前集提要-

物件的基本觀念-屬性,物件的屬性是物件的性質狀態。物件的基本觀念-方法,方法就是物件的處理函數

接著要來介紹ASP.NET中的GET跟POST的差別。


post

一般用於更新資源及資訊。為表單Form傳送預設值

做API一定少不了接收POST數據,如果是表單有類似鍵值對的數據可以處理,類似a=1&b=2&c=3

其實跟GET數據類似區別就是GET能在連接裡直接看到,POST要在http裡才能看到。

使用POST方法就不用擔心資料大小的限制,可以防止使用者操作瀏覽器網址,表單的資料被隱藏在message-body中,因此,在大多數的情況下,使用POST方法將表單資料傳到Web Server端是更有效的方法。

簡單來說,post是向伺服器傳送資料


get

http通訊協定中,有兩種方法(HTTP methods)可以將資料送到Web Server端,分別是GET和POST,當使用GET的方法時,會將表單資訊附加在URL上並作為QueryString的一部分,QueryString是一種key/value的組合,從問號「?」開始,每一組值都是用「&」隔開。

當使用GET方法將資料送到Web Server時,可以透過瀏覽器的網址看到完整的URL和QueryString,這是一種不安全的方法,具有高風險性。

無論是動態還是靜態,get方法是預設的,它在URL地址長度是有限的,所以get請求方法能傳送的資料也是有限的。

get是把引數資料佇列加到提交表單的ACTION屬性所指的URL中,值和表單內各個欄位一一對應,在URL中可以看到。post是通過HTTP post機制,將表單內各個欄位與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。使用者看不到這個過程。
對於get方式,伺服器端用Request.QueryString獲取變數的值,對於post方式,伺服器端用Request.Form獲取提交的資料。

特色以下:

1.不會對傳遞的數據進行任何修改。
2.將要傳送的資料以Query String(一種Key/Vaule的編碼方式)加在我們要寄送的網址(URL)後面,參數顯示在url上的"?"之後,參數間用&分開,如下方。

簡單來說,get是從伺服器上獲取資料

比較圖

兩者差別為

1.GET方法執行速度比較快,但是安全性較差
2.POST方法速度較慢(因為要將Form的資料一送回Web Server),安全性較GET高

沒辦法說哪種方法最好或最壞,但可以透過不同的應用或需求使用較為適合的方法;當單純的呈現網頁資料,使用GET方法;當網頁上的資料是動態產生控件的話,就建議使用POST方法。


參考資料
get&post解說
區分的方法


上一篇
Day 25-ASP.NET之response物件與request物件介紹
下一篇
Day 27-ASP.NET之PostBack介紹
系列文
我要努力成為軟體後端工程師!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言