GET和POST請求的區別

                                                GET和POST請求的區別

 

一、 什麼是 HTTP?

1、超文本傳輸協議(HTTP:HyperText Transfer Protocol)的設計目的是保證客戶機與服務器之間的通信。

2、HTTP 的工作方式是客戶機與服務器之間的請求-應答協議。

3、web 瀏覽器可能是客戶端,而計算機上的網絡應用程序也可能作爲服務器端。

4、舉例:客戶端(瀏覽器)向服務器提交 HTTP 請求;服務器向客戶端返回響應。響應包含關於請求的狀態信息以及可能被請求的內容。

 

二、兩種 HTTP 請求方法:GET 和 POST

1、GET - 從指定的資源請求數據。

2、POST - 向指定的資源提交要被處理的數據

 

三、GET 方法詳解

1、請求參數(名稱/值對)是在URL中發送的。

2、例如: /test/demo_form.asp?name1=value1&name2=value2

3、GET方法一些特性:

  • GET 請求可被緩存。 (IE瀏覽器,ajax get請求

  • GET 請求保留在瀏覽器歷史記錄中

  • GET 請求可被收藏爲書籤

  • GET 請求不應在處理敏感數據時使用 (表單提交數據時

  • GET 請求有長度限制 (據說是2KB,不確定,和瀏覽器有關

  • GET 請求只應當用於取回數據

 

四、POST 方法詳解

1、請求參數(名稱/值對)是在POST請求的HTTP消息主體中發送的。

2、例如:

POST /test/demo_form.asp HTTP/1.1

Host: w3schools.com

name1=value1&name2=value2

3、POST方法一些特性:

  • POST 請求不會被緩存

  • POST 請求不會保留在瀏覽器歷史記錄中

  • POST 不能被收藏爲書籤

  • POST 請求對數據長度沒有要求

 

五、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 通道。

 

七、 在chrome 中GET和POST請求圖解

1、GET請求

 

 

2、POST請求

 

 

 

 

 

參考資料: http://www.w3school.com.cn/tags/html_ref_httpmethods.asp

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章