當前位置:趣味科普網>經驗>

doGet和doPost區別

經驗 閱讀(9.77K)

doGet和doPost區別

1、傳輸速度上的差別:doget傳輸速度高於dopost傳輸速度。

2、傳輸資料上的差別:doget1、3k多餘的傳輸資料部分會被擷取,dopost傳輸資料不會被擷取。

3、安全性上的差別:通過doGet方式提交的資料安全性低,通過doGet方式提交的資料安全性高。

doGet是處理客戶端發來的Get請求,doPost是處理客戶端發來的Post請求,它們的區別可以從以下幾個方面來說明:

1、客戶端(一般指瀏覽器)生成的方式

get:form中method屬性為get時;或者直接在URL位址列中輸入URL,需要傳遞引數時,直接在URL後面拼接?name=張三&age=18這樣的查詢引數字串;

post:form中method屬性為post。

2、客戶端資料傳送方式

get:表單資料存放在URL地址後面。所有get方式提交時HTTP中沒有訊息體;

post:表單資料存放在HTTP協議的訊息體中以實體的方式傳送到伺服器。

3、伺服器獲取資料方式

get:伺服器採用Servlet中的doGet來獲取變數的值;

post:伺服器採用Servlet中的doPost來獲取資料。

4、傳輸的資料量

get:資料量長度有限制,一般不超過2kb。因為是引數傳遞,且在位址列中,故資料量有限制;

post:適合大規模的資料傳送。因為是以實體的方式傳送的。

5、安全性

get:安全性差。因為是直接將資料顯示在位址列中,瀏覽器有緩衝,可記錄使用者資訊。所以安全性低;

post:安全性高。因為post方式提交資料時是採用的HTTP post機制,是將表單中的欄位與值放置在HTTP HEADER內一起傳送到ACTION所指的URL中,使用者是看不見的。