GET方法是冪等的,POST不是。我們在表單提交中使用它,如果我們提交兩次它將重新提交表單數據。以及爲什麼我們不使用GET來下訂單或購買產品,例如當它是冪等的時候。GET方法如何冪等
1
A
回答
0
冪等HTTP方法是一種HTTP方法,可以多次調用而不會產生不同的結果。如果該方法僅被調用一次或十次以上,則無關緊要。結果應該是一樣的。同樣,這隻適用於結果,而不適用於資源本身。
a=10; //This is idempotent: no matter how many times we execute this statement, a will always be 4.
a++; //This is not idempotent. Executing this 10 times will result in a different outcome as when running 5 times.
現在,來到您的查詢。
如果我們使用GET方法進行訂購/採購產品,無論產品缺貨,訂單都會被放置。相比之下,如果您使用POST方法,則對於購買產品的每個新請求結果都會有所不同。
下面的例子是不是冪等,因爲每一個新的請求,結果會不同
https://accounts.google.com/Login#identifier
GET方法應該用於從瀏覽器中的信息發送到服務器的URL 。以下是GET方法的一個示例用法。
http://www.google.co.in/search?q=cristiano+ronaldo
下面是答案在評論中查詢:
當用戶再次訪問起因於一個表單提交的網頁,他們可能會呈現的頁面從他們的歷史堆棧(這是他們可能是有意的),或者他們可能會被告知該頁面已經過期。典型的用戶對後者的反應是重新加載。
如果請求是冪等的,表單作者通過指定GET方法向瀏覽器發送信號,這是無害的。
如果瀏覽器想要重新提交POST請求,通常會(實際上「應該」)警告他們的用戶,相信這將導致進一步的「宇宙狀態的永久改變」,例如,訂購另一輛梅賽德斯 - 奔馳的信用卡或其他任何東西。如果用戶在嘗試重新加載無害的冪等請求時習慣了這種情況,那麼當它們隨便地[確定]請求時,它遲早會咬他們。
現在,在實現GET和POST這兩種方法時,開發人員應該考慮安全問題並在特定方法中編寫代碼。考慮到GET方法的所有限制(url的大小等),任何代碼都可以用這兩種方法編寫,但這不是一個好的做法。
GET - >用於信息檢索(如果要讀取數據而不更改狀態)
POST - >用於信息創建/更新/刪除。
相關問題
- 1. HTTP冪等和非冪等方法?
- 2. 對非冪等請求使用GET
- 3. 我該如何測試junit方法的冪等性?
- 4. 如果GET請求被緩存,它仍然是冪等的嗎?
- 5. 矩陣冪方法
- 6. SQL冪等
- 7. 如何才能讓psql進程在冪級中冪等?
- 8. 如何使寫操作冪等?
- 9. 如何用chefspec測試冪等性
- 10. 如何創建冪等端點
- 11. JBehave - 如何編寫冪等性故事?
- 12. CQRS/EventStore冪等性?
- 13. 如何以冪等方式使用Chef添加NFS共享?
- 14. 如何以冪等方式重命名資源?
- 15. 如何在HTTP GET方法
- 16. 如何使用GET方法
- 17. HTTP方法POST是否必定是冪等的?
- 18. 爲什麼HTTP方法刪除並把認爲冪等?
- 19. RESTful Web服務中PUT方法冪等的含義是什麼?
- 20. 所有的REST方法都是冪等的嗎?
- 21. 清漆中的HTTP方法PURGE是冪等的嗎?
- 22. Ansible blockinfile模塊冪等?
- 23. 冪等PostgreSQL DDL腳本
- 24. LDIF冪等應用工具
- 25. Jira REST API冪等性
- 26. 定義jQuery Ajax方法($ .get,$ .post,$ .ajax,$ .getScript等)基本方法
- 27. 冪次冪貼圖效率如何?
- 28. 如何適應冪的直方圖matplotlib
- 29. 如何使用GET方法發送json使用GET方法如API
- 30. 如何等待IAsyncAction方法?
在GET方法中,如果我們將訂單放置兩次,如刷新或返回,再次單擊提交按鈕會發生什麼。它會放置兩次還是一次? – Dhivakar
先自己試試。 –
我試過但我無法得到確切的解決方案。如果你不介意,你可以舉一個GET和POST的例子來反映冪等性 – Dhivakar