關於嵌入式web伺服器

來源:互聯網
上載者:User

標籤:改變   伺服器   瞭解   標籤   速度   網關   面向   maker   工作流程   

1.boa的設定檔boa.conf

  

    Port 80 //服務訪問連接埠

    User 0
    Group 0

    ErrorLog /var/log/boa/error_log //錯誤記錄檔地址
    AccessLog /var/log/boa/access_log //訪問記錄檔

    DocumentRoot /var/www //HTML文檔的主目錄

    UserDir public_html //

    DirectoryIndex index.html //預設訪問檔案

    DirectoryMaker /usr/lib/boa/boa_indexer

    KeepAliveMax 1000 //一個串連所允許的HTTP持續作用請求最大數目

    KeepAliveTimeout 10 //HTTP持續作用中伺服器在兩次請求之間等待的時間數,以秒為單位

    MimeTypes /etc/mime.types //指明mime.types檔案位置

    DefaultType text/plain //副檔名沒有或未知的話,使用的預設MIME類型

    CGIPath /bin:/usr/bin:/usr/local/bin //提供CGI程式的PATH環境變數值

    Alias /doc /usr/doc //為路徑加上別名

    ScriptAlias /cgi-bin/ /var/www/cgi-bin/ //輸入網站和CGI指令碼位置

 

2.boa簡介

  

BOA
========================
伺服器是一個小巧高效的web伺服器,是一個運行於unix或linux下的,支援CGI的、適合於嵌入式系統的單任務的http伺服器,原始碼開放、效能高。  

是一種非常小巧的Web伺服器,其可執行代碼只有大約60KB左右。作為一種單任務Web伺服器,Boa只能依次完成使用者的請求,而不會fork出新的進程來處理並發串連請求。但Boa支援CGI,能夠為CGI程式fork出一個進程來執行。Boa的設計目標是速度和安全。   


CGI
========================
在物理上是一段程式,運行在伺服器上,提供同用戶端HTML頁面的介面。即用戶端與伺服器的介面。   

比如留言本的工作流程:先由使用者在用戶端輸入一些資訊,如名字之類的東西。接著使用者按一下“留言”(到目前為止工作都在用戶端),瀏覽器把這些資訊傳送到伺服器的CGI目錄下特定的cgi程式中,於是cgi程式在伺服器上按照預定的方法進行處理。在本例中就是把使用者提交的資訊存入指定的檔案中。然後cgi程式給用戶端發送一個資訊,表示請求的任務已經結束。此時使用者在瀏覽器裡將看到“留言結束”的字樣。整個過程結束。

 

3.CGI簡介


CGI簡介:
=====================
一、概念:公用網關介面CGI(Common GatewayInterface) 是WWW技術中最重要的技術之一,有著不可替代的重要地位。CGI是外部應用程式(CGI程式)與Web伺服器之間的介面標準,是在CGI程式和Web伺服器之間傳遞資訊的規程。CGI規範允許Web伺服器執行外部程式,並將它們的輸出發送給Web瀏覽器,CGI將Web的一組簡單的靜態超媒體文檔變成一個完整的新的互動式媒體。

在物理上,CGI是一段程式,運行在伺服器上,提供同用戶端HTML頁面的介面。這樣說大概還不好理解。

那麼我們看一個實際例子:
====================================
現在的個人首頁上大部分都有一個留言本。留言本的工作是這樣的:先由使用者在用戶端輸入一些資訊,如名字之類的東西。接著使用者按一下“留言”(到目前為止工作都在用戶端),瀏覽器把這些資訊傳送到伺服器的CGI目錄下特定的cgi程式中,於是cgi程式在伺服器上按照預定的方法進行處理。在本例中就是把使用者提交的資訊存入指定的檔案中。然後cgi程式給用戶端發送一個資訊,表示請求的任務已經結束。此時使用者在瀏覽器裡將看到“留言結束”的字樣。整個過程結束。


二、功能:絕大多數的CGI程式被用來解釋處理來自表單的輸入資訊,並在伺服器產生相應的處理,或將相應的資訊反饋給瀏覽器。CGI程式使網頁具有互動功能。

