Tiny httpd - HTTP 服务器


MIT
Linux
C/C++

软件简介

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

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