【溫故知新】HTTP請求GET和POST的用法和區別

轉自http://www.w3school.com.cnweb

GET的使用

請注意,查詢字符串(名稱/值對)是在 GET 請求的 URL 中發送的:瀏覽器

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

有關 GET 請求的其餘一些註釋:緩存

  • GET 請求可被緩存
  • GET 請求保留在瀏覽器歷史記錄中
  • GET 請求可被收藏爲書籤
  • GET 請求不該在處理敏感數據時使用
  • GET 請求有長度限制
  • GET 請求只應當用於取回數據

POST的使用

請注意,查詢字符串(名稱/值對)是在 POST 請求的 HTTP 消息主體中發送的:安全

POST /test/demo_form.asp HTTP/1.1
Host: testHost
name1=value1&name2=value2

有關 POST 請求的其餘一些註釋:服務器

  • POST 請求不會被緩存
  • POST 請求不會保留在瀏覽器歷史記錄中
  • POST 不能被收藏爲書籤
  • POST 請求對數據長度沒有要求

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

  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 !url

POST 比 GET 更安全,由於參數不會被保存在瀏覽器歷史或 web 服務器日誌中。
可見性 數據在 URL 中對全部人都是可見的。 數據不會顯示在 URL 中。
相關文章
相關標籤/搜索