超文本傳輸協議( HTTP )是用于啟用客戶端與服務器之間的通信,其中 GET 請求和 POST 請求是則是 HTTP 方法中最為常用的兩種,那么這 GET 和 POST 的區別到底是什么呢?兩者是否安全呢?
從標準上來說,大致區別如下:
- GET 用于獲取資訊,可快取,無副作用,且是冪等的,通過 url 傳遞引數,且引數 url 可見,

- POST 用于修改服務器上的資料,不可快取,有副作用,非冪等,通過 body 體傳遞引數,且引數 url 不可見,
、
但從報文上來說, GET 和 POST 都只是 HTTP 協議中兩種請求方式,本質上都是 TCP 鏈接,沒有區別,只是報文的格式有所不同,
-
GET 方法請求報文第一行是:
GET /uri HTTP/1.1 \r\n -
POST 方法請求報文第一行則是:
POST /uri HTTP/1.1 \r\n
由此可見,不帶引數時它們的區別僅是報文的前幾個字符不同而已,而在帶引數時的報文中,我們約定, GET 方法的引數應放在 url 中, POST 方法引數應放在 body 中,當然,當服務端允許的條件下,不按規范,我們也可以使用 POST 在 url 上寫引數,用 GET 方法在 body 上寫引數,
那么 POST 方法就比 GET 方法安全嗎?按照網上大部分文章的解釋,POST 比 GET 安全,因為資料在地址欄上不可見,然而實際上,從傳輸的角度來說,POST 和 GET 都是不安全的,因為他們在網路上都是明文傳輸,只要在網路節點上捉包,就能獲取完整的資料報文,因此想要安全傳輸,就需要加密,即 HTTPS ,
所以,對于 GET 和 POST 的區別,總的來說,就是:它們的本質都是 TCP 鏈接,并無區別,但是由于 HTTP 的規定以及瀏覽器/服務器的限制,導致它們在應用程序中可能會有所不同,
比如我現在使用的 API 介面測驗工具 Eolink ,它支持 HTTP 、 HTTPS 、 WS 、 WSS 等多種常用的協議,它能幫助我完成之前使用過的很多工具都沒能覆寫到的多種協議,

除此之外,Eolink 還提供了自動化測驗服務、 API 網關、 API 監控、 API 自動生成等服務,感興趣可以自行使用:www.eolink.com
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/499357.html
標籤:其他
上一篇:Git
