[發(fā)明專利]一種防止數(shù)據(jù)重復提交的方法和服務器有效
| 申請?zhí)枺?/td> | 201410098056.5 | 申請日: | 2014-03-17 |
| 公開(公告)號: | CN103841111B | 公開(公告)日: | 2017-11-14 |
| 發(fā)明(設計)人: | 趙天明 | 申請(專利權)人: | 北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06;H04L29/08 |
| 代理公司: | 北京德琦知識產權代理有限公司11018 | 代理人: | 閻敏,宋志強 |
| 地址: | 100080 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 防止 數(shù)據(jù) 重復 提交 方法 服務器 | ||
技術領域
本發(fā)明涉及Web應用系統(tǒng)技術領域,尤其涉及一種防止數(shù)據(jù)重復提交的方法和服務器。
背景技術
在當今的Web應用系統(tǒng)中,都會存在一些重要操作,比如提交申請或網(wǎng)銀支付。而這些操作都可能會因為網(wǎng)絡的延遲、應用系統(tǒng)服務超時或其它原因造成數(shù)據(jù)重復提交,目前,絕大多數(shù)Web應用系統(tǒng)中都會自己開發(fā)或采用開源框架實現(xiàn)防止數(shù)據(jù)重復提交的功能。
目前,防止數(shù)據(jù)重復提交的方法實現(xiàn)方式如下:
第一階段,如圖1所示,用戶進入網(wǎng)頁后,Web應用系統(tǒng)生成每個用戶的會話(Session),并生成該Session對應的令牌(Token),保存該Token;同時,Web應用系統(tǒng)將該Token存儲在網(wǎng)頁信息中,并將該網(wǎng)頁信息發(fā)送至客戶端。
第二階段,如圖2所示,用于提交網(wǎng)頁時,Web應用系統(tǒng)獲取網(wǎng)頁中的Token,并獲取本地保存的當前Session所對應的Token,判斷網(wǎng)頁中的Token與當前Session所對應的Token是否一致,如果是,則表明用戶是正常提交數(shù)據(jù);否則,表明該用戶是重復提交數(shù)據(jù)。
可見,現(xiàn)有的防止數(shù)據(jù)重復提交的方法必須依賴于Session機制;而對于集群部署Web應用系統(tǒng),大部分采用禁用Session,即使可以使用Session,也必須保證每臺機器的Session一致??梢姡F(xiàn)有的防止數(shù)據(jù)重復提交的方法因必須依賴于Session機制而存在一定的使用限制。
發(fā)明內容
本發(fā)明提供了一種防止數(shù)據(jù)重復提交的方法,能夠不依賴于Session機制防止數(shù)據(jù)重復提交。
本發(fā)明還提供了一種防止數(shù)據(jù)重復提交的服務器,能夠不依賴于Session機制防止數(shù)據(jù)重復提交。
本發(fā)明的技術方案是這樣實現(xiàn)的:
一種防止數(shù)據(jù)重復提交的方法,包括:
生成當前網(wǎng)頁對應的身份標識、令牌(Token)和令牌名(TokenName),保存所述身份標識與TokenName的組合與Token的對應關系;將所述身份標識、Token和TokenName發(fā)送至客戶端;
接收來自客戶端的網(wǎng)頁數(shù)據(jù)提交請求,從所述網(wǎng)頁數(shù)據(jù)提交請求中獲取身份標識、Token和TokenName;查找是否保存有該身份標識與TokenName的組合所對應的Token,如果是,則判斷所述從網(wǎng)頁數(shù)據(jù)提交請求中獲取的Token與查找到的Token是否一致,如果一致,則刪除所述查找到的Token及其對應的身份標識與TokenName的組合。
上述方法中,生成當前網(wǎng)頁的身份標識的方式可以為:
判斷所述當前網(wǎng)頁的Cookie中是否保存有當前網(wǎng)頁對應的身份標識,如果沒有,則生成所述當前網(wǎng)頁對應的身份標識,并將所述身份標識保存在當前網(wǎng)頁的Cookie中。
保存身份標識與TokenName的組合與Token的對應關系方式可以為:
將所述身份標識與TokenName作為緩存鍵值(Key),并將Token作為該緩存Key對應的緩存值(Value)進行保存。
將身份標識、Token和TokenName發(fā)送至客戶端的方式可以為:
將所述身份標識攜帶在當前網(wǎng)頁的Cookie中,并將所述當前網(wǎng)頁的Cookie發(fā)送至客戶端;
并且,將所述Token和TokenName攜帶在當前網(wǎng)頁的信息中,并將所述當前網(wǎng)頁的信息發(fā)送至客戶端。
查找是否保存有該身份標識與TokenName的組合所對應的Token之前可以進一步包括:
如果從所述網(wǎng)頁數(shù)據(jù)提交請求中無法獲取到身份標識、Token和TokenName中的任意一個,則向所述客戶端反饋數(shù)據(jù)提交失敗消息。
當查找到沒有保存該身份標識與TokenName的組合所對應的Token時,可以向所述客戶端反饋數(shù)據(jù)提交失敗消息;
當判斷出從網(wǎng)頁數(shù)據(jù)提交請求中獲取的Token與查找到的Token不一致時,可以向所述客戶端反饋數(shù)據(jù)提交失敗消息;
刪除查找到的Token及其對應的身份標識與TokenName的組合之后可以進一步包括:判斷是否刪除成功,如果是,則向所述客戶端反饋數(shù)據(jù)提交成功消息;否則,向所述客戶端反饋數(shù)據(jù)提交失敗消息。
一種防止數(shù)據(jù)重復提交的服務器,包括:
標識生成模塊,用于生成當前網(wǎng)頁對應的身份標識、Token和TokenName,
標識保存模塊,用于保存所述身份標識與TokenName的組合與Token的對應關系;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司,未經北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410098056.5/2.html,轉載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種蓄能空調系統(tǒng)
- 下一篇:提手結構及空調室外機
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結構
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置





