当前位置: 首页 > 软件库 > 服务器软件 > HTTP服务器 >

Tiny httpd

HTTP 服务器
授权协议 MIT
开发语言 C/C++
所属分类 服务器软件、 HTTP服务器
软件类型 开源软件
地区 国产
投 递 者 羊丰茂
操作系统 Linux
开源组织
适用人群 未知
 软件概览

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
  • #include <stdio.h> #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <ctype.h> #include <strings.h> #include <string.h> #includ

  • Tiny HTTPd: http://tinyhttpd.sourceforge.net/ 看了看这个项目的代码,看介绍是个简单的webserver,代码量也很少,真正看代码的时候,才知道,这个都不能算个webserver吧,要说是实验,都感觉太不严谨了,也就说是个网络通讯的api学习demo吧。 只处理了GET和POST请求,客户端和服务器的代码会让人有疑惑,服务器代码中的数据接收处理也有隐患。

  • 环境准备: 创建一个系统用户,不需要家目录,不需要登陆 [root@localhost ~]# useradd -r -M -s /sbin/nologin apache [root@localhost ~]# id apache uid=995(apache) gid=992(apache) groups=992(apache) [root@localhost ~]# 所需工具安装:(wget、

  • What is pylite? pylite is a hobby python interpreter, which can tell you how python compiler and virtual machine works. It serves for educational purposes, so the code is kept as simple as possible. p

  • 一、下载php-5.2.17.tar.bz2linux 二、解压到/vptempsql #tar -jxv -f php-5.2.17.tar.bz2 -C /vptemp浏览器 三、编译app # cd /vptemp/php-5.2.17ide #CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/opt/php5 --disable

  • 第一步下载boa 1.从http://www.boa.org/ 网站下载boa-0.94-13的版本, 第二步解压运行得到boa文件 解压: #tar xzvf boa-0.94.13.tar.tar 在当前目录下生成boa-0.94.13目录 进入src: #cd boa-0.94.13/src 进入src目录 执行: #./configure 第三步:修改Makefile文件    在src目

  • TinyCore运行内存小,很适合做gitweb,于是我摸索了两天,终于弄出来了~ 1. $ tc-load -wi git.tcz $ tc-load -wi apache2.tcz $ tc-load -wi perl5.tcz 2. #gitweb的配置文件 $ vi /usr/local/apache2/conf/httpd.conf ServerName localhost Docume

  •  boa-0.94.13移植到Tiny6410开发板 (先在X86平台上编译成功后,再从原有的基础上进行ARM移植) 1.进入src目录下修改Makefile CC = arm-linux-gcc CPP = arm-linux-gcc -E 2.执行make 3.查看boa格式 root@wxq:src# file boa boa: ELF 32-bit LSB executable, ARM,

 相关资料
  • 如何包含Eureka服务器 要在项目中包含Eureka服务器,请使用组org.springframework.cloud和工件id spring-cloud-starter-eureka-server的启动器。有关 使用当前的Spring Cloud发布列表设置构建系统的详细信息,请参阅Spring Cloud项目页面。 如何运行Eureka服务器 示例eureka服务器; @SpringBoot

  • hprose 为发布服务提供了多个方法,这些方法可以随意组合,通过这种组合,你所发布的服务将不会局限于某一个函数,某一个方法,某一个对象,而是可以将不同的函数和方法随意重新组合成一个服务。 AddFunction 方法 AddFunction(name string, function interface{}, option ...Options) Service 该方法的用于发布一个函数(命名函

  • Debug 字段 该设置默认值是 false,当发生错误时,只返回错误信息本身。 当该字段设置为 true 时,当发生 panic 时,会将整个 panic 的错误堆栈信息返回给客户端,在用户进行 hprose 服务开发时,该设置可以帮助你快速定位错误位置。 ErrorDelay 字段 该设置为整型值,默认值为 10 秒。 该字段表示在调用执行时,如果发生异常,将延时一段时间后再返回给客户端。 在

  • null null Tomcat服务器正在运行servlet,为mySQL数据库执行一些业务逻辑和hibernate框架。 现在我有点糊涂了。两台服务器都能接收HTTP请求吗?就像servlet从网页接收https请求和我的apache服务器一样? 并且两者都可以连接到数据库--使用php的apache服务器,正如我提到的,同时使用servlet的tomcat?

  • 如何在生产环境中将hazelcast服务器作为linux服务运行? java-server-cp hazelcast。jar com。黑兹卡斯特。例子。StartServer StartServer运行带有输出到std终端的服务器,将其作为linux服务运行并将日志写入文件的最简单方法是什么 我必须将其设置为EC2实例中的服务并将其捆绑。当EC2自动缩放启动实例时,hazelcast服务器将启动并

  • 创建 http 服务器 package main   import ( "net/http"   "github.com/hprose/hprose-golang/rpc" )   func hello(name string) string { return "Hello " + name + "!" }   func main() { service := rp

  • 我正在开发一个基于云的后端HTTP服务,该服务将公开用于与一些on-prem系统的集成。客户机系统是由外部供应商定制的,它们是带有自己数据库的后端系统。这些系统部署在我们客户的公司中,我们无法访问它们,也无法控制它们。我们向供应商提供我们的API规范,他们实现客户机代码。 我的服务与客户交换的数据格式基于XML,并遵循一定的标准。供应商用不同的编程语言实现他们的客户机系统,随着时间的推移,新的供应

  • 问题 你想在网络上提供一个服务器。 解决方案 创建一个基本的 TCP 服务器。 在 Node.js 中 net = require 'net' domain = 'localhost' port = 9001 server = net.createServer (socket) -> console.log "Received connection from #{socket.remo