HTTP 服務器:Tiny httpd

jopen 9年前發布 | 20K 次閱讀 Web服務器 Tiny httpd

Tinyhttpd 是一個支持多端口監聽的 HTTP 服務器,基于 QT QTcpServer 封裝。

目錄結構

[src]
├── LICENSE               #MIT許可證
├── README.md             #使用說明
├── tinyhttpd.pro         #工程文件

主程序

├── main.cpp              #啟動多端口監聽 ├── serverthread.cpp      #QThread子類線程,設置IP,port及啟動Server ├── server.cpp            #QTcpServer子類,多線程,每個線程對應一個port監聽 ├── request.cpp           #接受client請求,多線程,每個線程對應一個請求 ├── response.cpp          #構造返回Request Headers ├── responsefile.cpp      #返回網頁 ├── responsedictionary.cpp#列舉url對應目錄 ├── mime.cpp              #設定擴展應用 ├── common.cpp            #獲取當前時間 ├── log.cpp               #日志系統

配置

├── httpstatus.h          #狀態碼 ├── tinyhttpd.ini         #服務器配置文件 ├── tinyhttpd.log         #服務器日志 ├── mime.txt              #mime配置 [www]                     #網站根目錄 ├──static ├──index.html [response]                #網頁返回狀態網頁 ├── 301.html              #301 Permanently Moved ├── 304.html              #304 Not Modified ├── 403.html              #403 Forbidden └── 404.html              #404 Not Found</pre>

Todo

  • 加入Redis數據庫支持,存儲訪問數據

  • 加入QT界面,顯示實時連接情況

運行環境

  • Linux/Mac OS X

  • QT4/QT5

使用

  • 打開配置文件 tinyhttpd.ini 配置服務器選項。

[httpd]
port=1234|1235|1236   #配置服務器監聽的多個端口,用|隔開
ipv6=true             #配置ipv6支持
logfile=tinyhttpd.log
show_log=true

[site]
root_path=/home/huangyi/Practice/QT/tinyhttpd/www  #網站根目錄
dir_listing=true                  #是否允許獲取文件樹,否則返回403 forbidden
#index="index.html", "index.htm"  #配置后,直接跳到網頁index.html,不列出文件樹

[request]
buffer_size=1048576        #為網頁文件分配的內存空間
keep_alive_enable=true     #是否打開長連接
keep_alive_default=true
keep_alive_timeout=30      #長連接timeout
keep_alive_timeout_max=300

項目主頁:http://www.baiduhome.net/lib/view/home/1431414335341

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!