在HTTP中,PUT被定義爲idempotent的方法,POST則不是,這是一個很重要的區別。服務器
上面的話就是說,若是一個方法重複執行屢次,產生的效果是同樣的,那就是idempotent的ide
好比說put屢次結果是同樣的沒有產生別的反作用就用put.若是屢次請求產生的結果不同就用POSTui
也許你會以爲這個兩個方法的差異沒什麼大不了的,用錯了也不會有什麼問題,可是你的服務一放到internet上,若是不聽從HTTP協議的規範,就可能給本身帶來麻煩。好比,沒準Google Crawler也會訪問你的服務,若是讓一個不是indempotent的服務能夠用indempotent的方法訪問,那麼你服務器的狀態可能就會被Crawler修改,這是不該該發生的。.net
參考原文:http://blog.csdn.net/yangruibao/article/details/7898788blog