doGet和doPost區別

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中,用戶是看不見的。