在客戶機和服務器之間進行請求-響應時,兩種最常被用到的方法是:GET和POST.
- GET - 從指定的資源請求數據。
- POST - 向指定的資源提交要被處理的數據。
GET方法
查詢字符串(名稱/值對)是在GET請求的URL中發送的:
- GET 請求可被緩存
- GET 請求保留在瀏覽器歷史記錄中
- GET 請求可被收藏為書簽
- GET 請求不應在處理敏感數據時使用
- GET 請求有長度限制
- GET 請求只應當用于取回數據
POST 方法
查詢1字符串(名詞/值對)是在POST請求的HTTP消息主體中發送的:
- POST 請求不會被緩存
- POST 請求不會保留在瀏覽器歷史記錄中
- POST 不能被收藏為書簽
- POST 請求對數據長度沒有要求
比較GET 和POST
GET | POST | |
---|---|---|
后退按鈕/刷新 | 無影響 | 數據會被重新提交 |
書簽 | 可收藏為書簽 | 不可收藏為書簽 |
緩存 | 能被緩存 | 不能緩存 |
歷史 | 參數保留在瀏覽器歷史中 | 參數不會保存在瀏覽器歷史中 |
對數據長度的限制 | 當發送數據時,GET方法向URL添加數據;URL的長度是受限制的(URL的最大長度是2048個字符) | 無限制 |
對數據類型的限制 | 只允許 ASCII 字符 | 沒有限制,也允許二進制數據 |
安全性 | 安全性差,數據是URL的一部分 | 比GET更安全,參數不會被保存在瀏覽器歷史或Web服務器日志中 |
可見性 | 數據在URL中對所有人都是可見的 | 數據不會顯示在URL中 |