日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HTTP的幂等性

發布時間:2023/12/14 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTTP的幂等性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

冪等的概念:一個調用被發送多次所產生的副作用和被發送一次所產生的副作用是一樣的
而服務調用有三種結果:成功、失敗和超時。

解決超時的手段:1、超時后查詢調用結果
2、在被調用的服務中實現冪等性(在分布式系統中實現冪等性,需要實現全局 ID。)

HTTP的冪等性
HTTP GET 方法用于獲取資源,不應有副作用,所以是冪等的
HTTP HEAD 和 GET 本質是一樣的,區別在于 HEAD 不含有呈現數據,而僅僅是 HTTP頭信息,不應有副作用,也是冪等的
HTTP OPTIONS 主要用于獲取當前 URL 所支持的方法,所以也是冪等的
HTTP DELETE 方法用于刪除資源,有副作用,但它應該滿足冪等性
HTTP POST 方法用于創建資源,所對應的 URI 并非創建的資源本身,而是去執行創建動作的操作者,有副作用,不滿足冪等性
HTTP PUT 方法用于創建或更新操作,所對應的 URI 是要創建或更新的資源本身,有副作用,它應該滿足冪等性

對于 POST 的方法,很可能會出現多次提交的問題,對此一般的冪等性的設計如下:
1、首先,在表單中需要隱藏一個 token ,這個 token 可以是前端生成的一個唯一的 ID。用于防止用戶多次點擊了表單提交按鈕,而導致后端收到了多次請求,卻不能分辨是否是重復的提交。這個 token 是表單的唯一標識(這種情況其實是通過前端生成 ID 把 POST 變成了 PUT)
2、當用戶點擊提交后,后端會把用戶提交的數據和這個 token 保存在數據庫中。如果有重復提交,那么數據庫中的 token 會做排它限制,從而做到冪等性
3、當然,更為穩妥的做法是,后端成功向前端返回 302 跳轉,把用戶的前端頁跳轉到 GET 請求,把剛剛 POST 的數據給展示出來。如果是 Web 上的最好還把之前的表單設置成過期,這樣用戶不能通過瀏覽器后退按鈕來重新提交。這個模式又叫作 PRG模式 (Post/Redirect/Get)

參考:https://time.geekbang.org/column/article/4050

總結

以上是生活随笔為你收集整理的HTTP的幂等性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。