1)Get, 它用於獲取信息,注意,他只是獲取、查詢數據,也就是說它不會修改服務器上的數據,從這點來說,它是數據安全的,而稍後會提到的Post它是能夠修改數據的,因此這也是二者差異之一了。html
2) Post,它是能夠向服務器發送修改請求,從而修改服務器的,比方說,咱們要在論壇上回貼、在博客上評論,這就要用到Post了,固然它也是能夠僅僅獲取數據的。瀏覽器
3)Delete 刪除數據。能夠經過Get/Post來實現。用的很少,暫很少寫,之後擴充。安全
4)Put,增長、放置數據,能夠經過Get/Post來實現。用的很少,暫很少寫,之後擴充。服務器
下面簡述一下Get和Post區別:oop
1) GET請求的數據是放在HTTP包頭中的,也就是URL以後,一般是像下面這樣定義格式的,(而Post是把提交的數據放在HTTP正文中的)。大數據
login.action?name=hyddd&password=idontknow&verify=%E4%BD%E5%A5%BD編碼
a,以 ? 來分隔URL和數據; 加密
b,以& 來分隔參數;spa
c,若是數據是英文或數字,原樣發送;操作系統
d,若是數據是中文或其它字符,則進行BASE64編碼。
2)GET提交的數據比較少,最多1024B,由於GET數據是附在URL以後的,而URL則會受到不一樣環境的限制的,好比說IE對其限制爲2K+35,而POST能夠傳送更多的數據(理論上是沒有限制的,但通常也會受不一樣的環境,如瀏覽器、操做系統、服務器處理能力等限制,IIS4可支持80KB,IIS5可支持100KB)。
3)Post的安全性要比Get高,由於Get時,參數數據是明文傳輸的,並且使用GET的話,還可能形成Cross-site request forgery攻擊。而POST數據則能夠加密的,但GET的速度可能會快些。
因此綜上幾點,總結成下表:
操做方式 |
數據位置 |
明文密文 |
數據安全 |
長度限制 |
應用場景 |
GET |
HTTP包頭 |
明文 |
不安全 |
長度較小 |
查詢數據 |
POST |
HTTP正文 |
可明可密 |
安全 |
支持較大數據傳輸 |
修改數據 |
轉自
http://blog.csdn.net/wangzhilife/article/details/12440089
客戶端get請求解決亂碼問題
客戶端經過Get方式向服務器發送中文數據,需先對中文數據進行轉碼操做
URLEncoder.encode(name,"utf-8")
服務端解決亂碼
new String(name.getBytes("iso-8859-1"),"utf-8")//字符轉碼操做,防止中文亂碼 response.setContentType("text/html;charset=utf-8")//顯示轉碼