HTTP 請求的 GET 與 POST 方式的區別
阿新 • • 發佈:2018-05-18
瀏覽器 tro 名稱 安全 data 回文 部分 strong 長度
HTTP 請求的 GET 與 POST 方式的區別
在客戶機和服務器之間進行請求-響應時,兩種最常被用到的方法是:GET 和 POST。
- GET - 從指定的資源請求數據。
- POST - 向指定的資源提交要被處理的數據
GET方法
請註意,查詢字符串(名稱/值對)是在 GET 請求的 URL 中發送的:
/test/demo_form.asp?name1=value1&name2=value2
- 請求可被緩存
- 請求保留在瀏覽器歷史記錄中
- 請求可被收藏為書簽
- 請求不應在處理敏感數據時使用
- 請求有長度限制
- 請求只應當用於取回數據
POST方法
請註意,查詢字符串(名稱/值對)是在 POST 請求的 HTTP 消息主體中發送的:
POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
比較 GET 與 POST
方法 | GET | POST | |
---|---|---|---|
緩存 | 能被緩存 | 不能緩存 | |
編碼類型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded 或 multipart/form-data。為二進制數據使用多重編碼。 | |
對數據長度的限制 | 是的。當發送數據時,GET 方法向 URL 添加數據;URL 的長度是受限制的(URL 的最大長度是 2048 個字符) | 無限制。 | |
對數據類型的限制 | 只允許 ASCII 字符 | 沒有限制。也允許二進制數據。 | |
安全性 | 與 POST 相比,GET 的安全性較差,因為所發送的數據是 URL 的一部分。在發送密碼或其他敏感信息時絕不要使用 GET | POST 比 GET 更安全,因為參數不會被保存在瀏覽器歷史或 web 服務器日誌中。 | |
可見性 | 數據在 URL 中對所有人都是可見的。 | 數據不會顯示在 URL 中。 |
其他 HTTP 請求方法
- HEAD 與 GET 相同,但只返回 HTTP 報頭,不返回文檔主體。
- PUT 上傳指定的 URI 表示。
- DELETE 刪除指定資源。
- OPTIONS 返回服務器支持的 HTTP 方法
- CONNECT 把請求連接轉換到透明的 TCP/IP 通道。
HTTP 請求的 GET 與 POST 方式的區別