minihttpd模塊研究報告解讀_第1頁
minihttpd模塊研究報告解讀_第2頁
minihttpd模塊研究報告解讀_第3頁
minihttpd模塊研究報告解讀_第4頁
minihttpd模塊研究報告解讀_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、mini_httpd模塊使用指南1. 前言41.1 關于本文檔41.2 背景知識41.3 術語42. mini_httpd模塊介紹53. 關于mini_httpd開源組件63.1 mini_httpd開源組件介紹63.2 mini_httpd開源組件編譯及安裝71 .2.1編譯安裝73 22文件說明:74. mini_httpd程序使用84.1 關于mini_httpd程序84.2 命令參數(shù)說明(或者配置文件說明)84.3 mini_httpd程序使用實例105. mini-httpd模塊使用場景10HistoryDateVersionChanges2011-11-30DraftA完成第一稿、

2、/、,1.刖百1.1 關于本文檔本文檔描述mini_httpd模塊的基本使用方法,為開發(fā)人員做開發(fā)時提供必要的說明。1.2 背景知識Web服務器可以解析(handles)HTTP協(xié)議。超文本傳送協(xié)議(HTTP)是一種通信協(xié)議,它允許將超文本標記語言(HTML)文檔從Web服務器傳送到Web瀏覽器。客戶機和服務器必須都支持HTTP,才能在萬維網(wǎng)上發(fā)送和接收HTML文檔并進行交互。當Web服務器接收到一個HTTP請求(request),會返回一個HTTP響應(response),例如送回一個HTML頁面。為了處理一個請求(request),Web服務器可以響應(response)一個靜態(tài)頁面或圖片

