HTTP 方法:GET 對(duì)比 POST

2023-02-28 10:03 更新

HTTP 定義了與服務(wù)器交互的不同方法,兩種最常用的 HTTP 方法是:GET 和 POST。


什么是 HTTP ?

超文本傳輸協(xié)議(HTTP)的設(shè)計(jì)目的是保證客戶端與服務(wù)器之間的通信。

HTTP 的工作方式是客戶端與服務(wù)器之間的請(qǐng)求-應(yīng)答協(xié)議。客戶端是終端用戶,服務(wù)器端是網(wǎng)站。

web 瀏覽器可能是客戶端,而計(jì)算機(jī)上的網(wǎng)絡(luò)應(yīng)用程序也可能作為服務(wù)器端。

舉例:客戶端(瀏覽器)向服務(wù)器提交 HTTP 請(qǐng)求;服務(wù)器向客戶端返回響應(yīng)。響應(yīng)包含關(guān)于請(qǐng)求的狀態(tài)信息以及可能被請(qǐng)求的內(nèi)容。

有關(guān) HTTP 的更多內(nèi)容,您可以參考本站的 HTTP 教程!


兩種 HTTP 請(qǐng)求方法:GET 和 POST

在客戶機(jī)和服務(wù)器之間進(jìn)行請(qǐng)求-響應(yīng)時(shí),兩種最常被用到的方法是:GET 和 POST。

  • GET - 從指定的資源請(qǐng)求數(shù)據(jù)。
  • POST - 向指定的資源提交要被處理的數(shù)據(jù)。

GET 方法

請(qǐng)注意,查詢字符串(名稱/值對(duì))是在 GET 請(qǐng)求的 URL 中發(fā)送的:

/test/demo_form.php?name1=value1&name2=value2

有關(guān) GET 請(qǐng)求的其他一些注釋:

  • GET 請(qǐng)求可被緩存
  • GET 請(qǐng)求保留在瀏覽器歷史記錄中
  • GET 請(qǐng)求可被收藏為書簽
  • GET 請(qǐng)求不應(yīng)在處理敏感數(shù)據(jù)時(shí)使用
  • GET 請(qǐng)求有長(zhǎng)度限制
  • GET 請(qǐng)求只應(yīng)當(dāng)用于取回?cái)?shù)據(jù)

POST 方法

請(qǐng)注意,查詢字符串(名稱/值對(duì))是在 POST 請(qǐng)求的 HTTP 消息主體中發(fā)送的:

POST /test/demo_form.php HTTP/1.1
Host: w3cschool.cn
name1=value1&name2=value2

有關(guān) POST 請(qǐng)求的其他一些注釋:

  • POST 請(qǐng)求不會(huì)被緩存
  • POST 請(qǐng)求不會(huì)保留在瀏覽器歷史記錄中
  • POST 不能被收藏為書簽
  • POST 請(qǐng)求對(duì)數(shù)據(jù)長(zhǎng)度沒有要求

比較 GET 與 POST

下面的表格比較了兩種 HTTP 方法:GET 和 POST。

  GET POST
后退按鈕/刷新 無害 數(shù)據(jù)會(huì)被重新提交(瀏覽器應(yīng)該告知用戶數(shù)據(jù)會(huì)被重新提交)。
書簽 可收藏為書簽 不可收藏為書簽
緩存 能被緩存 不能緩存
編碼類型 application/x-www-form-urlencoded application/x-www-form-urlencoded or multipart/form-data。為二進(jìn)制數(shù)據(jù)使用多重編碼。
歷史 參數(shù)保留在瀏覽器歷史中。 參數(shù)不會(huì)保存在瀏覽器歷史中。
對(duì)數(shù)據(jù)長(zhǎng)度的限制 是的。當(dāng)發(fā)送數(shù)據(jù)時(shí),GET 方法向 URL 添加數(shù)據(jù);URL 的長(zhǎng)度是受限制的(URL 的最大長(zhǎng)度是 2048 個(gè)字符)。 無限制。
對(duì)數(shù)據(jù)類型的限制 只允許 ASCII 字符。 沒有限制。也允許二進(jìn)制數(shù)據(jù)。
安全性 與 POST 相比,GET 的安全性較差,因?yàn)樗l(fā)送的數(shù)據(jù)是 URL 的一部分。

在發(fā)送密碼或其他敏感信息時(shí)絕不要使用 GET !
POST 比 GET 更安全,因?yàn)閰?shù)不會(huì)被保存在瀏覽器歷史或 web 服務(wù)器日志中。
可見性 數(shù)據(jù)在 URL 中對(duì)所有人都是可見的。 數(shù)據(jù)不會(huì)顯示在 URL 中。


其他 HTTP 請(qǐng)求方法

下面的表格列出了其他一些 HTTP 請(qǐng)求方法:

方法 描述
HEAD 與 GET 相同,但只返回 HTTP 報(bào)頭,不返回文檔主體。
PUT 上傳指定的 URI 表示。
DELETE 刪除指定資源。
OPTIONS 返回服務(wù)器支持的 HTTP 方法。
CONNECT 把請(qǐng)求連接轉(zhuǎn)換到透明的 TCP/IP 通道。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)