999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于CGI的嵌入式W eb服務器的設計與實現

2016-11-09 07:32:11雷娟娟陳福才
電子設計工程 2016年19期
關鍵詞:頁面嵌入式程序

朱 錦,雷娟娟,陳福才

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

基于CGI的嵌入式W eb服務器的設計與實現

朱 錦,雷娟娟,陳福才

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

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

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

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

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

1 嵌入式W eb服務器

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

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

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

2 CGI原理

2.1CGI工作原理

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

2.2CGI的傳送數據方式

CGI傳送方式[4]是使用HTML表單向Web服務器發送信息。基本語法如下:

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

1)GET方法

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

2)POST方法

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

2.3CGI環境變量

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

2.4CGI的調用方法

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

1)表單(FORM)調用方法

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

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

2)超鏈接(URL)調用方法

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

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

3 SQLite介紹

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

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

4 CGI在嵌入式W eb服務器中的動態測試

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

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

圖1 嵌入式Web服務器系統架構

4.2動態測試

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

圖2 數據查詢流程圖

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

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

執行插入操作前進行查詢數據項,見圖3:

圖3 操作前數據查詢顯示頁面

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

圖4 操作后數據查詢顯示頁面

5 結束語

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

[1]李勇.CGI在嵌入式WEB服務器中的應用和實現[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服務器的實現及其CGI應用[J].電子設計工程,2011,19(21):152-154.

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

[6]楊洋.SQLite數據庫在嵌入式系統中的應用實踐[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—),男,江蘇高郵人,碩士。研究方向:信息通信網技術。

猜你喜歡
頁面嵌入式程序
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
搭建基于Qt的嵌入式開發平臺
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
Altera加入嵌入式視覺聯盟
倍福 CX8091嵌入式控制器
自動化博覽(2014年4期)2014-02-28 22:31:15
主站蜘蛛池模板: 第一页亚洲| 国产高清色视频免费看的网址| 色噜噜狠狠狠综合曰曰曰| av一区二区三区高清久久| 国产男人的天堂| 亚洲欧洲综合| 一级香蕉人体视频| 久久成人国产精品免费软件| 日韩欧美国产区| 一级爱做片免费观看久久| 欧美一级一级做性视频| 91麻豆久久久| 久久久久人妻一区精品| 亚洲天堂视频网站| 欧美成a人片在线观看| 亚洲第一成年人网站| 国产无码性爱一区二区三区| 99久久成人国产精品免费| 亚洲一级色| 欧美a在线看| 久久久久久久久18禁秘| 第一页亚洲| 小说区 亚洲 自拍 另类| 久久一日本道色综合久久| 国产精品第页| 欧美激情伊人| 国产免费网址| 中日无码在线观看| 91小视频在线观看| 广东一级毛片| 福利在线不卡| 久久青草热| 国产毛片不卡| 有专无码视频| 日韩国产高清无码| 日本手机在线视频| 日韩成人在线网站| 日韩天堂在线观看| 992Tv视频国产精品| 自拍偷拍欧美日韩| 91av国产在线| 久久综合九九亚洲一区| 福利国产微拍广场一区视频在线| 麻豆精品国产自产在线| 亚洲三级a| 无码精油按摩潮喷在线播放 | 国产精品短篇二区| 欧美翘臀一区二区三区| 97se亚洲综合| 精品伊人久久久大香线蕉欧美| 69国产精品视频免费| 欧美精品v欧洲精品| 久久综合伊人 六十路| 亚洲国产综合自在线另类| 亚洲精品日产精品乱码不卡| 毛片三级在线观看| 免费观看三级毛片| 欧美日本在线播放| 亚洲色图综合在线| 日本免费新一区视频| 久久精品无码一区二区日韩免费| 在线免费观看a视频| 亚洲一区二区黄色| 精品少妇人妻一区二区| 999国产精品永久免费视频精品久久 | 国产不卡在线看| 国产日韩丝袜一二三区| 91亚洲免费视频| 婷婷色狠狠干| 久久精品人妻中文系列| 欧美区国产区| 欧美成人午夜视频| 国产成人精品男人的天堂| 久久国产精品影院| 日本AⅤ精品一区二区三区日| 亚洲成aⅴ人片在线影院八| 亚洲成年人片| 伊人久久精品亚洲午夜| 99在线视频网站| 伊人久久婷婷五月综合97色| 国产综合色在线视频播放线视| 亚洲国产精品不卡在线|