其實,我一直有個疑問,就get請求和post請求。
我把我所知道的說一下,再把不知道有疑問的說一下。
第一:get請求是向服務器獲取資源,post的請求是是將表單內容提交給服務器,之前聽老師說過,get請求對應的是servlet中doget()方法;同樣地,post請求中對應的是servlet中dopost()方法。可是在另一個老師的教學視頻中,它用表單提交數據在servlet中用doget()方法。
這不禁讓我產生了懷疑,我決定親自做個實驗。
然后我又試了將代碼寫在doget()中,控制台不會輸出任何信息。
所以表單中method=“post”,那么servlet中用doPost()方法。
然后我將表單中的method=“get”,在servlet中使用doget()方法,控制台輸出了信息,but 需要解決亂碼問題。
第二:get請求是以name+value的形式,在URL的“?”之后,多個參數用“&”連接,但是有長度的限制,post是將表單信息封裝到請求體中,
那么,問題來了,既然get請求是向服務器請求資源,舉個例子,驗證碼問題,如果用戶在登錄的時候需要驗證碼,這時需要向服務器發出get請求獲得驗證碼,那么為什么還需要傳參呢????
我個人的理解是:get請求和post的請求都是向服務器發出請求。以獲得響應(獲得資源),二者本質上一樣,都需要傳參,都需要獲取資源,只是get請求的參數體現在URL的請求頭中,可以被外界看到,而且大小有限制,相比較而言,post請求參數都封裝在表單中,不外界看到,有一定的安全性,並且pos數據封裝在請求體中可以傳輸大量的數據。