欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種防止數(shù)據(jù)重復(fù)提交的方法和服務(wù)器的制造方法

文檔序號(hào):7799188閱讀:265來(lái)源:國(guó)知局
一種防止數(shù)據(jù)重復(fù)提交的方法和服務(wù)器的制造方法
【專(zhuān)利摘要】本發(fā)明提出一種防止數(shù)據(jù)重復(fù)提交的方法及服務(wù)器,其中方法包括:生成當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí)、令牌(Token)和令牌名(TokenName),保存所述身份標(biāo)識(shí)與TokenName的組合與Token的對(duì)應(yīng)關(guān)系;將所述身份標(biāo)識(shí)、Token和TokenName發(fā)送至客戶(hù)端;接收來(lái)自客戶(hù)端的網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求,從所述網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取身份標(biāo)識(shí)、Token和TokenName;查找是否保存有該身份標(biāo)識(shí)與TokenName的組合所對(duì)應(yīng)的Token,如果是,則判斷所述從網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取的Token與查找到的Token是否一致,如果一致,則刪除所述查找到的Token及其對(duì)應(yīng)的身份標(biāo)識(shí)與TokenName的組合。本發(fā)明能夠不依賴(lài)于會(huì)話(huà)(Session)機(jī)制實(shí)現(xiàn)防止數(shù)據(jù)重復(fù)提交。
【專(zhuān)利說(shuō)明】一種防止數(shù)據(jù)重復(fù)提交的方法和服務(wù)器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及Web應(yīng)用系統(tǒng)【技術(shù)領(lǐng)域】,尤其涉及一種防止數(shù)據(jù)重復(fù)提交的方法和服務(wù)器。
【背景技術(shù)】
[0002]在當(dāng)今的Web應(yīng)用系統(tǒng)中,都會(huì)存在一些重要操作,比如提交申請(qǐng)或網(wǎng)銀支付。而這些操作都可能會(huì)因?yàn)榫W(wǎng)絡(luò)的延遲、應(yīng)用系統(tǒng)服務(wù)超時(shí)或其它原因造成數(shù)據(jù)重復(fù)提交,目前,絕大多數(shù)Web應(yīng)用系統(tǒng)中都會(huì)自己開(kāi)發(fā)或采用開(kāi)源框架實(shí)現(xiàn)防止數(shù)據(jù)重復(fù)提交的功倉(cāng)泛。
[0003]目前,防止數(shù)據(jù)重復(fù)提交的方法實(shí)現(xiàn)方式如下:
[0004]第一階段,如圖1所示,用戶(hù)進(jìn)入網(wǎng)頁(yè)后,Web應(yīng)用系統(tǒng)生成每個(gè)用戶(hù)的會(huì)話(huà)(Session),并生成該Session對(duì)應(yīng)的令牌(Token),保存該Token ;同時(shí),Web應(yīng)用系統(tǒng)將該Token存儲(chǔ)在網(wǎng)頁(yè)信息中,并將該網(wǎng)頁(yè)信息發(fā)送至客戶(hù)端。
[0005]第二階段,如圖2所示,用于提交網(wǎng)頁(yè)時(shí),Web應(yīng)用系統(tǒng)獲取網(wǎng)頁(yè)中的Token,并獲取本地保存的當(dāng)前Session所對(duì)應(yīng)的Token,判斷網(wǎng)頁(yè)中的Token與當(dāng)前Session所對(duì)應(yīng)的Token是否一致,如果是,則表明用戶(hù)是正常提交數(shù)據(jù);否則,表明該用戶(hù)是重復(fù)提交數(shù)據(jù)。
[0006]可見(jiàn),現(xiàn)有的防止數(shù)據(jù)重復(fù)提交的方法必須依賴(lài)于Session機(jī)制;而對(duì)于集群部署Web應(yīng)用系統(tǒng),大部分采用禁用Session,即使可以使用Session,也必須保證每臺(tái)機(jī)器的Session 一致??梢?jiàn),現(xiàn)有的防止數(shù)據(jù)重復(fù)提交的方法因必須依賴(lài)于Session機(jī)制而存在一定的使用限制。

【發(fā)明內(nèi)容】

