亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于CGI的嵌入式W eb服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)

        2016-11-09 07:32:11雷娟娟陳福才
        電子設(shè)計(jì)工程 2016年19期
        關(guān)鍵詞:環(huán)境變量表單調(diào)用

        朱 錦,雷娟娟,陳福才

        (國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心 河南 鄭州450000)

        基于CGI的嵌入式W eb服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)

        朱 錦,雷娟娟,陳福才

        (國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心 河南 鄭州450000)

        為了在資源有限的嵌入式設(shè)備上能夠有效地實(shí)現(xiàn)動(dòng)態(tài)Web,本文比較了幾種Web服務(wù)器的優(yōu)缺點(diǎn),選擇了性能優(yōu)異的Boa作為嵌入式Web服務(wù)器,闡述了CGI技術(shù)的相關(guān)原理以及SQLite數(shù)據(jù)庫的定義。本文所設(shè)計(jì)的查詢數(shù)據(jù)系統(tǒng)以嵌入式Linux操作系統(tǒng)為軟件平臺(tái),以PowerPC8548為硬件平臺(tái),利用HTML表單和CGI技術(shù)完成了對(duì)后端數(shù)據(jù)庫SQLite的數(shù)據(jù)信息查詢,實(shí)現(xiàn)Web客戶端與Web服務(wù)器的動(dòng)態(tài)交互。

        嵌入式Web服務(wù)器;Boa;CGI;SQLite

        隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展和嵌入式Web應(yīng)用越來越廣泛,需要接入Internet網(wǎng)的信息化產(chǎn)品越來越多。在嵌入式系統(tǒng)中可以通過Web頁面進(jìn)行遠(yuǎn)程訪問和控制,查看或修改遠(yuǎn)程設(shè)備的數(shù)據(jù)信息。為了滿足嵌入式設(shè)備接入互聯(lián)網(wǎng)的需求以及實(shí)現(xiàn)嵌入式Web服務(wù)器與Web頁面的動(dòng)態(tài)交互[1],很多系統(tǒng)引入了CGI技術(shù)[2]。

        CGI是實(shí)現(xiàn)動(dòng)態(tài)Web的基礎(chǔ)。文中對(duì)嵌入式Web服務(wù)器Boa以及CGI技術(shù)的相關(guān)原理進(jìn)行了研究,利用CGI技術(shù)實(shí)現(xiàn)Boa服務(wù)器和Web頁面的動(dòng)態(tài)交互,實(shí)驗(yàn)結(jié)果成功證明了其可行性。

        1 嵌入式W eb服務(wù)器

        嵌入式Web服務(wù)器(Embedded Web Server,EWS)指的是在現(xiàn)場(chǎng)測(cè)試和控制設(shè)備中嵌入的Web服務(wù)器。EWS是以TCP/IP協(xié)議棧為基礎(chǔ)進(jìn)行設(shè)計(jì)的,在此基礎(chǔ)上要構(gòu)建HTTP、TCP以及UDP等協(xié)議。由于嵌入式設(shè)備的處理器能力有限,存儲(chǔ)容量也小得多,傳統(tǒng)的Web服務(wù)器很難運(yùn)行在嵌入式設(shè)備上,必須考慮使用體積更小、功能相對(duì)簡(jiǎn)單、消耗資源更少的簡(jiǎn)單Web服務(wù)器來解決這一問題,嵌入式Web服務(wù)器便應(yīng)運(yùn)而生。

        衡量嵌入式Web服務(wù)器的性能取決于以下幾個(gè)方面[3]:1)可移植性,即能方便地在多種目標(biāo)平臺(tái)上進(jìn)行移植;2)可裁減性,使用戶可以根據(jù)實(shí)際需求,裁減掉那些冗余的功能,降低嵌入式Web服務(wù)器對(duì)資源的需求;3)可交互性,即服務(wù)器與目標(biāo)系統(tǒng)間的交互性越好,說明它的使用越方便,對(duì)目標(biāo)系統(tǒng)的控制越靈活。

        常見的嵌入式Web服務(wù)器有httpd、apache、goAhead和Boa等。httpd是最簡(jiǎn)單的一種Web服務(wù)器,它的功能最弱,不支持認(rèn)證,不支持CGI,僅能提供一些靜態(tài)頁面;apache是重量級(jí)服務(wù)器,成熟穩(wěn)定,但體積較大,適合復(fù)雜的嵌入式應(yīng)用,在高負(fù)載的情況下,沒有單進(jìn)程的服務(wù)器性能高;goAhead和Boa都支持CGI,但是goAhead是個(gè)比較專用的Web服務(wù)器,大部分功能都在服務(wù)它自己提供的goform功能和ASP功能,而Boa是一個(gè)非常小巧且高效的嵌入式服務(wù)器,開放源代碼,可執(zhí)行代碼大約只有60 kB,它運(yùn)行在Linux或Unix下,支持CGI和HTTP,響應(yīng)請(qǐng)求的速度快,最多可以同時(shí)響應(yīng)50個(gè)請(qǐng)求。Boa的設(shè)計(jì)目標(biāo)是速度和安全,非常適合于嵌入式系統(tǒng)。為了實(shí)現(xiàn)動(dòng)態(tài)Web技術(shù),本文也正是采用了Boa。

        2 CGI原理

        2.1CGI工作原理

        用戶通過Web瀏覽器進(jìn)行URL訪問,形成的HTTP請(qǐng)求通過瀏覽器發(fā)送到Web服務(wù)器,Web服務(wù)器守護(hù)進(jìn)程接收到該請(qǐng)求后會(huì)創(chuàng)建一個(gè)CGI的子進(jìn)程,該子進(jìn)程將CGI請(qǐng)求的有關(guān)數(shù)據(jù)設(shè)置成環(huán)境變量,然后根據(jù)鏈接啟動(dòng)指定的CGI處理程序從環(huán)境變量中讀取數(shù)據(jù),經(jīng)過處理后,最后使用STDOUT輸出HTML形式的結(jié)果文件,經(jīng)Web服務(wù)器送回瀏覽器顯示給用戶。

        2.2CGI的傳送數(shù)據(jù)方式

        CGI傳送方式[4]是使用HTML表單向Web服務(wù)器發(fā)送信息?;菊Z法如下:

        其中method屬性定義了程序如何將數(shù)據(jù)傳送到Web服務(wù)器,傳送方式有兩種:

        1)GET方法

        使用GET方法時(shí),表單數(shù)據(jù)會(huì)附加在所指向CGI腳本的URL后一起發(fā)送給Web服務(wù)器,Web服務(wù)器將收到的表單數(shù)據(jù)賦予環(huán)境變量QUERY-STRING,CGI程序?qū)⒁宰址男问綇沫h(huán)境變量QUERY_STRING中獲取數(shù)據(jù)。

        2)POST方法

        POST方法通過使用標(biāo)準(zhǔn)輸入(STDIN)將表單數(shù)據(jù)傳送給Web服務(wù)器。將數(shù)據(jù)的長度存放在環(huán)境變量CONTENT_ LENGTH中,CGI程序先從CONTENT_LENGTH中讀出數(shù)據(jù)的長度,然后再從標(biāo)準(zhǔn)輸入STDIN中獲取數(shù)據(jù)。

        2.3CGI環(huán)境變量

        CGI環(huán)境變量[5]是CGI的重要內(nèi)容,所有的信息都是通過環(huán)境變量和CGI聯(lián)系,服務(wù)器與CGI程序交換信息的工作方式也是通過環(huán)境變量來實(shí)現(xiàn)的。當(dāng)通過瀏覽器訪問Web服務(wù)器時(shí),利用環(huán)境變量來保存所發(fā)出的請(qǐng)求,CGI程序再訪問這些環(huán)境變量,換句話說,環(huán)境變量是Web服務(wù)器和CGI腳本進(jìn)行數(shù)據(jù)傳遞的橋梁。

        2.4CGI的調(diào)用方法

        在Web網(wǎng)頁中調(diào)用CGI程序有兩種方法[5]:表單(FORM)和超鏈接(URL)。

        1)表單(FORM)調(diào)用方法

        當(dāng)Web頁面以表單的方式向Web服務(wù)器提交數(shù)據(jù)時(shí),把CGI程序存放的相對(duì)路徑放在

        標(biāo)簽的action屬性中,并把method屬性設(shè)置為GET或POST提交方式,其調(diào)用形式如下:

        2)超鏈接(URL)調(diào)用方法

        當(dāng)Web頁面以超鏈接的形式調(diào)用CGI程序時(shí),將CGI處理程序存放的相對(duì)路徑放在標(biāo)簽的href屬性中,作為鏈接對(duì)象。默認(rèn)GET提交方式,其調(diào)用形式如下:

        由于這種調(diào)用方法具有一定的局限性,只能靜態(tài)傳遞數(shù)據(jù),所以大多數(shù)情況下更多采用表單 (FORM)調(diào)用的方式。

        3 SQLite介紹

        SQLite是D.RichardHipp用C語言編寫的開源嵌入式數(shù)據(jù)庫引擎。它是完全獨(dú)立的,不具有外部依賴性。SQLite支持多數(shù)SQL92標(biāo)準(zhǔn),可以運(yùn)行在所有的操作系統(tǒng)上,并且支持大多數(shù)計(jì)算機(jī)語言。它不同于其它大部分的SQL數(shù)據(jù)庫引擎,因?yàn)樗氖滓O(shè)計(jì)目標(biāo)就是盡量的簡(jiǎn)單化,以達(dá)到易于管理、易于使用、易于嵌入到其它的大型程序中、易于維護(hù)和配置的目的。

        SQLite的特征[6]如下:零配置、無服務(wù)器、精簡(jiǎn)性、簡(jiǎn)單的訪問、可變長度的記錄。SQLite不僅小、快,而且簡(jiǎn)單、可靠,對(duì)于嵌入式系統(tǒng),其管理、執(zhí)行、維護(hù)的簡(jiǎn)單化比企業(yè)數(shù)據(jù)庫引擎提供的許多復(fù)雜應(yīng)用更重要,因此SQLite數(shù)據(jù)庫廣受開發(fā)者歡迎。

        4 CGI在嵌入式W eb服務(wù)器中的動(dòng)態(tài)測(cè)試

        4.1嵌入式W eb服務(wù)器軟件構(gòu)成及工作原理

        嵌入式Web服務(wù)器采用Boa服務(wù)器,其系統(tǒng)架構(gòu)如圖1所示。當(dāng)服務(wù)器Boa接收到客戶端的HTTP請(qǐng)求消息后,服務(wù)器對(duì)消息進(jìn)行解析。將解析后得到的各種參數(shù)傳遞給CGI,CGI應(yīng)用程序通過環(huán)境變量讀取從Web服務(wù)器解析到的數(shù)據(jù),并對(duì)客戶端的請(qǐng)求進(jìn)行解釋和處理,然后使用SQL語句來檢索或者更新數(shù)據(jù)庫,最后CGI應(yīng)用程序?qū)⑻幚斫Y(jié)果按照CGI規(guī)范返回給Web服務(wù)器,Web服務(wù)器會(huì)對(duì)CGI應(yīng)用程序的處理結(jié)果進(jìn)行解析,并在此基礎(chǔ)上生成HTTP響應(yīng)信息返回至Web前臺(tái)頁面,呈現(xiàn)給用戶,完成動(dòng)態(tài)交互。

        圖1 嵌入式Web服務(wù)器系統(tǒng)架構(gòu)

        4.2動(dòng)態(tài)測(cè)試

        下面以查詢表信息為例,介紹利用CGI處理程序?qū)崿F(xiàn)系統(tǒng)的表信息查詢驗(yàn)證,其實(shí)現(xiàn)流程圖如圖2所示:

        圖2 數(shù)據(jù)查詢流程圖

        當(dāng)用戶點(diǎn)擊查詢按鈕時(shí),程序?qū)⑦M(jìn)入Web瀏覽器查詢頁面,在該頁面下,用戶可以查詢系統(tǒng)的表信息。當(dāng)查詢表單提交給Boa服務(wù)器后,CGI程序?qū)⒈徽{(diào)用,程序首先打開用戶信息數(shù)據(jù)庫,判斷管理員的輸入是否合法,若不合法,則瀏覽器刷新當(dāng)前頁面要求重新輸入;若合法,則執(zhí)行SQL語句SELECT查詢數(shù)據(jù)庫。若表單存在的話,則瀏覽器顯示表單信息給用戶;若表單不存在的話,則程序退出。

        頁面具體操作:在瀏覽器地址欄輸入嵌入式服務(wù)器的IP地址及端口號(hào):xx.xx.xx.xx:xx,進(jìn)入查詢系統(tǒng)的登陸界面,進(jìn)行身份驗(yàn)證后,可開始數(shù)據(jù)查詢操作,下面以插入一條數(shù)據(jù)記錄項(xiàng)為例:

        執(zhí)行插入操作前進(jìn)行查詢數(shù)據(jù)項(xiàng),見圖3:

        圖3 操作前數(shù)據(jù)查詢顯示頁面

        插入操作完成后,再次進(jìn)行查詢數(shù)據(jù)項(xiàng),結(jié)果見圖4:

        圖4 操作后數(shù)據(jù)查詢顯示頁面

        5 結(jié)束語

        文中基于項(xiàng)目的實(shí)際需求選擇了Boa服務(wù)器,在嵌入式系統(tǒng)中結(jié)合C語言編寫CGI程序,完成了客戶端與嵌入式Web服務(wù)器之間的動(dòng)態(tài)交互,從而通過瀏覽器實(shí)現(xiàn)對(duì)后端數(shù)據(jù)庫SQLite的數(shù)據(jù)信息查詢。這種方案運(yùn)行效率高,通用性強(qiáng),有著廣泛的應(yīng)用前景,為用戶后續(xù)對(duì)嵌入式設(shè)備的遠(yuǎn)程監(jiān)控奠定基礎(chǔ)。

        [1]李勇.CGI在嵌入式WEB服務(wù)器中的應(yīng)用和實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2008,24(10):110-111.

        [2]WANG Zhen-xi,REN Xian-yi.Astudyon CGI ofembedded Webserver[J].International Symposiumon Computer Science and Computational Technology,2008,(1):480-483.

        [3]施忠華.基于嵌入式Linux和Sqlite的Web服務(wù)器的研究及應(yīng)用[D].南昌:南昌大學(xué),2012.

        [4]王俊,郭書君.嵌入式Web服務(wù)器的實(shí)現(xiàn)及其CGI應(yīng)用[J].電子設(shè)計(jì)工程,2011,19(21):152-154.

        [5]王寶忠,馬成.基于CGI技術(shù)的嵌入式動(dòng)態(tài)Web的研究與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2012,20(18):162-163.

        [6]楊洋.SQLite數(shù)據(jù)庫在嵌入式系統(tǒng)中的應(yīng)用實(shí)踐[J].柳鋼科技,2013,(5):41-43.

        Design and implementation of embedded W eb server based on CGI

        ZHU Jin,LEIJuan-juan,CHEN Fu-cai
        (National Digital Switching System Engineering&Technological Research Center,Zhengzhou 450000,China)

        In order to achieve the purpose of dynamic Webeffectively in the limited resources of embedded devices,by comparing the advantagesand disadvantagesof severalWeb servers,this paperselects the excellent Boa as an embedded Web server,and illustratestheoperationalprincipleofCGItechnology andSQLite database.The design of data query system in this paper takesembedded Linux operating system as software platform,and takes PowerPC8548 as the hardware platform,realizes data information query of the back-end SQLite database by usingHTML forms and CGI technology,and complete dynamicinteractivitybetweentheWeb clientandtheWeb server.

        embedded Web server;Boa;CGI;SQLite

        TN915

        A

        1674-6236(2016)19-0191-03

        2015-10-08稿件編號(hào):201510017

        朱 錦(1991—),男,江蘇高郵人,碩士。研究方向:信息通信網(wǎng)技術(shù)。

        猜你喜歡
        環(huán)境變量表單調(diào)用
        基于最大熵模型的云南思茅松潛在分布區(qū)
        電子表單系統(tǒng)應(yīng)用分析
        華東科技(2021年9期)2021-09-23 02:15:24
        從桌面右鍵菜單調(diào)用環(huán)境變量選項(xiàng)
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        徹底弄懂Windows 10環(huán)境變量
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        淺談網(wǎng)頁制作中表單的教學(xué)
        基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
        基于三階段DEA—Malmquist模型的中國省域城鎮(zhèn)化效率測(cè)度及其收斂分析
        利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
        偷拍偷窥在线精品视频| 秋霞午夜无码鲁丝片午夜精品| 亚洲日韩区在线电影| 国产精品一区又黄又粗又猛又爽| 亚洲最大免费福利视频网| 中文字幕无线码| 国产最新在线视频| 一本色道亚州综合久久精品| 国产亚洲精品97在线视频一| 亚洲成av人片在线观看麦芽| 北条麻妃在线视频观看| 日本中文字幕一区二区在线观看 | 国产精品人成在线765| 精品人妖一区二区三区四区 | 国产精品视频一区国模私拍| 国产精品人成在线观看| 青青草成人在线播放视频| 国产成人a在线观看视频免费| 成人国产午夜在线视频| 日本免费一区精品推荐| 日本高清乱码中文字幕| 一边吃奶一边摸做爽视频| 欧美成人www免费全部网站| 东京热日本道免费高清| 国产一区二区精品久久岳| 精品亚洲成a人在线观看青青| 国产国拍亚洲精品福利| 美女视频黄a视频全免费网站色 | 久久久国产乱子伦精品作者| 亚洲男人天堂2017| 亚洲高清在线视频网站| 亚洲国产a∨无码中文777| 久久精品人人爽人人爽| 精品一区二区三区影片| 一区二区三区国产色综合| 成人午夜性a级毛片免费| 国产精品18久久久久久不卡中国| 亚洲av一区二区在线| 日韩精品成人无码专区免费| 亚洲一二三区在线观看| 免费高清日本一区二区|