CGI應用程式主要的用途有以下幾種:   

1.根據瀏覽者填寫的HTML表單發送定製的回覆;   

2.建立可單擊的映像縮小圖;   

3.建立一個瀏覽者可以搜尋內容的資料庫;   

4.提供伺服器與資料庫的介面,並把結果轉換成HTML文檔;   

5.製作動態HTML文擋。

 

三、處理步驟:

  ⑴通過Internet把使用者請求送到伺服器。
  
⑵伺服器接收使用者請求並交給CGI程式處理。
 
⑶CGI程式把處理結果傳送給伺服器。  
 
⑷伺服器把結果送回到使用者。

四、優點:
  CGI可以為我們提供許多HTML無法做到的功能。比如 a.一個記數器 b.顧客資訊表格的提交以及統計 c.搜尋程式 d.WEB資料庫,用Html是沒有辦法記住客戶的任何資訊的.

用Html也是無法把資訊記錄到某一個特定檔案裡的。要把用戶端的資訊記錄在伺服器的硬碟上,就要用到CGI。這是CGI最重要的作用,它補充了Html的不足。  

使在網路伺服器下運行外部分應用程式(或網關)成為可能。CGI-BIN 目錄是存放CGI指令碼的地方。這些指令碼使WWW伺服器和瀏覽器能運行外部程式,而無需啟動另一個原因程式。

  它是運行在Web伺服器上的一個程式,並由來自於瀏覽者的輸入觸發。CGI是在HTTP伺服器下運行外部程式(或網關)的一個介面,它能讓網路使用者訪問遠程系統上的使用類型程式,就好像他們
在實際使用那些遠端電腦一樣。   

CGI能夠讓瀏覽者與伺服器進行互動,如果你曾經遇到過在網路上填表或者進行搜尋,就很有可能就是用的CGI。   


五、應用程式工作原理:
  1.瀏覽器通過HTML表單或超連結請求指上一個CGI應用程式的URL。   

2.伺服器收發到請求。   

3.伺服器執行指定所CGI應用程式。   

4.CGI應用程式執行所需要的操作,通常是基於瀏覽者輸入的內容。   

5.CGI應用程式把結果格式化為網路伺服器和瀏覽器能夠理解的文檔(通常是HTML網頁)。   

6.網路伺服器把結果返回到瀏覽器中。


六、注意的問題
  CGI應用程式運行在瀏覽器可以請求的伺服器系統上,執行時需要使用伺服器CPU時間和記憶體。如果有成千上萬的這種程式會同時運行,那會對伺服器系統提出極高的要求。你要謹慎考慮這個問題,以防止伺服器系統崩潰。   

不完善的CGI應用程式可能成為別人非法進人伺服器系統的通道,有可能導致重要的資料被刪除或外泄。

 4.XML簡介

一、概念:
==================
XML(Extensible Markup Language),一種擴充性標識語言。"擴充性""標識""語言"。每一個詞都明確的點明了XML的重要
特點和功能。我們來仔細分析:


1.擴充性---使用XML,你可以為你的文檔建立自己的標記(tags)。
=================
XML的第一個詞是"擴充性",這正是XML強大的功能和彈性的原因。
在HTML裡,有許多固定的標記,我們必須記住然後使用它們,你不能使用HTML規範裡沒有的標記。而在XML中,你能建立
任何你需要的標記。你可以充分發揮你的想象力,給你的文檔起一些好記的標記名稱。比如,你的文檔裡包含一些遊戲
的攻略,你可以建立一個名為<game>的標記,然後在<game>下再根據遊戲類別建立<RPG>,<SLG>等標記。只要清晰,易於
理解你可以建立任何數量的標記。


2.標識---使用XML你可以識別文檔中的元素。
=================
XML的第二個詞是"標識",這表明了XML的目的是標識文檔中的元素。

