在講GET和POST區別之前我們需要先了解HTTP。
什麼是 HTTP?
超文本傳輸協議(HTTP)的設計目的是保證客戶機與服務器之間的通信。
HTTP 的工作方式是客戶機與服務器之間的請求-應答協議。
web 瀏覽器可能是客戶端,而計算機上的網絡應用程序也可能作爲服務器端。
舉例:客戶端(瀏覽器)向服務器提交 HTTP 請求;服務器向客戶端返回響應。響應包含關於請求的狀態信息以及可能被請求的內容。兩種 HTTP 請求方法:GET 和 POST
在客戶機和服務器之間進行請求-響應時,兩種最常被用到的方法是:GET 和 POST。
GET - 從指定的資源請求數據。
POST - 向指定的資源提交要被處理的數據
GET 方法
請注意,查詢字符串(名稱/值對)是在 GET 請求的 URL 中發送的:
/test/demo_form.php?name1=value1&name2=value2
有關 GET 請求的其他一些註釋:
- GET 請求可被緩存
- GET 請求保留在瀏覽器歷史記錄中
- GET 請求可被收藏爲書籤
- GET 請求不應在處理敏感數據時使用
- GET 請求有長度限制 GET 請求只應當用於取回數據
- GET 數據在URL中對所有人都是可見的
- GET 數據類型只允許ASCII
- 與 POST 相比,GET 的安全性較差,因爲所發送的數據是 URL 的一部分。(在發送密碼或其他敏感信息時絕不要使用 GET !)
POST 方法
請注意,查詢字符串(名稱/值對)是在 POST 請求的 HTTP 消息主體中發送的:
POST /test/demo_form.php HTTP/1.1
Host: zhangqishou.com
name1=value1&name2=value2有關 POST 請求的其他一些註釋:
- POST 請求不會被緩存
- POST 請求不會保留在瀏覽器歷史記錄中
- POST 不能被收藏爲書籤
- POST 請求對數據長度沒有要求
- POST 數據不回顯示在URL中
- 數據類型可以ASCII字符也可以是二進制數據,對數據類型沒有限制
其他 HTTP 請求方法
HEAD 與 GET 相同,但只返回 HTTP 報頭,不返回文檔主體。
PUT 上傳指定的 URI 表示。
DELETE 刪除指定資源。
OPTIONS 返回服務器支持的 HTTP 方法。
CONNECT 把請求連接轉換到透明的 TCP/IP 通道。
附:
HTTP協議裏面,四個表示操作方式的動詞:GET、POST、PUT、DELETE。它們分別對應四種基本操作:
GET用來獲取資源
POST用來新建資源(也可以用於更新資源)
PUT用來更新資源
DELETE用來刪除資源。