超文本傳輸協(xié)議請(qǐng)求的處理方法、處理裝置和服務(wù)器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及服務(wù)器技術(shù)領(lǐng)域,具體而言,涉及一種超文本傳輸協(xié)議請(qǐng)求的處理方法、一種超文本傳輸協(xié)議請(qǐng)求的處理裝置和一種服務(wù)器。
【背景技術(shù)】
[0002]目前,在Web (互聯(lián)網(wǎng))程序開(kāi)發(fā)中,HTTP (Hypertext Transfer Protocol,超文本傳輸協(xié)議)請(qǐng)求意味著業(yè)務(wù)的開(kāi)始,即由客戶(hù)端向服務(wù)器發(fā)送HTTP數(shù)據(jù)包,其中,所述HTTP數(shù)據(jù)包中包括:消息首行、對(duì)資源信息的請(qǐng)求方法、資源信息的URI (Uniform ResourceIdentifier,統(tǒng)一資源標(biāo)識(shí)符)及使用協(xié)議。HTTP請(qǐng)求中用統(tǒng)一資源標(biāo)識(shí)符指明了業(yè)務(wù)的資源信息及業(yè)務(wù)的參數(shù)。在將HTTP請(qǐng)求發(fā)送至服務(wù)器后,HTTP請(qǐng)求最終都會(huì)由業(yè)務(wù)處理邏輯的動(dòng)作(即ACT1N)來(lái)進(jìn)行處理,其中,ACT1N是用WEB程序開(kāi)發(fā)語(yǔ)言編寫(xiě),駐留在服務(wù)器中,對(duì)HTTP請(qǐng)求進(jìn)行響應(yīng),并實(shí)際處理業(yè)務(wù)邏輯,完成后將結(jié)果返回。
[0003]現(xiàn)有技術(shù)中服務(wù)器對(duì)HTTP請(qǐng)求進(jìn)行處理的方法并不統(tǒng)一,有的是將對(duì)HTTP請(qǐng)求進(jìn)行處理的方法直接寫(xiě)在程序源代碼中,如果業(yè)務(wù)的資源信息的URI發(fā)生變化,或者要增加新的業(yè)務(wù),就需要修改程序源代碼,這樣就導(dǎo)致了用戶(hù)(如程序員)的工作量非常大。而有的是在系統(tǒng)設(shè)計(jì)之初強(qiáng)制指定URI的模式,每一種模式由一個(gè)特定的ACT1N進(jìn)行處理,這種約束不明了、難管理,對(duì)那些不符合任何約定模式的URI無(wú)能為力。
[0004]因此,如何使得服務(wù)器對(duì)HTTP請(qǐng)求的處理更加靈活、簡(jiǎn)單成為目前亟待解決的問(wèn)題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明正是基于上述問(wèn)題,提出了一種新的技術(shù)方案,可以使得服務(wù)器對(duì)超文本傳輸協(xié)議請(qǐng)求的處理更加靈活、簡(jiǎn)單。
[0006]有鑒于此,本發(fā)明的第一方面提出了一種超文本傳輸協(xié)議請(qǐng)求的處理方法,用于服務(wù)器,包括:對(duì)接收到的超文本傳輸協(xié)議請(qǐng)求進(jìn)行解析,并根據(jù)解析結(jié)果在所述超文本傳輸協(xié)議請(qǐng)求中獲取統(tǒng)一資源標(biāo)識(shí)符和客戶(hù)端與所述服務(wù)器的交互類(lèi)型;根據(jù)所述交互類(lèi)型和所述統(tǒng)一資源標(biāo)識(shí)符,在已定義的多個(gè)路由中選擇目標(biāo)路由;根據(jù)所述目標(biāo)路由中業(yè)務(wù)處理邏輯的動(dòng)作,對(duì)所述超文本傳輸協(xié)議請(qǐng)求進(jìn)行處理。
[0007]在該技術(shù)方案中,通過(guò)對(duì)接收到的超文本傳輸協(xié)議請(qǐng)求(即HTTP請(qǐng)求)進(jìn)行解析,并根據(jù)解析結(jié)果在超文本傳輸協(xié)議請(qǐng)求中獲取統(tǒng)一資源標(biāo)識(shí)符和客戶(hù)端與服務(wù)器的交互類(lèi)型,其中,客戶(hù)端與服務(wù)器的交互類(lèi)型包括:讀取資源信息(GET)、向服務(wù)器提交資源信息(P0ST)、更新服務(wù)器上的資源信息(PUT)、刪除服務(wù)器上的資源信息(DELETE)、讀取資源信息的頭部信息(HEAD)、使用WebSocket協(xié)議獲取資源信息(WS),從而根據(jù)交互類(lèi)型和統(tǒng)一資源標(biāo)識(shí)符在已定義的多個(gè)路由中選擇目標(biāo)路由,其中,已定義的多個(gè)路由可以存儲(chǔ)在路由文件中,用戶(hù)可以隨時(shí)對(duì)該路由文件中的多個(gè)路由進(jìn)行修改或增加,進(jìn)一步地,根據(jù)目標(biāo)路由中業(yè)務(wù)處理邏輯的動(dòng)作對(duì)超文本傳輸協(xié)議請(qǐng)求進(jìn)行處理,因此,通過(guò)上述技術(shù)方案,避免了相關(guān)技術(shù)中由于超文本傳輸協(xié)議請(qǐng)求的處理方法直接寫(xiě)在程序源代碼中,從而避免了在超文本傳輸協(xié)議請(qǐng)求中的統(tǒng)一資源標(biāo)識(shí)符變化時(shí)需要修改程序源代碼的繁瑣操作,進(jìn)而使得服務(wù)器對(duì)超文本傳輸協(xié)議請(qǐng)求的處理更加靈活、簡(jiǎn)單。
[0008]在上述技術(shù)方案中,優(yōu)選地,所述根據(jù)所述交互類(lèi)型和所述統(tǒng)一資源標(biāo)識(shí)符,在已定義的多個(gè)路由中選擇目標(biāo)路由的步驟,具體包括:在所述多個(gè)路由中選擇與所述交互類(lèi)型和所述統(tǒng)一資源標(biāo)識(shí)符匹配的至少一個(gè)路由,并根據(jù)所述至少一個(gè)路由確定所述目標(biāo)路由。
[0009]在該技術(shù)方案中,通過(guò)將多個(gè)路由與交互類(lèi)型和統(tǒng)一資源標(biāo)識(shí)符進(jìn)行匹配,并根據(jù)與交互類(lèi)型和統(tǒng)一資源標(biāo)識(shí)符匹配的至少一個(gè)路由確定目標(biāo)路由,由于用戶(hù)可隨時(shí)對(duì)多個(gè)路由進(jìn)行修改或者增加,也就使得在統(tǒng)一資源標(biāo)識(shí)符發(fā)生改變時(shí),直接修改多個(gè)路由中的統(tǒng)一資源標(biāo)識(shí)符,然后再根據(jù)交互類(lèi)型和變化后的統(tǒng)一資源標(biāo)識(shí)符與多個(gè)路由進(jìn)行匹配來(lái)確定目標(biāo)路由,如此,可以使得服務(wù)器對(duì)超文本傳輸協(xié)議請(qǐng)求的處理更加靈活、簡(jiǎn)單。
[0010]在上述任一技術(shù)方案中,優(yōu)選地,所述在所述多個(gè)路由中選擇與所述交互類(lèi)型和所述統(tǒng)一資源標(biāo)識(shí)符匹配的至少一個(gè)路由的步驟,具體包括:在所述多個(gè)路由中選擇與所述交互類(lèi)型匹配的路由;判斷在與所述交互類(lèi)型匹配的路由中是否存在與所述統(tǒng)一資源標(biāo)識(shí)符匹配的路由;在判斷結(jié)果為是時(shí),將與所述統(tǒng)一資源標(biāo)識(shí)符匹配的路由作為所述至少一個(gè)路由;否則,構(gòu)造錯(cuò)誤信息,并將所述錯(cuò)誤信息發(fā)送至所述客戶(hù)端。
[0011]在該技術(shù)方案中,若判定在與交互類(lèi)型匹配的路由中存在與統(tǒng)一資源標(biāo)識(shí)符匹配的路由,則將與統(tǒng)一資源標(biāo)識(shí)符匹配的路由作為至少一個(gè)路由,否則,即沒(méi)有與統(tǒng)一資源標(biāo)識(shí)符匹配的路由,則構(gòu)造錯(cuò)誤信息,并將錯(cuò)誤信息發(fā)送至客戶(hù)端,因此,通過(guò)上述技術(shù)方案,可以使得服務(wù)器對(duì)超文本傳輸協(xié)議請(qǐng)求的處理更加靈活、簡(jiǎn)單。
[0012]在上述任一技術(shù)方案中,優(yōu)選地,若所述至少一個(gè)路由的數(shù)量為多個(gè),則根據(jù)所述至少一個(gè)路由確定所述目標(biāo)路由的步驟,具體包括:根據(jù)所述多個(gè)路由的路由規(guī)則獲取所述至少一個(gè)路由的優(yōu)先級(jí);將所述至少一個(gè)路由中優(yōu)先級(jí)最高的路由作為所述目標(biāo)路由。
[0013]在該技術(shù)方案中,根據(jù)多個(gè)路由的路由規(guī)則獲取至少一個(gè)路由的優(yōu)先級(jí),例如,根據(jù)路由可信度(即管理距離)來(lái)確定至少一個(gè)路由的優(yōu)先級(jí)(路由的管理距離越小,路由的優(yōu)先級(jí)越高),然后將至少一個(gè)路由中優(yōu)先級(jí)最高的路由作為目標(biāo)路由,因此,通過(guò)上述技術(shù)方案,通過(guò)選取優(yōu)先級(jí)最高的路由作為目標(biāo)路由,有效地提升了根據(jù)目標(biāo)路由中業(yè)務(wù)處理邏輯的動(dòng)作對(duì)超文本傳輸協(xié)議請(qǐng)求進(jìn)行處理的可靠性。
[0014]在上述任一技術(shù)方案中,優(yōu)選地,所述對(duì)接收到的超文本傳輸協(xié)議請(qǐng)求進(jìn)行解析的步驟之前,包括:接收來(lái)自所述客戶(hù)端的所述超文本傳輸協(xié)議請(qǐng)求;或者接收來(lái)自其他服務(wù)器轉(zhuǎn)發(fā)所述客戶(hù)端的所述超文本傳輸協(xié)議請(qǐng)求。
[0015]在該技術(shù)方案中,服務(wù)器可以接收來(lái)自客戶(hù)端的超文本傳輸協(xié)議請(qǐng)求,也可以接收來(lái)自其他服務(wù)器轉(zhuǎn)發(fā)客戶(hù)端的超文本傳輸協(xié)議請(qǐng)求,也就說(shuō)明本發(fā)明中的超文本傳輸協(xié)議請(qǐng)求的處理方法既可以獨(dú)立進(jìn)行,也可以嵌入到其他服務(wù)器中進(jìn)行。
[0016]本發(fā)明的第二方面提出了一種超文本傳輸協(xié)議請(qǐng)求的處理裝置,用于服務(wù)器,包括:獲取單元,用于對(duì)接收到的超文本傳輸協(xié)議請(qǐng)求進(jìn)行解析,并根據(jù)解析結(jié)果在所述超文本傳輸協(xié)議請(qǐng)求中獲取統(tǒng)一資源標(biāo)識(shí)符和客戶(hù)端與所述服務(wù)器的交互類(lèi)型;選擇單元,用于根據(jù)所述交互類(lèi)型和所述統(tǒng)一資源標(biāo)識(shí)符,在已定義的多個(gè)路由中選擇目標(biāo)路由;處理單元,用于根據(jù)所述目標(biāo)路由中業(yè)務(wù)處理邏輯的動(dòng)作,對(duì)所述超文本傳輸協(xié)議請(qǐng)求進(jìn)行處理。
[0017]在該技術(shù)方案中,通過(guò)對(duì)接收到的超文本傳輸協(xié)議請(qǐng)求(即HTTP請(qǐng)求)進(jìn)行解析,并根據(jù)解析結(jié)果在超文本傳輸協(xié)議請(qǐng)求中獲取統(tǒng)一資源標(biāo)識(shí)符和客戶(hù)端與服務(wù)器的交互類(lèi)型,其中,客戶(hù)端與服務(wù)器的交互類(lèi)型包括:讀取資源信息(GET)、向服務(wù)器提交資源信息(POST)、更新服務(wù)器上的資源信息(PUT)、刪除服務(wù)器上的資源信息(DELETE)、讀取資源信息的頭部信息(HEAD)、使用WebSocket協(xié)議獲取資源信息(WS),從而根據(jù)交互類(lèi)型和統(tǒng)一資源標(biāo)識(shí)符在已定義的多個(gè)路由中選擇目標(biāo)路由,其中,已定義的多個(gè)路由可以存儲(chǔ)在路由文件中,用戶(hù)可以隨時(shí)對(duì)該路由文件中的多個(gè)路由進(jìn)行修改或增加,進(jìn)一步地,根據(jù)目標(biāo)路由中業(yè)務(wù)處理邏輯的動(dòng)作對(duì)超文本傳輸協(xié)議請(qǐng)求進(jìn)行處理,因此,通過(guò)上述技術(shù)方案,避免了相關(guān)