不論你是HTML,還是XML,標識的本質在於便於理解,如果沒有標識,你的文檔在電腦看來只是一個很長的字串,每個
字看起來都一樣,沒有重點之分。 通過標識,你的文檔才便於閱讀和理解,你可以劃分段落,列明標題。XML中,你更
可以利用其擴充性 來為文檔建立更合適的標識。

<b>frist step<b>
這裡<b>表示粗體,只用來說明是用粗體來顯示"frist step"字元,<b>本身並不包含任何實際的資訊,在頁面上你看不
到<b>,真正傳達資訊的是"frist step "。


3.語言---使用XML你要遵循特定的文法來標識你的文檔。
=================
XML第三個詞是"語言"。這表明了作為一種語言XML必須遵循一定的規則。雖然XML的擴充性允許你建立新標識,但它仍然
必須遵循特定的結構,文法和明確的定義。

在電腦領域,語言常常用來編程實現一些功能和應用,但不是所有的"語言"都是用來編程的,XML就只是一種用來定義
標識和描述資訊的語言。

 

 

二.xml結構化---XML促使文檔結構化,所有的資訊按某種關係排列。
====================
"結構化"聽起來太抽象了,我們這樣理解,結構化就是為你的文檔建立一個架構,就象寫文章先寫一個提綱。結構化使
你的文檔看起來不會雜亂無章,每一部分都緊密聯絡,形成一個整體。

結構化有兩個原則:
1.每一部分(每一個元素)都和其他元素有關聯。關聯的級數就形成了結構。
2.標識本身的含義與它描述的資訊相分離。

我們來看一個簡單的例子協助理解:
<?xml version="1.0" encoding="GB2312"?>
<myfile>
<title>XML輕鬆學習手冊</title>
<chapter>XML快速入門
<para>什麼是XML</para>
<para>使用XML的好處</para>
</chapter>
<chapter>XML的概念
<para>擴充性</para>
<para>標識</para>
</chapter>
</myfile>
這是本文的XML描述文檔,可以看到標識分三級關聯,非常清晰:
<myfile>
<chapter>
<para>
...
</para>
</chapter>
</myfile>
上面這樣的文檔結構,我們又稱之為"文檔樹",主幹是父元素,如<myfile>,分支和頁是子項目,如<chapter>和<para>。

 


三、xml的好處
==================
使用XML有什麼好處?來看w3c組織(XML標準制定者)的說明:

XML使得在網路上使用SGML語言更加"簡單和直接": 簡化了定義檔案類型的過程,簡化了編程和處理SGML檔案的過程,
簡化了在Web上的傳送和共用。

1.XML可以廣泛的運用於web的任何地方;
2.XML可以滿足網路應用的需求;
3.使用XML將使編程更加簡單;
4.XML便於學習和建立;
5.XML代碼將清晰和便於閱讀理解;

 

四、xml執行個體分析
==================
XML非常簡單,學習容易。如果你熟悉HTML,你會發現它的文檔和HTML非常相似,看同樣的範例文件(例1):

?xml version="1.0"?><br><br>
<myfile><br><br>
<title>XML Quick Start</title><br><br>
<author>ajie</author><br><br>
<email>[email protected]</email><br><br>
<date>20010115</date><br><br>
</myfile>

第一行是一個XML聲明,表示文檔遵循的是XML的1.0 版的規範。

第二行定義了文檔裡面的第一個元素(element),也稱為根項目: < myfile>。這個就類似HTML裡的< HTML>開頭標記。
注意,這個名稱是自己隨便定義的。

再下面定義了四個子項目:title,author,email,和date。分別說明文章的標題,作者,郵箱和日期。當然,你可以用
中文來定義這些標籤,看上去更便於理解:

<?xml version="1.0" encoding="GB2312"?>
<文章>
<標題>XML輕鬆學習手冊</標題>
<作者>ajie</作者>
<信箱>[email protected]</信箱>
<日期>20010115</日期>
</文章>


這就是XML的文檔,任何掌握HTML的網友都可以直接寫出這樣簡單的XML文檔。


另外,學習XML還必須掌握一種頁面指令碼語言,常見的就是javascript和VB script。因為XML資料是使用script
實現HTML中調用和互動的。我們看一個最簡單的例子(例2):