[0007]本發(fā)明提供了一種防止數(shù)據(jù)重復(fù)提交的方法,能夠不依賴(lài)于Session機(jī)制防止數(shù)據(jù)重復(fù)提交。
[0008]本發(fā)明還提供了一種防止數(shù)據(jù)重復(fù)提交的服務(wù)器,能夠不依賴(lài)于Session機(jī)制防止數(shù)據(jù)重復(fù)提交。
[0009]本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0010]一種防止數(shù)據(jù)重復(fù)提交的方法,包括:
[0011]生成當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí)、令牌(Token)和令牌名(TokenName),保存所述身份標(biāo)識(shí)與TokenName的組合與Token的對(duì)應(yīng)關(guān)系;將所述身份標(biāo)識(shí)、Token和TokenName發(fā)送至客戶(hù)端;
[0012]接收來(lái)自客戶(hù)端的網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求,從所述網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取身份標(biāo)識(shí)、Token和TokenName ;查找是否保存有該身份標(biāo)識(shí)與TokenName的組合所對(duì)應(yīng)的Token,如果是,則判斷所述從網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取的Token與查找到的Token是否一致,如果一致,則刪除所述查找到的Token及其對(duì)應(yīng)的身份標(biāo)識(shí)與TokenName的組合。
[0013]上述方法中,生成當(dāng)前網(wǎng)頁(yè)的身份標(biāo)識(shí)的方式可以為:[0014]判斷所述當(dāng)前網(wǎng)頁(yè)的Cookie中是否保存有當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí),如果沒(méi)有,則生成所述當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí),并將所述身份標(biāo)識(shí)保存在當(dāng)前網(wǎng)頁(yè)的Cookie中。
[0015]保存身份標(biāo)識(shí)與TokenName的組合與Token的對(duì)應(yīng)關(guān)系方式可以為:
[0016]將所述身份標(biāo)識(shí)與TokenName作為緩存鍵值(Key),并將Token作為該緩存Key對(duì)應(yīng)的緩存值(Value)進(jìn)行保存。
[0017]將身份標(biāo)識(shí)、Token和TokenName發(fā)送至客戶(hù)端的方式可以為:
[0018]將所述身份標(biāo)識(shí)攜帶在當(dāng)前網(wǎng)頁(yè)的Cookie中,并將所述當(dāng)前網(wǎng)頁(yè)的Cookie發(fā)送至客戶(hù)端;
[0019]并且,將所述Token和TokenName攜帶在當(dāng)前網(wǎng)頁(yè)的信息中,并將所述當(dāng)前網(wǎng)頁(yè)的信息發(fā)送至客戶(hù)端。
[0020]查找是否保存有該身份標(biāo)識(shí)與TokenName的組合所對(duì)應(yīng)的Token之前可以進(jìn)一步包括:
[0021]如果從所述網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中無(wú)法獲取到身份標(biāo)識(shí)、Token和TokenName中的任意一個(gè),則向所述客戶(hù)端反饋數(shù)據(jù)提交失敗消息。
[0022]當(dāng)查找到?jīng)]有保存該身份標(biāo)識(shí)與TokenName的組合所對(duì)應(yīng)的Token時(shí),可以向所述客戶(hù)端反饋數(shù)據(jù)提交失敗消息;
[0023]當(dāng)判斷出從網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取的Token與查找到的Token不一致時(shí),可以向所述客戶(hù)端反饋數(shù)據(jù)提交失敗消息;
[0024]刪除查找到的Token及其對(duì)應(yīng)的身份標(biāo)識(shí)與TokenName的組合之后可以進(jìn)一步包括:判斷是否刪除成功,如果是,則向所述客戶(hù)端反饋數(shù)據(jù)提交成功消息;否則,向所述客戶(hù)端反饋數(shù)據(jù)提交失敗消息。
[0025]一種防止數(shù)據(jù)重復(fù)提交的服務(wù)器,包括:
[0026]標(biāo)識(shí)生成模塊,用于生成當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí)、Token和TokenName,
[0027]標(biāo)識(shí)保存模塊,用于保存所述身份標(biāo)識(shí)與TokenName的組合與Token的對(duì)應(yīng)關(guān)系;
[0028]標(biāo)識(shí)發(fā)送模塊,用于將所述身份標(biāo)識(shí)、Token和TokenName發(fā)送至客戶(hù)端;
[0029]重復(fù)提交判斷模塊,用于接收來(lái)自客戶(hù)端的網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求,從所述網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取身份標(biāo)識(shí)、Token和TokenName ;查找所述標(biāo)識(shí)保存模塊中是否保存有該身份標(biāo)識(shí)與TokenName的組合所對(duì)應(yīng)的Token,如果是,則判斷所述從網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取的Token與查找到的Token是否一致,如果一致,則刪除所述查找到的Token及其對(duì)應(yīng)的身份標(biāo)識(shí)與TokenName的組合。
[0030]上述服務(wù)器中,標(biāo)識(shí)生成模塊可以判斷所述當(dāng)前網(wǎng)頁(yè)的Cookie中是否保存有當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí),如果沒(méi)有,則生成所述當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí),并將所述身份標(biāo)識(shí)保存在當(dāng)前網(wǎng)頁(yè)的Cookie中。
[0031]標(biāo)識(shí)保存模塊保存身份標(biāo)識(shí)與TokenName的組合與Token的對(duì)應(yīng)關(guān)系方式可以為:將所述身份標(biāo)識(shí)與TokenName作為緩存Key,并將Token作為該緩存Key對(duì)應(yīng)的緩存Value進(jìn)行保存。
[0032]標(biāo)識(shí)發(fā)送模塊可以將所述身份標(biāo)識(shí)攜帶在當(dāng)前網(wǎng)頁(yè)的Cookie中,并將所述當(dāng)前網(wǎng)頁(yè)的Cookie發(fā)送至客戶(hù)端;并且,將所述Token和TokenName攜帶在當(dāng)前網(wǎng)頁(yè)的信息中,并將所述當(dāng)前網(wǎng)頁(yè)的信息發(fā)送至客戶(hù)端。
[0033]重復(fù)提交判斷模塊還可以用于,當(dāng)從所述網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中無(wú)法獲取到身份標(biāo)識(shí)、Token和TokenName中的任意一個(gè)時(shí),向所述客戶(hù)端反饋數(shù)據(jù)提交失敗消息。
[0034]當(dāng)查找到標(biāo)識(shí)保存模塊中沒(méi)有保存該身份標(biāo)識(shí)與TokenName的組合所對(duì)應(yīng)的Token時(shí),向所述客戶(hù)端反饋數(shù)據(jù)提交失敗消息;當(dāng)判斷出從網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取的Token與查找到的Token不一致時(shí),向所述客戶(hù)端反饋數(shù)據(jù)提交失敗消息;
[0035]刪除查找到的Token及其對(duì)應(yīng)的身份標(biāo)識(shí)與TokenName的組合之后,進(jìn)一步判斷是否刪除成功,如果是,則向所述客戶(hù)端反饋數(shù)據(jù)提交成功消息;否則,向所述客戶(hù)端反饋數(shù)據(jù)提交失敗消息。
[0036]可見(jiàn),本發(fā)明提出的防止數(shù)據(jù)重復(fù)提交的方法和服務(wù)器,能夠基于Cookie機(jī)制和緩存機(jī)制實(shí)現(xiàn)防止數(shù)據(jù)重復(fù)提交,從而解除了對(duì)Session機(jī)制的依賴(lài)。
【專(zhuān)利附圖】

