對於我的工作,我正在瀏覽一些JavaScript文件,並發現一些使用POST的AJAX調用,但沒有發送任何數據。看起來他們已經習慣了,但是後端更新了,數據並不需要,而且以前的開發者把它們留作POST(或者他們只是複製&粘貼$.ajax
來自其他文件的調用,並刪除了數據值)。GET vs空POST
我將這些空的POST請求更改爲GET請求。我假設使用GET而不是空POST是更高效的。我看過,並沒有發現任何有用的東西。
那麼,在未發送數據的情況下使用GET而不是POST更有效嗎?
對於我的工作,我正在瀏覽一些JavaScript文件,並發現一些使用POST的AJAX調用,但沒有發送任何數據。看起來他們已經習慣了,但是後端更新了,數據並不需要,而且以前的開發者把它們留作POST(或者他們只是複製&粘貼$.ajax
來自其他文件的調用,並刪除了數據值)。GET vs空POST
我將這些空的POST請求更改爲GET請求。我假設使用GET而不是空POST是更高效的。我看過,並沒有發現任何有用的東西。
那麼,在未發送數據的情況下使用GET而不是POST更有效嗎?
我認爲GET和POST不是一個效率問題,而是一個語義問題。 POST請求的意圖是什麼?如果意圖是以某種方式改變系統的狀態,那麼我會建議將它們留作POST。如果意圖只是從系統中檢索一些數據,那麼我會將它們更改爲GET。
由於GET和POST請求都可以接受參數,所以數據參數的問題並沒有真正發揮作用。 (通過發佈數據獲取查詢字符串和POST)
理論問題之外,有真正的理由使用GET或POST。例如,GET請求可以被Web服務器,代理服務器和客戶端緩存,而POST請求永遠不會被緩存AFAIK。我相信還有其他的不同之處,但是堅持請求的語義性質應該爲你照顧它們。
而不是性能的原因,它是兩個動詞的含義的差異。 GET不應該更改請求的資源,而POST可能會這樣做。
除了GET
有一個字符小於的事實,我懷疑是否有任何性能差異。兩個請求都有確切的標題(除了方法部分)和沒有主體。他們幾乎完全相同。
例如:
GET /someResource.ext HTTP/1.1
Accept: text/plain
Accept-Encoding: gzip
// empty line //
與
POST /someResource.ext HTTP/1.1
Accept: text/plain
Accept-Encoding: gzip
// empty line //
但比其他選擇一個時,你應該記住他們的目的。 GET時,應使用需要從服務器檢索的東西,而應該POST,當您需要發送一些東西到服務器使用(發送作爲給,還不如在發送參數)。
http://stackoverflow.com/questions/46585/when-do-you-use-post-and-when-do-you-use-get – thirtydot 2011-03-04 21:56:22
謝謝你們:-P – 2011-03-05 03:13:46