GET和POST區別?


 

 

 

 

 

 

GET

HTTP GET 方法請求指定的資源。使用 GET 的請求應該只用於獲取數據

GET請求沒有主體,在正確實現的條件下GET 方式是安全、冪等、可緩存的,並且支持html表單提交

POST

 HTTP POST 方法 發送數據給服務器

POST請求通常是通過HTML表達發送,並返回服務器的修改結果

POST有請求體,POST方式是不安全、不冪等、可緩存的

冪等:連續調用一次或者多次的效果相同(無副作用)

但連續調用同一個POST可能會帶來額外的影響,比如多次提交訂單

總結!

GET和POST所謂區別,只是瀏覽器廠家根據約定,做得限制而已:

  • GET是通過明文發送數據請求,而POST是通過密文(安全)

  • GET傳輸的數據量有限,因為url的長度有限,POST則不受限

  • GET請求的參數只能是ASCII碼(中文需要URL編碼)

  • GET產生一個TCP數據包,POST產生兩個TCP數據包

    • 對於GET方式的請求,瀏覽器會把http header和data一並發送出去,服務器響應200(返回數據)

    • 對於POST,瀏覽器先發送header,服務器響應100 continue,瀏覽器再發送data,服務器響應200 ok(返回數據)

因為POST需要兩步,時間上消耗的要多一點,看起來GET比POST更有效。因此Yahoo團隊有推薦用GET替換POST來優化網站性能。但這是一個坑!跳入需謹慎。

為什么?

  1. GETPOST都有自己的語義,不能隨便混用

  2. 在網絡環境好的情況下,發一次包的時間和發兩次包的時間差別基本可以無視

  3. 並不是所有瀏覽器都會在POST中發送兩次包,Firefox就只發送一次

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM