簡易版
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iZ1cDN0YjZwMWZwATNxQjN0QmZjNDN0IWY2QzYzUmZh9CX0EzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL4M3Lc9CX6MHc0RHaiojIsJye.png)
資料/參數在哪裡:
GET 是通過 URL 方式請求,可以直接看到,明文傳輸
POST 參數資料被包含在請求體中。通過 header 傳輸,同樣是明文。但比直接顯示在URL中安全多了
對資料長度的限制:
GET 方法向 URL 添加資料;URL 的長度是受限制的(URL 的最大長度是 2048 個字元)。
http 協定并未規定 get 和post 的長度限制
get 的最大長度限制是因為浏覽器和 web 伺服器限制了 URL 的長度
不同的浏覽器和web伺服器,限制的最大長度不一樣
超出了最大長度,大部分的伺服器直接截斷,有些伺服器會報414錯誤
POST 沒有限制
是否會緩存:
浏覽器會緩存和記錄 GET 請求及參數(這一點不是很安全,如參數中包含敏感資訊可能被其他從浏覽器的緩存和浏覽記錄擷取)
不緩存 POST 的請求的參數
是否會修改伺服器内容(= 幂等性 Idempotent ?):
GET 隻讀伺服器資料不會修改; 幂等簡單了解就是每次請求結果和産生的影響都一樣
POST 請求可能會導緻新的資源的建立和/或已有資源的修改