本發(fā)明涉及軟件開發(fā)領域,尤其涉及一種輕量級sql數(shù)據(jù)庫網(wǎng)站的開發(fā)方法。
背景技術:
目前常用的web服務器iis,apache等屬于重量級web服務器(重量級主要是在軟件包的大小上比較大,軟件的耦合度大),但是速度、性能不及其他輕量級web服務器,并且消費內(nèi)存較高。使用傳統(tǒng)的select模型,比較穩(wěn)定的prefork模式為多進程模式,需要經(jīng)常派生子進程。所以消耗的cpu等服務器資源比較大?;趙eb服務器的開發(fā)框架如.netframework,java也非常龐大,對于輕量級服務來說部署和配置管理都不太方便。在這種背景下輕量高效的web數(shù)據(jù)庫框架,簡單快速部署更能滿足特定項目要求。
現(xiàn)有方案的問題點如下:
1、在系統(tǒng)構架上iis和apache占用資源比較大,對硬件的要求更高。這樣的系統(tǒng)無法在配置比較低甚至嵌入式系統(tǒng)中使用。
2、基于iis和apache的開發(fā)框架都比較龐大,框架調用繁瑣,安裝部署難度高。
技術實現(xiàn)要素:
鑒于目前技術存在的上述不足,本發(fā)明提供一種輕量級sql數(shù)據(jù)庫網(wǎng)站的開發(fā)方法,本發(fā)明的方法可以實現(xiàn)在客戶端的javascript代碼中可以直接寫sql語句,調試開發(fā)效率高,以及在sql語句使用<sql></sql>標記,由webserver做加密替換,則通過瀏覽器查看源碼是看不到原始sql語句的,安全性高,而且輕量級的webserver占用硬件資源低。
本發(fā)明的采用如下技術方案:
一種輕量級sql數(shù)據(jù)庫網(wǎng)站的開發(fā)方法,包括以下步驟:
基于c/c++或delphi的socket編程開發(fā)出輕量級多線程webserver;
基于所述webserver調用數(shù)據(jù)庫;
建立與所述webserver匹配的調用接口;
基于所述調用接口來實現(xiàn)sql數(shù)據(jù)庫網(wǎng)站的開發(fā)。
作為本發(fā)明的優(yōu)選技術方案,所述webservice根據(jù)提交上來的sql命令調用數(shù)據(jù)庫。
作為本發(fā)明的優(yōu)選技術方案,所述建立與所述webserver匹配的調用接口的步驟包括:
基于javascript封裝一套ajax的調用接口;
基于所述ajax的調用接口與所述webserver進行匹配。
作為本發(fā)明的優(yōu)選技術方案,所述javascript中sql語言通過<sql></sql>標記來表示,在服務器端讀取文件時對<sql></sql>標記的內(nèi)容做加密替換。
作為本發(fā)明的優(yōu)選技術方案,所述基于所述調用接口來實現(xiàn)sql數(shù)據(jù)庫網(wǎng)站的開發(fā)的步驟中包括:
當webserver接收到命令的時候,判斷是get還是post,如果是get命令就讀取http請求中的文件名,然后讀取該文件返回給請求方;
如果命令是post,則根據(jù)http請求中的文件名做判斷,如果是/upload則表示上傳文件操作,此時將上傳的文件從http請求中分離出來并保存到目錄下;
如果是/dbif則說明是數(shù)據(jù)庫調用,發(fā)送來的http請求是xml封裝的sql語句。
作為本發(fā)明的優(yōu)選技術方案,所述如果是/dbif則說明是數(shù)據(jù)庫調 用,發(fā)送來的http請求是xml封裝的sql語句的步驟中包括:
當接收到validaccount命令,post過來的xml中需要包含用戶名和密碼信息,在webserver驗證是否合法,并將結果封裝成xml返回請求方;
當接收到logoff命令,webserver清除保存在session中的賬號登錄狀態(tài),如果用戶訪問頁面會自動跳轉到登錄頁面;
當受到execsql命令后,post過來的xml中包含sql語句,execsql的sql語句,則執(zhí)行結果封裝成xml返回請求方;
當受到querysql命令后,post過來的xml中包含sql語句,querysql的sql語句,執(zhí)行結果封裝成xml返回請求方。
本發(fā)明涉及一種輕量級sql數(shù)據(jù)庫網(wǎng)站的開發(fā)方法,包括以下步驟:基于c/c++或delphi的socket編程開發(fā)出輕量級多線程webserver;基于所述webserver調用數(shù)據(jù)庫;建立與所述webserver匹配的調用接口;基于所述調用接口來實現(xiàn)sql數(shù)據(jù)庫網(wǎng)站的開發(fā),本發(fā)明的方法可以實現(xiàn)在客戶端的javascript代碼中可以直接寫sql語句,調試開發(fā)效率高,以及在sql語句使用<sql></sql>標記,由webserver做加密替換,則通過瀏覽器查看源碼是看不到原始sql語句的,安全性高,而且輕量級的webserver占用硬件資源低。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施的流程示意圖。
圖2、圖3為本發(fā)明中提供的具體的流程圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
如圖1-圖3所示,本發(fā)明提供一種輕量級sql數(shù)據(jù)庫網(wǎng)站的開發(fā)方法,包括以下步驟:
步驟s1:基于c/c++或delphi的socket編程開發(fā)出輕量級多線程webserver,輕量級的webserver占用硬件資源低。
步驟s2:基于所述webserver調用數(shù)據(jù)庫;其中webservice根據(jù)提交上來的sql命令調用數(shù)據(jù)庫。
步驟s3:建立與所述webserver匹配的調用接口,其中具體包括步驟s3a:基于javascript封裝一套ajax的調用接口;步驟s3b:基于所述ajax的調用接口與所述webserver進行匹配,其中javascript中sql語言通過<sql></sql>標記來表示,在服務器端讀取文件時對<sql></sql>標記的內(nèi)容做加密替換,具體為在javascript中sql語言用特殊標記如<sql></sql>表示,在服務器端讀取文件的時候可以對<sql></sql>標記的內(nèi)容做加密替換,這樣在瀏覽器端就不能直接看到sql的源代碼,保證數(shù)據(jù)庫的安全性。
步驟s4:基于所述調用接口來實現(xiàn)sql數(shù)據(jù)庫網(wǎng)站的開發(fā),具體包括步驟s4a:當webserver接收到命令的時候,判斷是get還是post,如果是get命令就讀取http請求中的文件名,然后讀取該文件返回給請求方;步驟s4b:如果命令是post,則根據(jù)http請求中的文件名做判斷,如果是/upload則表示上傳文件操作,此時將上傳的文件從http請求中分離出來并保存到目錄下;步驟s4c:如果是/dbif則說明是數(shù)據(jù)庫調用,發(fā)送來的http 請求是xml封裝的sql語句。
在本發(fā)明中,步驟s4c還包括,當接收到validaccount命令,post過來的xml中需要包含用戶名和密碼信息,在webserver驗證是否合法,并將結果封裝成xml返回請求方;當接收到logoff命令,webserver清除保存在session中的賬號登錄狀態(tài),如果用戶訪問頁面會自動跳轉到登錄頁面;當受到execsql命令后,post過來的xml中包含sql語句,execsql的sql語句,則執(zhí)行結果封裝成xml返回請求方;當受到querysql命令后,post過來的xml中包含sql語句,querysql的sql語句,執(zhí)行結果封裝成xml返回請求方。
在本發(fā)明中,當受到execsql命令后,post過來的xml中包含sql語句,execsql的sql語句必須是update/delete/insert這3種,執(zhí)行結果封裝成xml返回請求方;當受到querysql命令后,post過來的xml中包含sql語句,querysql的sql語句必須是select,執(zhí)行結果封裝成xml返回請求方,在請求方得到返回的xml后,解析內(nèi)容做出相應處理。
在本發(fā)明中,對于訪問量不是很高的場合,輕量級webserver占用系統(tǒng)資源少,建站成本更低,可以在linux免費操作系統(tǒng)上部署,軟件成本幾乎為零。開發(fā)環(huán)境使用javascript+基于ajax的webservice庫,上手快開發(fā)效率高。免去學習.netframework或者java開發(fā)框架以及相關開發(fā)工具的成本,以及安裝部署簡便,不依賴第三方庫,甚至用u盤拷貝就能部署運行。
綜上所述,本發(fā)明一種輕量級sql數(shù)據(jù)庫網(wǎng)站的開發(fā)方法,包括以下步驟:基于c/c++或delphi的socket編程開發(fā)出輕量級多線程webserver;基于所述webserver調用數(shù)據(jù)庫;建立與所述webserver匹配的調用接口;基于所述調用接口來實現(xiàn)sql數(shù)據(jù)庫網(wǎng)站的開發(fā),本發(fā)明的方法可以實現(xiàn)在客戶端的javascript代碼中可以直接寫sql語句,調試開發(fā)效率高,以及在sql語句使用<sql></sql>標記,由web server做加密替換,則通過瀏覽器查看源碼是看不到原始sql語句的,安全性高,而且輕量級的webserver占用硬件資源低。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本領域技術的技術人員在本發(fā)明公開的技術范圍內(nèi),可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應以所述權利要求的保護范圍為準。