GET和POST是HTTP的兩個常用方法。
什么是HTTP?
超文本傳輸協(xié)議(HyperText Transfer Protocol -- HTTP)是一個設(shè)計來使客戶端和服務(wù)器順利進(jìn)行通訊的協(xié)議。
HTTP在客戶端和服務(wù)器之間以request-response protocol(請求-回復(fù)協(xié)議)工作。
GET - 從指定的服務(wù)器中獲取數(shù)據(jù)
POST - 提交數(shù)據(jù)給指定的服務(wù)器處理
GET方法:
使用GET方法時,查詢字符串(鍵值對)被附加在URL地址后面一起發(fā)送到服務(wù)器:
/test/demo_form.jsp?name1=value1&name2=value2
特點(diǎn):
GET請求能夠被緩存
GET請求會保存在瀏覽器的瀏覽記錄中
以GET請求的URL能夠保存為瀏覽器書簽
GET請求有長度限制
GET請求主要用以獲取數(shù)據(jù)
POST方法:
使用POST方法時,查詢字符串在POST信息中單獨(dú)存在,和HTTP請求一起發(fā)送到服務(wù)器:
POST /test/demo_form.jsp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
特點(diǎn):
POST請求不能被緩存下來
POST請求不會保存在瀏覽器瀏覽記錄中
以POST請求的URL無法保存為瀏覽器書簽
POST請求沒有長度限制
GET和POST的區(qū)別:
GET
POST
點(diǎn)擊返回/刷新按鈕
沒有影響
數(shù)據(jù)會重新發(fā)送(瀏覽器將會提示用戶“數(shù)據(jù)被從新提交”)
添加書簽
可以
不可以
緩存
可以
不可以
編碼類型(Encoding type)
application/x-www-form-urlencoded
application/x-www-form-urlencoded or multipart/form-data. 請為二進(jìn)制數(shù)據(jù)使用multipart編碼
歷史記錄
有
沒有
長度限制
有
沒有
數(shù)據(jù)類型限制
只允許ASCII字符類型
沒有限制。允許二進(jìn)制數(shù)據(jù)
安全性
查詢字符串會顯示在地址欄的URL中,不安全,請不要使用GET請求提交敏感數(shù)據(jù)
因為數(shù)據(jù)不會顯示在地址欄中,也不會緩存下來或保存在瀏覽記錄中,所以看POST求情比GET請求安全,但也不是最安全的方式。如需要傳送敏感數(shù)據(jù),請使用加密方式傳輸
可見性
查詢字符串顯示在地址欄的URL中,可見
查詢字符串不會顯示在地址欄中,不可見
其他HTTP請求方式
方式
描述
HEAD
與GET請求類似,不同在與服務(wù)器只返回HTTP頭部信息,沒有頁面內(nèi)容
PUT
上傳指定URL的描述
DELETE
刪除指定資源
OPTIONS
返回服務(wù)器支持的HTTP方法
CONNECT
轉(zhuǎn)換為透明TCP/IP隧道的連接請求
歡迎轉(zhuǎn)載,歡迎批評指正! 轉(zhuǎn)載請注明: 轉(zhuǎn)自博客園,轉(zhuǎn)載地址:http://www.cnblogs.com/igeneral/