1.將下面代碼存為myfile.html

<html>
<head>
<script language="Javascript" for="window" event="onload">
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("myfile.xml");
nodes = xmlDoc.documentElement.childNodes;
title.innerText = nodesitem(0).text;
author.innerText = nodes.item(1).text;
email.innerText = nodes.item(2).text;
date.innerText = nodes.item(3).text;

</script>
<title>在HTML中調用XML資料</title>
</head>
<body bgcolor="#FFFFFF">
<b>標題: </b>
<span id="title"> </span>
<b>作者: </b>
<span id="author"></span>
<b>信箱: </b>
<span id="email"></span>
<b>日期:</b>
<span id="date"></span>
</body><br><br>
</html><br><br>

2.將下面代碼存為myfile.xml

<?xml version="1.0" encoding="GB2312"?>
<myfile>
<title>XML輕鬆學習手冊</title>
<author>ajie</author>
<email>[email protected]</email>
<date>20010115</date>
</myfile>

3.將它們放在同一個目錄下,用IE5以上版本瀏覽器開啟,可以看到效果。 學習並掌握一種script,你將真正瞭解到
XML無比的強大的功能。

 

五. XML和HTML的區別
==========================
XML和HTML都來自於SGML,它們都含有標記,有著相似的文法,HTML和XML的最大區別在於:HTML是一個定型的標記語言,
它用固有的標記來描述,顯示網頁內容。比如< H1>表示首列名,有固定的尺寸。相對的,XML則沒有固定的標記,
XML不能描述網頁具體的外觀,內容,它只是描述內容的資料形式和結構。

這是一個質的區別:網頁將資料和顯示混在一起,而XML則將資料和顯示分開來。

我們看上面的例子,在myfile.htm中,我們只關心頁面的顯示方式,我們可以設計不同的介面,用不同的方式來排版頁
面,但資料是儲存在myfile.xml中,不需要任何改變。

(如果你是程式員,你會驚訝的發現,這與模組化物件導向編程的思想極其相似!其實網頁何嘗不是一種程式呢?)

正是這種區別使得XML在網路應用和資訊共用上方便,高效,可擴充。所以我們相信,XML做為一種先進的資料處理方法,
將使網路跨越到一個新的境界。

 


六. XML的嚴格格式
=======================
吸取HTML鬆散格式帶來的經驗教訓,XML一開始就堅持實行"良好的格式"。

我們先看HTML的一些語句,這些語句在HTML中隨處可見:

1.
sample
2.< b>< i>sample< /b>< /i>
3.< td>sample< /TD>
4.< font color=red>samplar< /font>

在XML文檔中,上述幾種語句的文法都是錯誤的。因為:

1.所有的標記都必須要有一個相應的結束標記;
2.所有的XML標記都必須合理嵌套;
3.所有XML標記都區分大小寫;
4.所有標記的屬性必須用""括起來;
所以上列語句在XML中正確的寫法是

1.
sample
2.< b>< i>sample< /i>< /b>
3.< td>sample< /td>
4.< font color="red">samplar< /font>

另外,XML標記必須遵循下面的命名規則:

1.名字中可以包含字母、數字以及其它字母;
2.名字不能以數字或"_" (底線) 開頭;
3.名字不能以字母 xml (或 XML 或 Xml ..) 開頭;
4.名字中不能包含空格。

在XML文檔中任何的差錯,都會得到同一個結果:網頁不能被顯示。各瀏覽器開發商已經達成協議,對XML實行嚴格而
挑剔的解析,任何細小的錯誤都會被報告。你可以將上面的myfile.xml修改一下,比如將< email>改為< Email>,然後
用IE5直接開啟myfile.xml,會得到一個出錯資訊頁面:

<?xml version="1.0" encoding="GB2312"?>
<myfile>
<title>XML輕鬆學習手冊</title>
<author>ajie</author>
<Email>[email protected]</email>
<date>20010115</date>
</myfile>

關於嵌入式web伺服器

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.