HTTP中get和post

HTTP中get和post的區別

  • GET - 從指定的資源請求數據。
  • POST - 向指定的資源提交要被處理的數據
GET POST
後退/刷新 無害的 數據會被從新提交
書籤 可收藏爲書籤 不可收藏爲書籤
緩存 能被緩存 不能緩存
編碼類型 application 多爲二進制數據使用多重編碼
歷史 會保留參數在歷史中 不會保存在歷史數據中
對長度的限制 最大爲2048 無限制
對數據類型的限制 ASCII 沒有限制,也能夠爲二進制數據
安全性 安全性較差,敏感數據,密碼請勿使用後 安全性較高
可見性 數據在URL中對全部人可見 數據不會限制在URL中

常見問題:

  1. GET方法參數是固定的麼?正則表達式

    在約定中咱們的參數是寫在?後面,用&分割,解析報文的過程是經過獲取TCP數據,用正則表達式等工具獲取Header和Body瀏覽器

  2. GET的長度限制:緩存

    瀏覽器地址欄輸入的參數是有限的,Http協議中沒有長度限制,對URl的長度限制一般爲瀏覽器或者服務器的緣由安全

  3. POST比GET安全:服務器

    由於POST數據在地址欄中不可見, 可是安全只是相對的,由於HTTP在網絡中是明文傳輸的,要想加密,就必需要用HTTPS網絡

  4. POST會產生2個TCP數據包?app

    POST會將Header和Body分開發送,可是HTTP協議中沒有明確會產生2個數據包,並且實際測試的時候也不會分開發送,因此分開發送只是部分瀏覽器和框架的請求方法,不屬於POST的必然行爲。框架

請說一下GET和POST二者的本質區別:工具

GET和POST本質上二者沒有任何區別。他們都是HTTP協議中的請求方法。底層實現都是基於TCP/IP協議。上述的所謂區別,只是瀏覽器廠家根據約定,作得限制而已post

HTTP請求,最初設定了八種方法。這八種方法本質上沒有任何區別。只是讓請求,更加有語義而已。

  • OPTIONS 返回服務器所支持的請求方法
  • GET 向服務器獲取指定資源
  • HEAD 與GET一致,只不過響應體不返回,只返回響應頭
  • POST 向服務器提交數據,數據放在請求體裏
  • PUT 與POST類似,只是具備冪等特性,通常用於更新
  • DELETE 刪除服務器指定資源
  • TRACE 回顯服務器端收到的請求,測試的時候會用到這個
相關文章
相關標籤/搜索