一種基于c++的頁面訪問請(qǐng)求響應(yīng)方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)頁訪問技術(shù)領(lǐng)域,特別是涉及一種基于C++的網(wǎng)頁訪問請(qǐng)求響應(yīng)方法及系統(tǒng)。
【背景技術(shù)】
[0002]目前,隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,我們?cè)跒g覽網(wǎng)頁的時(shí)候,注重網(wǎng)頁的流暢性和快捷性以及網(wǎng)頁的安全性等問題,這就要求網(wǎng)頁開發(fā)者在開發(fā)網(wǎng)頁的時(shí)候,得很努力地去規(guī)避這些風(fēng)險(xiǎn),但還是不能從技術(shù)上去實(shí)現(xiàn)網(wǎng)頁的這些已久的問題。
[0003]在現(xiàn)有技術(shù)中,在響應(yīng)網(wǎng)頁訪問請(qǐng)求期間的編譯過程中會(huì)產(chǎn)生中間字節(jié)碼,導(dǎo)致服務(wù)器響應(yīng)速度慢,并且對(duì)硬件配置的要求較高,提高了硬件成本。
[0004]基于此,亟需一種提高服務(wù)器響應(yīng)速度且降低對(duì)硬件配置要求的頁面訪問請(qǐng)求響應(yīng)方法。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明提供了一種基于C++的網(wǎng)頁訪問請(qǐng)求響應(yīng)方法及系統(tǒng),以實(shí)現(xiàn)提高服務(wù)器響應(yīng)速度且降低對(duì)硬件配置要求的目的。
[0006]為解決上述技術(shù)問題,本發(fā)明提供一種基于C++的網(wǎng)頁訪問請(qǐng)求響應(yīng)方法,使用C++編程語言實(shí)現(xiàn)所述方法,所述方法包括:
[0007]接收來自客戶端的網(wǎng)頁訪問請(qǐng)求;其中,所述網(wǎng)頁訪問請(qǐng)求包括API接口參數(shù)和FastCGI進(jìn)程參數(shù);
[0008]確定與所述網(wǎng)頁訪問請(qǐng)求相對(duì)應(yīng)的API接口,并利用所述API接口為所述網(wǎng)頁訪問請(qǐng)求分配FastCGI進(jìn)程;
[0009]利用所述FastCGI進(jìn)程為所述網(wǎng)頁訪問請(qǐng)求提供服務(wù)。
[0010]上述方法中,優(yōu)選的,所述確定與所述網(wǎng)頁訪問請(qǐng)求相對(duì)應(yīng)的API接口,并利用所述API接口為所述網(wǎng)頁訪問請(qǐng)求分配FastCGI進(jìn)程包括:
[0011 ] 參考所述API接口參數(shù),確定與所述API接口參數(shù)相對(duì)應(yīng)的所述API接口 ;
[0012]利用所述API接口,參考所述FastCGI進(jìn)程參數(shù),為所述網(wǎng)頁訪問請(qǐng)求分配與所述FastCGI進(jìn)程參數(shù)相對(duì)應(yīng)的所述FastCGI進(jìn)程。
[0013]上述方法中,優(yōu)選的,在所述為所述網(wǎng)頁訪問請(qǐng)求分配與所述FastCGI進(jìn)程參數(shù)相對(duì)應(yīng)的所述FastCGI進(jìn)程之前,還包括:
[0014]生成與所述FastCGI進(jìn)程參數(shù)相對(duì)應(yīng)的所述FastCGI進(jìn)程。
[0015]上述方法中,優(yōu)選的,所述利用所述FastCGI進(jìn)程為所述網(wǎng)頁訪問請(qǐng)求提供服務(wù)包括:
[0016]利用所述FastCGI進(jìn)程生成的.dll文件為所述網(wǎng)頁訪問請(qǐng)求提供服務(wù)。
[0017]本發(fā)明還提供了一種基于C++的網(wǎng)頁訪問請(qǐng)求響應(yīng)系統(tǒng),使用C++編程語言實(shí)現(xiàn)所述系統(tǒng),所述系統(tǒng)包括:
[0018]請(qǐng)求接收單元,用于接收來自客戶端的網(wǎng)頁訪問請(qǐng)求;其中,所述網(wǎng)頁訪問請(qǐng)求包括API接口參數(shù)和FastCGI進(jìn)程參數(shù);
[0019]進(jìn)程分配單元,用于確定與所述網(wǎng)頁訪問請(qǐng)求相對(duì)應(yīng)的API接口,并利用所述API接口為所述網(wǎng)頁訪問請(qǐng)求分配FastCGI進(jìn)程;
[0020]服務(wù)提供單元,用于利用所述FastCGI進(jìn)程為所述網(wǎng)頁訪問請(qǐng)求提供服務(wù)。
[0021]上述系統(tǒng)中,優(yōu)選的,所述進(jìn)程分配單元包括:
[0022]API接口確定子單元,用于參考所述API接口參數(shù),確定與所述API接口參數(shù)相對(duì)應(yīng)的所述API接口 ;
[0023]進(jìn)程分配子單元,用于利用所述API接口,參考所述FastCGI進(jìn)程參數(shù),為所述網(wǎng)頁訪問請(qǐng)求分配與所述FastCGI進(jìn)程參數(shù)相對(duì)應(yīng)的所述FastCGI進(jìn)程。
[0024]上述系統(tǒng)中,優(yōu)選的,還包括:
[0025]進(jìn)程生成單元,用于在所述為所述網(wǎng)頁訪問請(qǐng)求分配與所述FastCGI進(jìn)程參數(shù)相對(duì)應(yīng)的所述FastCGI進(jìn)程之前,生成與所述FastCGI進(jìn)程參數(shù)相對(duì)應(yīng)的所述FastCGI進(jìn)程。
[0026]上述系統(tǒng)中,優(yōu)選的,所述服務(wù)提供單元具體用于利用所述FastCGI進(jìn)程生成的.dll文件為所述網(wǎng)頁訪問請(qǐng)求提供服務(wù)。
[0027]以上本發(fā)明提供的一種基于C++的網(wǎng)頁訪問請(qǐng)求響應(yīng)方法及系統(tǒng),使用C++編程語言實(shí)現(xiàn)上述方法及系統(tǒng),具體地,服務(wù)器首先接收來自客戶端的網(wǎng)頁訪問請(qǐng)求;然后確定與該網(wǎng)頁訪問請(qǐng)求相對(duì)應(yīng)的API接口,并利用這個(gè)API接口為網(wǎng)頁訪問請(qǐng)求分配FastCGI進(jìn)程;最后利用該FastCGI進(jìn)程為網(wǎng)頁訪問請(qǐng)求提供服務(wù)。以上技術(shù)方案中,C++語言的工作過程分為:編譯和鏈接,在進(jìn)行網(wǎng)頁的開發(fā)時(shí),將網(wǎng)頁訪問請(qǐng)求以參數(shù)的形式傳遞到服務(wù)器,采用通用API接口匹配相應(yīng)的事件,中間不涉及代碼的傳遞和解析。相較現(xiàn)有技術(shù)中在響應(yīng)網(wǎng)頁訪問請(qǐng)求期間的編譯過程中會(huì)產(chǎn)生中間字節(jié)碼,有效提高了服務(wù)器響應(yīng)速度且降低了對(duì)硬件配置要求。
【附圖說明】
[0028]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0029]圖1為本發(fā)明實(shí)施例提供的一種基于C++的網(wǎng)頁訪問請(qǐng)求響應(yīng)方法的流程圖;
[0030]圖2為本發(fā)明實(shí)施例提供的一種FastCGI工作示意圖;
[0031]圖3為本發(fā)明實(shí)施例提供的一種基于C++的網(wǎng)頁訪問請(qǐng)求響應(yīng)系統(tǒng)的結(jié)構(gòu)框圖示意圖。
【具體實(shí)施方式】
[0032]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0033]本發(fā)明的核心是提供一種基于C++的網(wǎng)頁訪問請(qǐng)求響應(yīng)方法及系統(tǒng),以實(shí)現(xiàn)提高服務(wù)器響應(yīng)速度且降低對(duì)硬件配置要求的目的。
[0034]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明。
[0035]參考圖1,圖1示出了本發(fā)明實(shí)施例提供的一種基于C++的網(wǎng)頁訪問請(qǐng)求響應(yīng)方法的流程圖,該方法具體可以包括如下步驟:
[0036]步驟S100、接收來自客戶端的網(wǎng)頁訪問請(qǐng)求;
[0037]步驟S101、確定與網(wǎng)頁訪問請(qǐng)求相對(duì)應(yīng)的API接口,并利用API接口為網(wǎng)頁訪問請(qǐng)求分配FastCGI進(jìn)程;
[0038]具體地,網(wǎng)頁訪問請(qǐng)求包括API接口參數(shù)和FastCGI進(jìn)程參數(shù);參考API接口參數(shù),確定與API接口參數(shù)相對(duì)應(yīng)的API接口 ;利用API接口,參考FastCGI進(jìn)程參數(shù),生成與FastCGI進(jìn)程參數(shù)相對(duì)應(yīng)的FastCGI進(jìn)程,然后為網(wǎng)頁訪問請(qǐng)求分配這個(gè)生成的FastCGI進(jìn)程。
[0039]編譯不泄露代碼的設(shè)計(jì):根據(jù)網(wǎng)頁訪問請(qǐng)求的參數(shù)去匹配通用的API接口,生成的FastCGI進(jìn)程都是通用的,只是參數(shù)不同,可確保用戶的保密性,由于采用C++編譯型語言做開發(fā)語言,企業(yè)所發(fā)布的網(wǎng)站或Web應(yīng)用產(chǎn)品將不必?fù)?dān)心被竊取源代碼,使能更專注于軟件品質(zhì)的提升。
[0040]本發(fā)明實(shí)施例方法的執(zhí)行主體為服務(wù)器,每次當(dāng)客戶端請(qǐng)求一個(gè)CGI的時(shí)候,月艮務(wù)器就請(qǐng)求操作系統(tǒng)生成一個(gè)新的CGI進(jìn)程;當(dāng)CGI滿足請(qǐng)求的要求后,服務(wù)器就殺死這個(gè)進(jìn)程。而FastCGI技術(shù)的機(jī)制為:FastCGI程序一旦產(chǎn)生后,它可以持續(xù)工作,一直保持滿足客戶的請(qǐng)求直到自己被明確終止。如果希望通過協(xié)同處理來提高程序的性能,可以請(qǐng)求服務(wù)器運(yùn)行多個(gè)FastCGI進(jìn)程。并且服務(wù)器對(duì)客戶端的每個(gè)請(qǐng)求都要重復(fù)這樣的過程。服務(wù)器將CGI環(huán)境變量和標(biāo)準(zhǔn)輸入發(fā)送到FastCGI子進(jìn)程fcgi程序。和php不同的是fcgi程序把頁面邏輯從fcgi程序?qū)用嬉频蕉嗔艘粚拥膁ll層面,方便更新頁面邏輯,因?yàn)轫撁孢壿嫿?jīng)常要變換,所以直接用可執(zhí)行文件會(huì)很困難。同時(shí)我們還可以為開發(fā)者提供一套框架用于html到cpp處理邏輯的生產(chǎn),然后編譯成動(dòng)態(tài)鏈接庫處理頁面邏輯。
[0041]其中,CGI (Common Gateway Interface)公共網(wǎng)關(guān)接口,是HTTP服務(wù)器與其他程序通信的工具。FastCGI是一個(gè)long-live (常駐)型的CGI,支持分布式計(jì)算,它將CGI解釋器進(jìn)程保持在內(nèi)存中并因此獲得較高的性能。如圖2所示,F(xiàn)astCGI的工作方式是接收服務(wù)器接收到的來自客戶端的頁面訪問請(qǐng)求,并以HTTP Request的方式進(jìn)行響應(yīng),實(shí)現(xiàn)了客戶端的應(yīng)用程序與Web服務(wù)器的分離。不過,它的使用需要在Web服務(wù)器中安裝支持組件,目前支持 Apache、Nginx、IIS、Lighttpd 等。
[0042]由于FastCGI進(jìn)程并不需要不斷產(chǎn)生新進(jìn)程,可以大大降低服務(wù)器的壓力,并且可以產(chǎn)生較高的應(yīng)用效率。如今,流行的Jav