• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于CGI的嵌入式W eb服務器的設計與實現(xiàn)

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

      朱 錦,雷娟娟,陳福才

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

      基于CGI的嵌入式W eb服務器的設計與實現(xiàn)

      朱 錦,雷娟娟,陳福才

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

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

      嵌入式Web服務器;Boa;CGI;SQLite

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

      CGI是實現(xiàn)動態(tài)Web的基礎。文中對嵌入式Web服務器Boa以及CGI技術的相關原理進行了研究,利用CGI技術實現(xiàn)Boa服務器和Web頁面的動態(tài)交互,實驗結果成功證明了其可行性。

      1 嵌入式W eb服務器

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

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

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

      2 CGI原理

      2.1CGI工作原理

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

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

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

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

      1)GET方法

      使用GET方法時,表單數(shù)據(jù)會附加在所指向CGI腳本的URL后一起發(fā)送給Web服務器,Web服務器將收到的表單數(shù)據(jù)賦予環(huán)境變量QUERY-STRING,CGI程序將以字符串的形式從環(huán)境變量QUERY_STRING中獲取數(shù)據(jù)。

      2)POST方法

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

      2.3CGI環(huán)境變量

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

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

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

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

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

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

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

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

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

      3 SQLite介紹

      SQLite是D.RichardHipp用C語言編寫的開源嵌入式數(shù)據(jù)庫引擎。它是完全獨立的,不具有外部依賴性。SQLite支持多數(shù)SQL92標準,可以運行在所有的操作系統(tǒng)上,并且支持大多數(shù)計算機語言。它不同于其它大部分的SQL數(shù)據(jù)庫引擎,因為它的首要設計目標就是盡量的簡單化,以達到易于管理、易于使用、易于嵌入到其它的大型程序中、易于維護和配置的目的。

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

      4 CGI在嵌入式W eb服務器中的動態(tài)測試

      4.1嵌入式W eb服務器軟件構成及工作原理

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

      圖1 嵌入式Web服務器系統(tǒng)架構

      4.2動態(tài)測試

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

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

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

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

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

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

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

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

      5 結束語

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

      [1]李勇.CGI在嵌入式WEB服務器中的應用和實現(xiàn)[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服務器的研究及應用[D].南昌:南昌大學,2012.

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

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

      [6]楊洋.SQLite數(shù)據(jù)庫在嵌入式系統(tǒng)中的應用實踐[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稿件編號:201510017

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

      猜你喜歡
      環(huán)境變量表單調(diào)用
      基于最大熵模型的云南思茅松潛在分布區(qū)
      電子表單系統(tǒng)應用分析
      華東科技(2021年9期)2021-09-23 02:15:24
      從桌面右鍵菜單調(diào)用環(huán)境變量選項
      核電項目物項調(diào)用管理的應用研究
      徹底弄懂Windows 10環(huán)境變量
      LabWindows/CVI下基于ActiveX技術的Excel調(diào)用
      測控技術(2018年5期)2018-12-09 09:04:46
      淺談網(wǎng)頁制作中表單的教學
      基于系統(tǒng)調(diào)用的惡意軟件檢測技術研究
      基于三階段DEA—Malmquist模型的中國省域城鎮(zhèn)化效率測度及其收斂分析
      利用RFC技術實現(xiàn)SAP系統(tǒng)接口通信
      治多县| 高州市| 兰州市| 德保县| 勐海县| 曲松县| 平武县| 德江县| 凌云县| 集安市| 长子县| 涟源市| 宽甸| 内黄县| 东阳市| 灵石县| 介休市| 秀山| 乐至县| 张家港市| 雅安市| 宁晋县| 武夷山市| 安达市| 阆中市| 汉川市| 武冈市| 大方县| 历史| 阳高县| 延寿县| 喀喇| 武强县| 贺州市| 湖南省| 西藏| 子洲县| 永川市| 西充县| 新安县| 定日县|