3、,進行頁面跳轉(redirect),或者通過一些其它的程序例如cgi腳本,例如:JSP(JavaServerPages腳本、servlets、ASP(ActiveServerPages)腳本、服務器端(server-side)JavaScript、或者一些其它的服務器端(server-side)技術,來動態(tài)的響應(dynamicresponse)0無論腳本的目的如何,這些服務器端(server-side)的程序通常產生一個HTML的響應(response)來讓瀏覽器可以瀏覽。1.3 術語1. HTTP:HypertextTransferProtocolHTTP協(xié)議,超文本傳輸協(xié)議。HTTP協(xié)議

4、基于請求響應模式,客戶端向服務器發(fā)送一個請求,請求頭包含請求的方法、URI、協(xié)議版本以及包含請求修飾符、客戶端信息和內容,類似MIME的消息結果。服務器則以一個狀態(tài)行為作為響應,相應的內容包括消息協(xié)議的版本,成功或錯誤編碼加上包含服務器信息,實體元信息以及可能的實體內容2. CGI:CommonGagewayInterface一種基于瀏覽器的輸入、在Web服務器上運行的程序方法。CGI腳本使瀏覽器與用戶能交互。3. Web服務器Web服務器是指存在于因特網(wǎng)上某種類型計算機的程序o當Web瀏覽器(客戶端)連到服務器上并請求文件時,服務器將處理該請求并將文件發(fā)送到該瀏覽器上,附帶的信息會告訴瀏覽器

5、如何查看該文件(即文件類型)。服務器使用HTTP(超文本傳輸協(xié)議)進行信息交流。Web服務器不僅能夠存儲信息,還能在用戶通過WebSU覽器提供的信息的基礎上運行腳本和程序。4. 瀏覽器瀏覽器是萬維網(wǎng)(Web)服務的客戶端瀏覽程序??上蛉f維網(wǎng)(Web)服務器發(fā)送各種請求,并對從服務器發(fā)來的超文本信息和各種多媒體數(shù)據(jù)格式進行解釋、顯示和播放。2. mini_httpd模塊介紹mini_httpd是一個奉行極簡主義的WebServer,重在服務器性能和高度安全性,并使用盡可能少的系統(tǒng)資源。mini_httpd功能及特點:.支持GET、HEAD、POST方法 支持CGI功能 支持基本的驗證功能 支持安

6、全.上級目錄功能 支持通用的MIME類型 支持目錄列表功能 支持使用index.html,index.htm,index.cgi作為首頁 支持多個根目錄的虛擬主機,支持標準日志記錄 支持自定義錯誤頁 Trailing-slashredirection 它可以配置成SSL/HTTPS和IPv6.mini_httpd相對比較適合學習使用,大體實現(xiàn)了一個WebServer的功能,支持靜態(tài)頁和CGI。mini-httpd的官方維護網(wǎng)站:目前公司的FR612等項目中用到了httpd模塊。3.關于mini_httpd開源組件3.1 minihttpd開源組件介紹mini_httpd是一個小型的HTTP服務

7、器。開源,它的性能不強,但是它非常適合于中小訪問量的站點。thttpd中是一個簡單、小型、輕便、快速和安全的http服務器,對于并發(fā)請求不使用fork()來派生子進程處理,而是采用多路復用(Multiplex)技術來實現(xiàn),因此效能很好。同時它還有一個特點就是基于URL的文件流量限制,這對于下載的流量控制而言是非常方便的。3.2 mini_httpd開源組件編譯及安裝3.2.1編譯安智mini_httpd源碼包的編譯安裝如下:/進入解壓之后的文件夾/編譯/安裝/查看版本信息/建立存放網(wǎng)頁的資料夾tarzxvfmini_httpd-1.19.tar.gzcdmini_httpd-1.19makem

8、akeinstall/usr/local/sbin/mini_httpd-vmkdir/minimkdir/mini/wwwrootmkdir/mini/wwwroot/cgi-bin交叉編譯的方法:需要修改mini_httpd源碼目錄下的Make巾le文件,將CC=gcc改為:CC=arm-linux-gcc然后編譯即可。3. 2.2文件說明:1 .編譯之后生成的可執(zhí)行文件是mini_httpd。2 .配置文件在mini/mini_httpd.conf,定義模塊所使用的端口號、頁面存放的路徑、CGI程序的路徑以及日志文件的路徑等信息。4. mini_httpd程序使用4.1 關于mini_h

9、ttpd程序啟動webserver:在shell下輸入/usr/local/sbin/mini_httpd-C/xxx/mini_httpd-1.19/mini/mini_httpd.conf4.2 命令參數(shù)說明(或者配置文件說明)1 .命令參數(shù)說明:在shell中輸入mini_httpd-help,會看到如下信息:mini_httpd-Cconfigfile-D-pport-ddir-dddata_dir-ccgipat-uuser-hhostname-r-v-llogfile-ipidfile-Tcharset-PP3P-Mmaxage.參數(shù)說明:- C指定一個可讀的配置文件,可以在其中設

10、置指令行標志,細節(jié)如下。-p設定一個交互的端口數(shù)字來監(jiān)聽。- d對chdir()指定一個目錄,用來啟動進程。- r在初始化值時執(zhí)行chroot()能夠限制文件訪問程序的當前目錄。- dd用來指定一個目錄執(zhí)行chdir(),如果你還沒有chrooting,你可以在-d標志后加上單一的chdir(),如果已經(jīng)chrooting則可以把網(wǎng)頁文件放入子目錄,而不比把它們和chroottree混在一起。- v做小開銷的虛擬動作,如果-v是在編譯時缺省配置的,那么-nov可以使其失效。- u指定當以root初始登陸后切換到哪一個使用者。默認值是"nobody"。- c為CGI指定一個通

11、配符,舉例來說如"*.cgi"或"/cgi-bin/*".細節(jié)如下。- h為多用戶環(huán)境指定一個綁定的主機名。缺省情況是,把所有的主機都綁定在本地機器上。- l指定一個日志文件。如果-1參數(shù)沒有被指定,那么thttpd通過syslog()進行日志記錄。如果"-l/dev/null"被指定了,那么thttpd就不會再進行日志記錄了。- I指定一個寫進程號的文件。如果沒有文件被指定,那么就沒有進程號被寫入了。你可以使用這個文件給thttpd發(fā)送信號??聪旅娴脑敿毥榻B;這一標志在配置文件中的選項名字是"pidfi1e"。-

12、 T指定一個使用MIME文本類型的字符集。缺省情況是iso-8859-1。- P指定一個能夠返回所有響應的P3P秘密服務頭。- M指定秒鐘數(shù),在"Cache-Control:max-age'環(huán)境下被使用。對于所有的響應,頭部被返回。一個與此等價的“終止”頭部也隨之生成。缺省情況是沒有Cache控制或者終止頭部,這對大多數(shù)網(wǎng)站來說,是非常理想的。這個標志的配置文件選項名是"max_age"。- V表示現(xiàn)在的版本信息。- D這個標志用來作為一個調試標志。2 .配置文件說明:需在/mini_httpd-1.19/mini/目錄下寫一個配置文件:mini_http

13、d.conf內容及注釋如下所示:port=8080/定義端口號dir=/home/XXX/mini_httpd-1.19/mini/wwwroot/指定頁面路徑cgipat=cgi-bin/*/指定cgi程序路徑user=nobody/指定用戶pidfile=/home/XXX/mini_httpd-1.19/mini/mini_httpd.pid指定寫進程號的文件logfile=/home/XXX/mini_httpd-1.19/mini/mini_httpd.log/指定日志文件存放路徑4.3 minihttpd程序使用實例在瀏覽器內輸入:8080可以看到

14、mini_httpd的響應頁面。其中是webserverIP5,8080是在配置文件mini_httpd.conf中定義的端口號,也可以根據(jù)需要在配置文件中定義為其他端口號,只要不發(fā)生沖突就行。5. mini-httpd模塊使用場景用戶通過瀏覽器與mini_httpd進行交互,瀏覽器與服務器之間的信息交換通過超文本傳輸協(xié)議進行??蛻舳藶g覽器發(fā)送的HTTP報文格式如下:GET/data?cli=10&dat=nsa&ver=visicom-download%2Eultraedit%2Ecom&uid=E7A1CD691EF148&url=17

15、2%2E16%2E153%2E73HTTP/1.1基于HTTP協(xié)議的客戶端/服務器請求響應機制的信息交換過程包含下面幾個步驟:1 .建立連接:客戶端與服務器建立TCP連接。2 .發(fā)送請求:打開一個連接后,客戶端把請求信息發(fā)送到服務器的相應端口上,完成請求動作提交。3 .發(fā)送響應:服務器在處理完客戶端請求之后,要向客戶端發(fā)送響應消息。4 .關閉連接:客戶端和服務器端都可以關閉套接字來結束TCP/IP對話客戶端和服務器在socket層的交互過程如下圖所以:循環(huán)多次客戶/應用局8口吠準回reach回tlQ的記第組連接mnnett他.黑老爵醴端口 1 發(fā)起連破】球 用堂等存取務嘏庖普fd sock叫分配一個文律曲 符加叫地buf, 5族) 獨遨t揮請求read(fdr but s泛電) 阻葷等將害口輻逃虎管思哥翦的應用居listenMsocketO奇配一個文件做南bindU

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論