【附圖說(shuō)明】
[0037]圖1為現(xiàn)有技術(shù)中防止數(shù)據(jù)重復(fù)提交的方法階段一示意圖;
[0038]圖2為現(xiàn)有技術(shù)中防止數(shù)據(jù)重復(fù)提交的方法階段二示意圖;
[0039]圖3為本發(fā)明提出的防止數(shù)據(jù)重復(fù)提交的方法實(shí)現(xiàn)流程圖;
[0040]圖4為實(shí)施例一中用戶(hù)進(jìn)入網(wǎng)頁(yè)階段的實(shí)現(xiàn)流程圖;
[0041]圖5為實(shí)施例一中用戶(hù)提交網(wǎng)頁(yè)階段的實(shí)現(xiàn)流程圖。
[0042]圖6為本發(fā)明提出的防止數(shù)據(jù)重復(fù)提交的服務(wù)器結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0043]本發(fā)明提出一種防止數(shù)據(jù)重復(fù)提交的方法,如圖3為該方法實(shí)現(xiàn)流程圖,包括:
[0044]步驟301:生成當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí)、Token和TokenName,保存所述身份標(biāo)識(shí)與TokenName的組合與Token的對(duì)應(yīng)關(guān)系;將所述身份標(biāo)識(shí)、Token和TokenName發(fā)送至客戶(hù)端;
[0045]步驟302:接收來(lái)自客戶(hù)端的網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求,從所述網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取身份標(biāo)識(shí)、Token和TokenName ;
[0046]步驟303:查找是否保存有該身份標(biāo)識(shí)與TokenName的組合所對(duì)應(yīng)的Token,如果是,則執(zhí)行步驟304 ;
[0047]步驟304:判斷所述從網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取的Token與查找到的Token是否一致,如果一致,則執(zhí)行步驟305 ;
[0048]步驟305:刪除所述查找到的Token及其對(duì)應(yīng)的身份標(biāo)識(shí)與TokenName的組合。
[0049]上述步驟301中,生成當(dāng)前網(wǎng)頁(yè)的身份標(biāo)識(shí)的方式可以為:判斷當(dāng)前網(wǎng)頁(yè)的Cookie中是否保存有當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí),如果沒(méi)有,則生成當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí),并將所述身份標(biāo)識(shí)保存在當(dāng)前網(wǎng)頁(yè)的Cookie中。
[0050]上述步驟301中,保存身份標(biāo)識(shí)與TokenName的組合與Token的對(duì)應(yīng)關(guān)系方式可以為:將身份標(biāo)識(shí)與TokenName作為緩存Key,并將Token作為該緩存Key對(duì)應(yīng)的緩存Value進(jìn)行保存。
[0051]上述步驟301中,將身份標(biāo)識(shí)、Token和TokenName發(fā)送至客戶(hù)端的方式可以為:將身份標(biāo)識(shí)攜帶在當(dāng)前網(wǎng)頁(yè)的Cookie中,并將當(dāng)前網(wǎng)頁(yè)的Cookie發(fā)送至客戶(hù)端;將Token和TokenName攜帶在當(dāng)前網(wǎng)頁(yè)的信息中,并將當(dāng)前網(wǎng)頁(yè)的信息發(fā)送至客戶(hù)端。
[0052]上述步驟302之后、并在步驟303之前可以進(jìn)一步包括:如果從網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中無(wú)法獲取到身份標(biāo)識(shí)、Token和TokenName中的任意一個(gè),貝U向客戶(hù)端反饋數(shù)據(jù)提交失敗消息。
[0053]上述步驟303可以進(jìn)一步包括:當(dāng)查找到?jīng)]有保存該身份標(biāo)識(shí)與TokenName的組合所對(duì)應(yīng)的Token時(shí),向客戶(hù)端反饋數(shù)據(jù)提交失敗消息;
[0054]上述步驟304可以進(jìn)一步包括:當(dāng)判斷出從網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取的Token與查找到的Token不一致時(shí),向所述客戶(hù)端反饋數(shù)據(jù)提交失敗消息;
[0055]上述步驟305之后可以進(jìn)一步包括:判斷是否刪除成功,如果是,則向客戶(hù)端反饋數(shù)據(jù)提交成功消息;否則,向客戶(hù)端反饋數(shù)據(jù)提交失敗消息。
[0056]以下舉具體的實(shí)施例詳細(xì)介紹。
[0057]實(shí)施例一:
[0058]本實(shí)施例基于Cookie機(jī)制和緩存機(jī)制實(shí)現(xiàn)防止網(wǎng)頁(yè)數(shù)據(jù)重復(fù)提交。本實(shí)施例可以包括用戶(hù)進(jìn)入網(wǎng)頁(yè)和提交網(wǎng)頁(yè)兩個(gè)階段。如圖4為本實(shí)施例中用戶(hù)進(jìn)入網(wǎng)頁(yè)階段的實(shí)現(xiàn)流程圖,圖5為本實(shí)施例中用戶(hù)提交網(wǎng)頁(yè)階段的實(shí)現(xiàn)流程圖。以下分別介紹上述兩個(gè)階段。
[0059]階段一:用戶(hù)進(jìn)入頁(yè)面。如圖4所示,包括如下步驟:
[0060]步驟401:用戶(hù)進(jìn)入頁(yè)面。
[0061]步驟402:服務(wù)器查詢(xún)當(dāng)前頁(yè)面的Cookie中是否存在當(dāng)前網(wǎng)頁(yè)在當(dāng)前會(huì)話(huà)中的身份標(biāo)識(shí),如果沒(méi)有,則生成當(dāng)前網(wǎng)頁(yè)在當(dāng)前會(huì)話(huà)中的身份標(biāo)識(shí),將該身份標(biāo)識(shí)保存入當(dāng)前頁(yè)面的Cookie中,將Cookie發(fā)送至客戶(hù)端;如果有,貝1J直接將Cookie發(fā)送至客戶(hù)端。
[0062]步驟403:服務(wù)器生成當(dāng)前網(wǎng)頁(yè)的Token和TokenName,將上述身份標(biāo)識(shí)與TokenName作為緩存Key,并將Token作為該緩存Key對(duì)應(yīng)的緩存Value進(jìn)行保存。
[0063]步驟404:服務(wù)器將上述Token和TokenName攜帶在當(dāng)前網(wǎng)頁(yè)的信息中,并將當(dāng)前網(wǎng)頁(yè)的信息發(fā)送至客戶(hù)端,由客戶(hù)端展示頁(yè)面。
[0064]通過(guò)本階段,服務(wù)器將當(dāng)前網(wǎng)頁(yè)的身份標(biāo)識(shí)、Token和TokenName發(fā)送至客戶(hù)端。之后,客戶(hù)端在提交網(wǎng)頁(yè)時(shí),可以將身份標(biāo)識(shí)、Token和TokenName上報(bào)至服務(wù)器,以便服務(wù)器對(duì)該客戶(hù)端進(jìn)行驗(yàn)證,具體如以下階段二:
[0065]階段二:提交網(wǎng)頁(yè),如圖5所示,包括如下步驟:
[0066]步驟501:用戶(hù)提交網(wǎng)頁(yè),向服務(wù)器發(fā)送網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求。
[0067]步驟502:服務(wù)器獲取Cookie中的身份標(biāo)識(shí),判斷是否有身份標(biāo)識(shí),如果有,則繼續(xù)執(zhí)行步驟503 ;否則,執(zhí)行步驟509。
[0068]步驟503:服務(wù)器獲取網(wǎng)頁(yè)中的TokenName,判斷是否有TokenName,如果有,則繼續(xù)執(zhí)行步驟504 ;否則,執(zhí)行步驟509。
[0069]步驟504:服務(wù)器獲取網(wǎng)頁(yè)中的Token,判斷是否有Token,如果有,則繼續(xù)執(zhí)行步驟505 ;否則,執(zhí)行步驟509。
[0070]步驟505:服務(wù)器將步驟502中獲取的身份標(biāo)識(shí)和步驟503中獲取的TokenName作為緩存Key,在緩存中查找該緩存Key對(duì)應(yīng)的緩存Value (即Token);如果有,則繼續(xù)執(zhí)行步驟506 ;否則,執(zhí)行步驟509。[0071]步驟506:服務(wù)器比較步驟505中查找到的緩存Value (即Token)與步驟504中獲取的Token是否一致,如果一致,則繼續(xù)執(zhí)行步驟507 ;否則,執(zhí)行步驟509。
[0072]步驟507:服務(wù)器刪除上述步驟505中查找到的緩存Key及其對(duì)應(yīng)的緩存Value,如果刪除成功,則繼續(xù)執(zhí)行步驟508 ;否則,執(zhí)行步驟509。
[0073]由于重復(fù)提交的判斷依據(jù)為:相同的Token和相同的身份標(biāo)識(shí)同時(shí)提交。服務(wù)器在處理兩次相同的提交請(qǐng)求時(shí),只有第一次才能刪除緩存成功;相同的第二次請(qǐng)求則刪除失敗,從而達(dá)到了防止用戶(hù)重復(fù)提交數(shù)據(jù)的目的。
[0074]步驟508:判定當(dāng)前請(qǐng)求為正常請(qǐng)求,向客戶(hù)端反饋數(shù)據(jù)提交成功消息,繼續(xù)執(zhí)行步驟510。
[0075]步驟509:判定當(dāng)前請(qǐng)求為非法請(qǐng)求,向客戶(hù)端反饋數(shù)據(jù)提交失敗消息。
[0076]步驟510:客戶(hù)端根據(jù)服務(wù)器反饋的數(shù)據(jù)提交成功/失敗消息,跳轉(zhuǎn)至數(shù)據(jù)提交成功/失敗頁(yè)面。
[0077]本發(fā)明還提出一種防止數(shù)據(jù)重復(fù)提交的服務(wù)器,如圖6為該服務(wù)器的結(jié)構(gòu)示意圖,包括:
[0078]標(biāo)識(shí)生成模塊601,用于生成當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí)、Token和TokenName,
[0079]標(biāo)識(shí)保存模塊602,用于保存所述身份標(biāo)識(shí)與TokenName的組合與Token的對(duì)應(yīng)關(guān)系;
[0080]標(biāo)識(shí)發(fā)送模塊603,用于將所述身份標(biāo)識(shí)、Token和TokenName發(fā)送至客戶(hù)端;[0081 ] 重復(fù)提交判斷模塊604,用于接收來(lái)自客戶(hù)端的網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求,從所述網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取身份標(biāo)識(shí)、Token和TokenName ;查找所述標(biāo)識(shí)保存模塊602中是否保存有該身份標(biāo)識(shí)與TokenName的組合所對(duì)應(yīng)的Token,如果是,則判斷所述從網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取的Token與查找到的Token是否一致,如果一致,則刪除所述查找到的Token及其對(duì)應(yīng)的身份標(biāo)識(shí)與TokenName的組合。
[0082]上述服務(wù)器中,標(biāo)識(shí)保存模塊602可以置于所述服務(wù)器中;也可以是置于網(wǎng)絡(luò)的緩存服務(wù)器中,與服務(wù)器通過(guò)網(wǎng)絡(luò)結(jié)構(gòu)連接。
[0083]上述服務(wù)器中,標(biāo)識(shí)生成模塊601判斷所述當(dāng)前網(wǎng)頁(yè)的Cookie中是否保存有當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí),如果沒(méi)有,則生成所述當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí),并將所述身份標(biāo)識(shí)保存在當(dāng)前網(wǎng)頁(yè)的Cookie中。
[0084]標(biāo)識(shí)保存模塊602保存身份標(biāo)識(shí)與TokenName的組合與Token的對(duì)應(yīng)關(guān)系方式可以為:將身份標(biāo)識(shí)與TokenName作為緩存Key,并將Token作為該緩存Key對(duì)應(yīng)的緩存Value進(jìn)行保存。
[0085]標(biāo)識(shí)發(fā)送模塊603將身份標(biāo)識(shí)攜帶在當(dāng)前網(wǎng)頁(yè)的Cookie中,并將當(dāng)前網(wǎng)頁(yè)的Cookie發(fā)送至客戶(hù)端;并且,將Token和TokenName攜帶在當(dāng)前網(wǎng)頁(yè)的信息中,并將當(dāng)前網(wǎng)頁(yè)的信息發(fā)送至客戶(hù)端。
[0086]重復(fù)提交判斷模塊604還可以用于,當(dāng)從網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中無(wú)法獲取到身份標(biāo)識(shí)、Token和TokenName中的任意一個(gè)時(shí),向客戶(hù)端反饋數(shù)據(jù)提交失敗消息。
[0087]重復(fù)提交判斷模塊604還可以用于,當(dāng)查找到標(biāo)識(shí)保存模塊602中沒(méi)有保存該身份標(biāo)識(shí)與TokenName的組合所對(duì)應(yīng)的Token時(shí),向客戶(hù)端反饋數(shù)據(jù)提交失敗消息;當(dāng)判斷出從網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取的Token與查找到的Token不一致時(shí),向所述客戶(hù)端反饋數(shù)據(jù)提交失敗消息;
[0088]刪除查找到的Token及其對(duì)應(yīng)的身份標(biāo)識(shí)與TokenName的組合之后,可以進(jìn)一步判斷是否刪除成功,如果是,則向客戶(hù)端反饋數(shù)據(jù)提交成功消息;否則,向客戶(hù)端反饋數(shù)據(jù)提交失敗消息。
[0089]綜上可見(jiàn),本發(fā)明提出的防止數(shù)據(jù)重復(fù)提交的方法和服務(wù)器,基于Cookie機(jī)制和緩存機(jī)制實(shí)現(xiàn)防止數(shù)據(jù)重復(fù)提交,將網(wǎng)頁(yè)的身份標(biāo)識(shí)攜帶在Cookie中發(fā)送至客戶(hù)端,并將Token和TokenName攜帶在網(wǎng)頁(yè)信息中發(fā)送至客戶(hù)端;客戶(hù)端重復(fù)提交的判斷依據(jù)是:相同的身份標(biāo)識(shí)、Token和TokenName重復(fù)提交,服務(wù)器處理兩次相同的請(qǐng)求時(shí)只有第一次刪除緩存成功,第二次請(qǐng)求則刪除失敗,從而達(dá)到防止數(shù)據(jù)重復(fù)提交的效果??梢?jiàn),本發(fā)明能夠不依賴(lài)于Session機(jī)制實(shí)現(xiàn)防止網(wǎng)頁(yè)數(shù)據(jù)的重復(fù)提交。
[0090]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1.一種防止數(shù)據(jù)重復(fù)提交的方法,其特征在于,所述方法包括: 生成當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí)、令牌Token和令牌名TokenName,保存所述身份標(biāo)識(shí)與TokenName的組合與Token的對(duì)應(yīng)關(guān)系;將所述身份標(biāo)識(shí)、Token和TokenName發(fā)送至客戶(hù)端; 接收來(lái)自客戶(hù)端的網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求,從所述網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取身份標(biāo)識(shí)、Token和TokenName ;查找是否保存有該身份標(biāo)識(shí)與TokenName的組合所對(duì)應(yīng)的Token,如果是,則判斷所述從網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取的Token與查找到的Token是否一致,如果一致,貝1J刪除所述查找到的Token及其對(duì)應(yīng)的身份標(biāo)識(shí)與TokenName的組合。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述生成當(dāng)前網(wǎng)頁(yè)的身份標(biāo)識(shí)的方式為: 判斷所述當(dāng)前網(wǎng)頁(yè)的Cookie中是否保存有當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí),如果沒(méi)有,則生成所述當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí),并將所述身份標(biāo)識(shí)保存在當(dāng)前網(wǎng)頁(yè)的Cookie中。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,保存身份標(biāo)識(shí)與TokenName的組合與Token的對(duì)應(yīng)關(guān)系方式為: 將所述身份標(biāo)識(shí)與TokenName作為緩存Key,并將Token作為該緩存Key對(duì)應(yīng)的緩存Value進(jìn)行保存。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將身份標(biāo)識(shí)、Token和TokenName發(fā)送至客戶(hù)端的方式為: 將所述身份標(biāo)識(shí)攜帶在當(dāng)前網(wǎng)頁(yè)的Cookie中,并將所述當(dāng)前網(wǎng)頁(yè)的Cookie發(fā)送至客戶(hù)端; 將所述Token和TokenName攜帶在當(dāng)前網(wǎng)頁(yè)的信息中,并將所述當(dāng)前網(wǎng)頁(yè)的信息發(fā)送至客戶(hù)端。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述查找是否保存有該身份標(biāo)識(shí)與TokenName的組合所對(duì)應(yīng)的Token之前進(jìn)一步包括: 如果從所述網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中無(wú)法獲取到身份標(biāo)識(shí)、Token和TokenName中的任意一個(gè),則向所述客戶(hù)端反饋數(shù)據(jù)提交失敗消息。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)查找到?jīng)]有保存該身份標(biāo)識(shí)與TokenName的組合所對(duì)應(yīng)的Token時(shí),向所述客戶(hù)端反饋數(shù)據(jù)提交失敗消息; 當(dāng)判斷出從網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取的Token與查找到的Token不一致時(shí),向所述客戶(hù)端反饋數(shù)據(jù)提交失敗消息; 所述刪除查找到的Token及其對(duì)應(yīng)的身份標(biāo)識(shí)與TokenName的組合之后進(jìn)一步包括:判斷是否刪除成功,如果是,則向所述客戶(hù)端反饋數(shù)據(jù)提交成功消息;否則,向所述客戶(hù)端反饋數(shù)據(jù)提交失敗消息。
7.一種防止數(shù)據(jù)重復(fù)提交的服務(wù)器,其特征在于,所述服務(wù)器包括: 標(biāo)識(shí)生成模塊,用于生成當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí)、令牌Token和令牌名TokenName, 標(biāo)識(shí)保存模塊,用于保存所述身份標(biāo)識(shí)與TokenName的組合與Token的對(duì)應(yīng)關(guān)系; 標(biāo)識(shí)發(fā)送模塊,用于將所述身份標(biāo)識(shí)、Token和TokenName發(fā)送至客戶(hù)端; 重復(fù)提交判斷模塊,用于接收來(lái)自客戶(hù)端的網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求,從所述網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取身份標(biāo)識(shí)、Token和TokenName ;查找所述標(biāo)識(shí)保存模塊中是否保存有該身份標(biāo)識(shí)與TokenName的組合所對(duì)應(yīng)的Token,如果是,則判斷所述從網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取的Token與查找到的Token是否一致,如果一致,則刪除所述查找到的Token及其對(duì)應(yīng)的身份標(biāo)識(shí)與TokenName的組合。
8.根據(jù)權(quán)利要求7所述的服務(wù)器,其特征在于,所述標(biāo)識(shí)生成模塊判斷所述當(dāng)前網(wǎng)頁(yè)的Cookie中是否保存有當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí),如果沒(méi)有,則生成所述當(dāng)前網(wǎng)頁(yè)對(duì)應(yīng)的身份標(biāo)識(shí),并將所述身份標(biāo)識(shí)保存在當(dāng)前網(wǎng)頁(yè)的Cookie中。
9.根據(jù)權(quán)利要求7所述的服務(wù)器,其特征在于,標(biāo)識(shí)保存模塊保存身份標(biāo)識(shí)與TokenName的組合與Token的對(duì)應(yīng)關(guān)系方式為:將所述身份標(biāo)識(shí)與TokenName作為緩存Key,并將Token作為該緩存Key對(duì)應(yīng)的緩存Value進(jìn)行保存。
10.根據(jù)權(quán)利要求7所述的服務(wù)器,其特征在于,所述標(biāo)識(shí)發(fā)送模塊將所述身份標(biāo)識(shí)攜帶在當(dāng)前網(wǎng)頁(yè)的Cookie中,并將所述當(dāng)前網(wǎng)頁(yè)的Cookie發(fā)送至客戶(hù)端;將所述Token和TokenName攜帶在當(dāng)前網(wǎng)頁(yè)的信息中,并將所述當(dāng)前網(wǎng)頁(yè)的信息發(fā)送至客戶(hù)端。
11.根據(jù)權(quán)利要求7所述的服務(wù)器,其特征在于,所述重復(fù)提交判斷模塊還用于,當(dāng)從所述網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中無(wú)法獲取到身份標(biāo)識(shí)、Token和TokenName中的任意一個(gè)時(shí),向所述客戶(hù)端反饋數(shù)據(jù)提交失敗消息。
12.根據(jù)權(quán)利要求7所述的服務(wù)器,其特征在于,所述重復(fù)提交判斷模塊還用于,當(dāng)查找到標(biāo)識(shí)保存模塊中沒(méi)有保存該身份標(biāo)識(shí)與TokenName的組合所對(duì)應(yīng)的Token時(shí),向所述客戶(hù)端反饋數(shù)據(jù)提交失敗消息;當(dāng)判斷出從網(wǎng)頁(yè)數(shù)據(jù)提交請(qǐng)求中獲取的Token與查找到的Token不一致時(shí),向所述客戶(hù)端反饋數(shù)據(jù)提交失敗消息; 所述重復(fù)提交判斷模塊還用于,刪除查找到的Token及其對(duì)應(yīng)的身份標(biāo)識(shí)與TokenName的組合之后,進(jìn)一步判斷是否刪除成功,如果是,則向所述客戶(hù)端反饋數(shù)據(jù)提交成功消息;否則,向所 述客戶(hù)端反饋數(shù)據(jù)提交失敗消息。
【文檔編號(hào)】H04L29/08GK103841111SQ201410098056
【公開(kāi)日】2014年6月4日 申請(qǐng)日期:2014年3月17日 優(yōu)先權(quán)日:2014年3月17日
【發(fā)明者】趙天明 申請(qǐng)人:北京京東尚科信息技術(shù)有限公司, 北京京東世紀(jì)貿(mào)易有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
聊城市| 璧山县| 志丹县| 兖州市| 天气| 平湖市| 正阳县| 临猗县| 麻栗坡县| 兴仁县| 汉阴县| 阳西县| 芮城县| 阿尔山市| 衡阳市| 科技| 香河县| 栖霞市| 澄城县| 宁陕县| 沽源县| 平乡县| 定安县| 四子王旗| 丹江口市| 乌鲁木齐市| 康乐县| 顺义区| 顺平县| 榆社县| 泸西县| 新源县| 德令哈市| 灵石县| 湖南省| 榆中县| 民勤县| 邢台市| 明溪县| 太仓市| 抚顺县|