兩種HTTP請求方法:GET和POST
在客戶機和服務器之間進行請求-相應時,兩種最常被用到的方法是:GET 和 POST
- GET - 從指定的資源請求數(shù)據(jù)
- POST - 向指定的資源提交要被處理的數(shù)據(jù)
GET 方法
查詢字符串(名稱/值對)是在GET請求的URL中發(fā)送的:
/test/demo_form.asp?name1=value1&name2=value2
有關(guān)GET 請求的其他一些注釋:
- GET 請求可被緩存
- GET 請求保留在瀏覽器歷史記錄中
- GET 請求可被收藏為書簽
- GET 請求不應在處理敏感數(shù)據(jù)時使用
- GET 請求有長度限制
- GET 請求只應當用于取回數(shù)據(jù)
POST 方法
查詢字符串(名稱/值對)是在POST請求的HTTP消息主題中發(fā)送:
POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
有關(guān)POST請求的其他一些注釋
- POST 請求不會被緩存
- POST 請求不會保留在瀏覽器記錄中
- POST 請求不能被收藏為書簽
- POST 請求對數(shù)據(jù)長度沒有要求
比較GET 和 POST
下面的表格比較了兩種HTTP方法:GET 和POST
操作 | GET | POST |
---|---|---|
后退按鈕/刷新 | 無害 | 數(shù)據(jù)會被重新提交 |
書簽 | 可收藏為書簽 | 不可收藏為書簽 |
緩存 | 能被緩存 | 不能緩存 |
編碼類型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded 或 multipart/form-data怨绣。為二進制數(shù)據(jù)使用多重編碼贼穆。 |
歷史 | 參數(shù)保留在瀏覽器歷史中 | 參數(shù)不會保存在瀏覽器歷史中 |
對數(shù)據(jù)長度的限制 | 是的淑廊。當發(fā)送數(shù)據(jù)時粗俱,GET方法向URL添加數(shù)據(jù)蜻展;URL的長度是受限制的(URL的最大長度是2048個字符) | 無限制 |
對數(shù)據(jù)類型的限制 | 只允許ASCII字符 | 沒有限制魁亦,也允許二進制數(shù)據(jù) |
安全性 | 與POST相比渔隶,GET 的安全性較差,因為所發(fā)送的數(shù)據(jù)是URL的一部分 | POST 比GET 更安全洁奈,因為參數(shù)不會被保存在瀏覽器歷史或web服務器日志中 |
可見性 | 數(shù)據(jù)在URL中對所有人都是可見的 | 數(shù)據(jù)不會顯示在URL中 |