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