iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 8
1
Modern Web

ASP.NET Web Form 入門30天系列 第 8

[ASP.NET] https://網址?參數=參數值 ,URL 網址參數解析,取得網址參數

  • 分享至 

  • xImage
  •  

本篇擷取重點:

  1. 為什麼網址後方會出現 ?參數=參數值
  2. 資料傳遞方式(GET / POST)比較

一、為什麼網址後方會出現 ?參數=參數值

你是否曾在瀏覽網頁作點選時,發現該網站網址後方出現, ?參數=參數值

下方找了一個例子幫助大家了解,這是Yahoo購物中心網站的一個頁面

https://ithelp.ithome.com.tw/upload/images/20190909/20120056SZDuv5n3Go.jpg

我們可以注意到,在網址 (https://tw.buy.yahoo.com/rushbuy) 後方出現 ?id=8493074

這其實代表著,我們滑鼠點選的這個動作,其實也在作傳遞資訊的動作,而且是利用GET的傳遞方式來傳遞。

所以當我們點選商品的同時,其實作了三個動作,

  1. 頁面轉至新網址(或留在原網址)
  2. 並向伺服器以GET的傳遞方式來傳輸資料。(以本題來說,參數id=8493074)
  3. 新的頁面依照接收到參數的不同來顯示頁面。

==================================================================
貼心小補充:

  1. 同時可以傳遞一個參數以上的數值嗎?

ANS:是可以的,參數和參數間以**&**作相隔。

  1. 所以用GET的傳遞方式來傳輸資料,資料都一定要露白嗎?

ANS:我們可以藉由encode編碼的方式,讓資料不會這麼容易在第一時間被解讀,但是需要保密的資料仍建議以另一種 傳遞方式POST來傳輸。

==================================================================


二、資料傳遞方式(GET / POST)比較

HTML Form 表單有兩種資料傳遞方式,分別為 GET 與 PSOT 這兩種,當網友填好表單資料並按下送出表單的按鈕之後,必須透過這兩種方式將資料送出到伺服器(Web Server),以下為兩種方式的 HTML Code 寫法,而在ASP.NET的Web Form下,會將程式碼編寫在.aspx

一、GET 傳遞方式

<form action="接收資料的網址" method="get">

二、POST 傳遞方式

<form action="接收資料的網址" method="post">

無論是 GET 或 POST 都可以傳遞資料,但兩者在應用方面需要做選擇,先來看看他們的差異,就知道要怎麼選擇。

比較 GET POST
網址差異 網址會帶有 HTML Form 表單的參數與資料。 資料傳遞時,網址並不會改變。
資料傳遞量 由於是透過 URL 帶資料,所以有長度限制。 由於不透過 URL 帶參數,所以不受限於 URL 長度限制。
安全性 表單參數與填寫內容可在 URL 看到。 透過 HTTP Request 方式,故參數與填寫內容不會顯示於 URL。

嚴格來說一般的表單可以用 GET 直接傳遞,而不希望資料出現在網址上則必須用 POST 來處理,像是會員登入的帳號密碼。

但以 POST 來傳遞資料並不代表它安全,因為傳遞的還是明碼,只是沒有出現在網址列而己。較安全的作法是在網站上加 SSL憑證,用HTTPS來傳輸,但若還要更安全就要別的其他作法了。

參考資料:
https://www.wibibi.com/info.php?tid=235


上一篇
[ASP.NET] 使用開放資料( Open Data ) 實作篇,以"高雄市政府相關求才資訊發佈"為例 (三) - 程式碼解析(B篇)
下一篇
[ASP.NET] [C#] 物件導向 - 程式設計思維
系列文
ASP.NET Web Form 入門30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

1
YoChen
iT邦研究生 1 級 ‧ 2019-09-09 11:58:03

當網有填好表單資料並按下送出表單的按鈕之後

網友~

太感謝惹XDD

1
小朱
iT邦新手 4 級 ‧ 2019-09-13 17:58:21

POST雖然是由訊息本體 (要求的body部份) 傳遞資料,但並不代表它安全,因為傳遞的還是明碼,只是沒有出現在網址列而己。
較安全的作法是在網站上加 SSL,用HTTPS來傳輸,若要更安全就有別的作法了。

了解,正好這周要去上SSL憑證的課程XDD

我要留言

立即登入留言