伊莉討論區

標題: HTML 表單中 GET 與 POST 的用法差異 [打印本頁]

作者: isve    時間: 2016-4-21 10:55 PM     標題: HTML 表單中 GET 與 POST 的用法差異

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

一、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 來處理,像是會員登入的帳號密碼。以下圖片為透過 GET 方式傳遞資料的 URL 呈現結果範例,可以由網址看出表單中的參數為 name,傳遞的值為 My name is Jef.。



所以如果不希望網友登入的時候,帳號與密碼顯示於網址欄,最好是使用 POST 的方式處理。
作者: kevinkao809    時間: 2016-7-3 09:16 PM

GET: 你丟到 Server 的資料會以 QueryString 的方式上傳
POST: 你丟到 Server 的資料以 HTTP form 的型態上傳

相對的, 你後臺的程式需要知道資料如何讀取.
作者: BLACKDI    時間: 2016-12-15 10:02 AM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: kevinkao809    時間: 2018-4-8 07:48 PM

透過 GET 傳遞資料有 4K 的資料上限, 分享給各位.
作者: 羕漾    時間: 2018-4-18 12:16 AM

BLACKDI 發表於 2016-12-15 10:02 AM
舉手)
那有人知道如果method選post,action設mailto,執行的時候(outlook)會變成亂碼,有解嗎?? ...

你可以試試將要傳送的內容作 UrlEncode ,或許可以解決你的問題!
作者: theloserbm    時間: 2018-4-27 03:02 PM

本帖最後由 theloserbm 於 2018-4-27 03:02 PM 編輯

其實還有 DELETE 和 PUT 的說...
作者: ren1244    時間: 2018-5-4 02:55 PM

會員的帳號密碼真的很重要
只用 post 還不能說安全
至少建議:
1.傳送時務必使用加密的連線(https)
2.伺服器端不要儲存用戶的真實密碼,客戶端只要傳送雜湊過的密碼(而且要加鹽),伺服器只要核對加鹽後的雜湊值即可




歡迎光臨 伊莉討論區 (http://www16.eyny.com/) Powered by Discuz!