<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一種實用的嵌入式Web服務(wù)器設(shè)計

          一種實用的嵌入式Web服務(wù)器設(shè)計

          作者: 時間:2012-05-08 來源:網(wǎng)絡(luò) 收藏

          2 功能實現(xiàn)
          2.1 HTTP連接管理的功能實現(xiàn)
          所謂HTTP連接管理,主要是指對連接到端口的socket進(jìn)行監(jiān)聽、捕獲、讀寫、關(guān)閉,以及對HTTP請求報文協(xié)議字段的解析和響應(yīng)報文的生成等操作。其中,BOA可提供完整的HTTP協(xié)議數(shù)據(jù)解析及響應(yīng)報文生成的功能。因此,對和HTTP連接管理中相關(guān)的操作,基本上可直接采用BOA的相關(guān)代碼,實現(xiàn)起來難度不大。
          BOA中的連接狀態(tài)切換示意圖如圖3所示。

          本文引用地址:http://www.ex-cimer.com/article/149122.htm

          c.jpg


          當(dāng)程序每次監(jiān)聽到新的socket連接訪問接入時,首先對空閑隊列進(jìn)行判斷,如果為空,則申請一個request結(jié)構(gòu)空間,并將其插入就緒隊列的隊頭,否則可直接將一個結(jié)構(gòu)空間從空閑隊列轉(zhuǎn)入;對當(dāng)前正在處理的就緒隊列成員,當(dāng)網(wǎng)絡(luò)阻塞時則將其移入阻塞隊列的隊頭,當(dāng)訪問結(jié)束斷開連接時,則將該成員的空間信息移入空閑隊列;而當(dāng)對阻塞隊列進(jìn)行輪詢時,根據(jù)其成員所對應(yīng)的socket上是有讀寫請求還是該連接已超時,分別將其移入就緒隊列或斷開連接移入空閑隊列。
          以上過程在BOA中主要是通過get_request、fdset_update和process_requests這三個函數(shù)來實現(xiàn)的,它們也是實現(xiàn)移植的重點,其他函數(shù)則相對簡單。在移植過程中,為了適應(yīng)的應(yīng)用環(huán)境,在系統(tǒng)初始化時,給空閑隊列分配了足夠大的隊列空間,并對操作時所涉及的一些動態(tài)內(nèi)存分配的語句和結(jié)構(gòu)進(jìn)行修改,從而盡量減少連接過程中頻繁的內(nèi)存申請。另外,傳統(tǒng)的BOA對每個CGI連接啟動新的任務(wù),在此考慮到配置數(shù)據(jù)的即時生效以及系統(tǒng)資源的節(jié)約,仍然在EWS的任務(wù)環(huán)境中處理該CGI連接。實驗證明,這種處理方法簡單可行,而且在裝置的應(yīng)用環(huán)境中對的性能并無太大影響。
          2.2 訪問權(quán)限管理的功能實現(xiàn)
          為了應(yīng)用時操作的安全性,本文將訪問的頁面分成兩類:一類為配置操作頁面,儀供認(rèn)證用戶訪問;另一類為設(shè)備狀態(tài)頁面,可供任何用戶訪問。其控制主要是通過對用戶IP的判別及訪問頁面的分類來實現(xiàn)的。首先對用戶訪問的URL進(jìn)行解析,如果訪問對象為配置操作頁面,則需要進(jìn)行認(rèn)證,在此通過一個用戶權(quán)限控制管理結(jié)構(gòu)來對通過權(quán)限認(rèn)證的用戶進(jìn)行維護(hù),并提供一個時間摔制機(jī)制,使通過認(rèn)證的用戶在一定時間段內(nèi)可持續(xù)有效的對進(jìn)行訪問。如果當(dāng)前客戶端(訪問者IP)在用戶權(quán)限控制結(jié)構(gòu)內(nèi),且未超時,則通過認(rèn)證,由服務(wù)器根據(jù)本次申請的URL返回相應(yīng)頁面;若超時則需要對本次訪問的URL進(jìn)行重定向,返回密碼校驗頁面,給用戶提供密碼輸入的接口。如果訪問頁面為設(shè)備狀態(tài)頁面,則無需進(jìn)行認(rèn)證,直接由URL返回相應(yīng)頁面即可。訪問權(quán)限認(rèn)證程序流程如圖4所示。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();