位置: IT常识 - 正文

六款小巧的HTTP Server[C语言] 贵贵的博客 开发|架构|开源|共享

发布时间:2024-01-21
六款小巧的HTTP Server 六款小巧的HTTP Server[C语言]

推荐整理分享六款小巧的HTTP Server[C语言] 贵贵的博客 开发|架构|开源|共享,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

开源软件

1、micro_httpd - really small http server

特点:

支持安全的 .. 上级目录过滤

支持通用的MIME类型

支持简单的目录

支持目录列表

支持使用 index.html 作为首页

Trailing-slash redirection

程序总共代码才200多行

这个httpd适合学习简单的Web Server编写学习,因为它只有一个简单的框架,只能够处理简单的静态页,可以考虑用来放静态页。

官方地址:http://www.acme.com/software/micro_httpd/

下载地址:http://www.acme.com/software/micro_httpd/micro_httpd_12dec2005.tar.gz

2、mini_httpd - small HTTP server

特点:

支持GET、HEAD、POST方法

支持CGI功能

支持基本的验证功能

支持安全 .. 上级目录功能

支持通用的MIME类型

支持目录列表功能

支持使用 index.html, index.htm, index.cgi 作为首页

支持多个根目录的虚拟主机

支持标准日志记录

支持自定义错误页

Trailing-slash redirection

mini_httpd 也是相对比较适合学习使用,大体实现了一个Web Server的功能,支持静态页和CGI,能够用来放置一些个人简单的东西,不适宜投入生产使用。

官方地址:http://www.acme.com/software/thttpd/

下载地址:http://www.acme.com/software/mini_httpd/mini_httpd-1.19.tar.gz

3、thttpd - tiny/turbo/throttling HTTP server

thttpd中是一个简单,小型,轻便,快速和安全的http服务器:

简单:它能够支持HTTP/1.1协议标准,或者超过了最低水平

六款小巧的HTTP Server[C语言]  贵贵的博客  开发|架构|开源|共享

小巧:它具有非常少的运行时间,因为它不fork子进程来接受新请求,并且非常谨慎的分配内存(性能对比表:http://www.acme.com/software/thttpd/benchmarks.html)

便携:它能够在大部分的类Unix系统上运行,包括FreeBSD, SunOS 4, Solaris 2, BSD/OS, Linux, OSF等等

快速:它的速度要超过主流的Web服务器(Apache, NCSA, Netscape),在高负载情况下,它要快的多

安全:它努力的保护主机不受到攻击,不中断服务器

thttpd 类似于lighttpd,对于并发请求不使用fork()来派生子进程处理,而是采用多路复用(Multiplex)技术来实现。因此效能很好。同时它还有一个特点就是基于URL的文件流量限制,这对于下载的流量控制而言是非常方便的。象Apache就必须使用插件实现,效率较thttpd低。

thttpd跟lighttpd类似,适合静态资源类的服务,比如图片、资源文件、静态HTML等等的应用,性能应该比较好,同时也适合简单的CGI应用的场合。

官方地址:http://www.acme.com/software/thttpd/

下载地址:http://www.acme.com/software/thttpd/thttpd-2.25b.tar.gz

4、lighttpd - light footprint + httpd = LightTPD

Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。

lighttpd 是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能,而Apache之所以流行,很大程度也是因为功能丰富,在lighttpd上很多功能都有相应的实现了,这点对于apache的用户是非常重要的,因为迁移到lighttpd就必须面对这些问题。

实用起来lighttpd确实非常不错,apache主要的问题是密集并发下,不断的fork()和切换,以及较高(相对于 lighttpd而言)的内存占用,使系统的资源几尽枯竭。而lighttpd采用了Multiplex技术,代码经过优化,体积非常小,资源占用很低,而且反应速度相当快。

利用apache的rewrite技术,将繁重的cgi/fastcgi任务交给lighttpd来完成,充分利用两者的优点,现在那台服务器的负载下降了一个数量级,而且反应速度也提高了一个甚至是2个数量级!

lighttpd 适合静态资源类的服务,比如图片、资源文件、静态HTML等等的应用,性能应该比较好,同时也适合简单的CGI应用的场合。

官方地址:http://www.lighttpd.net/

下载地址:http://www.lighttpd.net/download/lighttpd-1.4.16.tar.gz

5、SHTTPD - Simple HTTPD

Shttpd是另一个轻量级的web server,具有比thttpd更丰富的功能特性,支持CGI, SSL, cookie, MD5认证, 还能嵌入(embedded)到现有的软件里。最有意思的是不需要配置文件!由于shttpd可以嵌入其他软件,因此可以非常容易的开发嵌入式系统的web server,官方网站上称shttpd如果使用uclibc/dielibc(libc的简化子集)则开销将非常非常低。

特点:

小巧、快速、不膨胀、无需安装、简单的40KB的exe文件,随意运行

支持GET, POST, HEAD, PUT, DELETE 等方法

支持CGI, SSL, SSI, MD5验证, resumed download, aliases, inetd模式运行

标准日志格式

非常简单整洁的嵌入式API

dietlibc friendly. NOT that friendly to the uClibc (*)

容易定制运行在任意平台:Windows, QNX, RTEMS, UNIX (*BSD, Solaris, Linux)

由于shttpd可以轻松嵌入其他程序里,因此shttpd是较为理想的web server开发原形,开发人员可以基于shttpd开发出自己的webserver!

官方网站:http://shttpd.sourceforge.net/

下载地址:http://jaist.dl.sourceforge.net/sourceforge/shttpd/shttpd-1.38.tar.gz

6、tinyhttpd

tinyhttpd is a very simple webserver. It is not for production use; instead it is primarily for a learning tool for persons investigating the http protocol and UNIX system calls.

Despite its simple nature, tinyhttpd supports threading and CGI scripts! For more information, see the accompanying README file and the code itself.

tinyhttpd is tested on Sparc Solaris and will probably not run on other operating systems as-is. However, commenting out the line that does threading may be all that is required to port it. I would like to autoconfiscate tinyhttpd at some point in time to help make it more portable.

There is no downloadable release of tinyhttpd, yet. Until then, you can get it by anonymous CVS.

The real homepage for tinyhttpd is the project page

地址:http://tinyhttpd.sourceforge.net/

本文链接地址:https://www.jiuchutong.com/zhishi/303716.html 转载请保留说明!

上一篇:C语言中数组越界是什么(c语言中数组越界)

下一篇:mysql中regexp_replace函数的使用

  • 微信零钱通转出到银行卡多久到账(微信零钱通转出有限额吗)

    微信零钱通转出到银行卡多久到账(微信零钱通转出有限额吗)

  • 酷狗字体大小在哪里设置(酷狗字体变大)

    酷狗字体大小在哪里设置(酷狗字体变大)

  • 淘宝改价调用交易失败(淘宝购买改价)

    淘宝改价调用交易失败(淘宝购买改价)

  • 苹果前置拍照左右相反怎么调整(苹果前置拍照左上角黑屏)

    苹果前置拍照左右相反怎么调整(苹果前置拍照左上角黑屏)

  • 微信聊天emm表情什么意思(微信emm表情包)

    微信聊天emm表情什么意思(微信emm表情包)

  • word页眉距边界怎么设置(word页眉距边界怎么调整)

    word页眉距边界怎么设置(word页眉距边界怎么调整)

  • 苹果耳机为什么不弹窗(苹果耳机为什么充不上电)

    苹果耳机为什么不弹窗(苹果耳机为什么充不上电)

  • 免安装版是什么意思(免安装版和安装版哪个好)

    免安装版是什么意思(免安装版和安装版哪个好)

  • 腾讯课堂倍速播放老师能看到吗(腾讯课堂二倍速老师那边看时间多久)

    腾讯课堂倍速播放老师能看到吗(腾讯课堂二倍速老师那边看时间多久)

  • 手机不听指挥自己乱点怎么办(手机不听指挥自己乱跳怎么办屏幕有水怎么处理)

    手机不听指挥自己乱点怎么办(手机不听指挥自己乱跳怎么办屏幕有水怎么处理)

  • 小度送的爱奇艺会员怎么登录(小度送的爱奇艺会员卡)

    小度送的爱奇艺会员怎么登录(小度送的爱奇艺会员卡)

  • 小爱音箱可以车上用吗(小爱音箱车载电源线)

    小爱音箱可以车上用吗(小爱音箱车载电源线)

  • 淘宝值是什么意思(淘宝值低)

    淘宝值是什么意思(淘宝值低)

  • 苹果手机外屏碎了需要全屏换吗(苹果手机外屏碎了图片)

    苹果手机外屏碎了需要全屏换吗(苹果手机外屏碎了图片)

  • 电脑桌面广告拦截怎么设置(电脑桌面上的广告怎么拦截)

    电脑桌面广告拦截怎么设置(电脑桌面上的广告怎么拦截)

  • 手机如何设置语音唤醒(手机如何设置语音输入)

    手机如何设置语音唤醒(手机如何设置语音输入)

  • 京东怎么找包邮商品(京东包邮怎么看)

    京东怎么找包邮商品(京东包邮怎么看)

  • iphone11怎么截图(iphone11怎么截图长屏幕)

    iphone11怎么截图(iphone11怎么截图长屏幕)

  • 黑鲨2支持无线充电吗(黑鲨支持无线充电功能吗)

    黑鲨2支持无线充电吗(黑鲨支持无线充电功能吗)

  • 小米商城下单时效是多久(小米商城下单时提示账号存在风险)

    小米商城下单时效是多久(小米商城下单时提示账号存在风险)

  • 华为麒麟710和970区别(华为麒麟710和骁龙778g哪个好)

    华为麒麟710和970区别(华为麒麟710和骁龙778g哪个好)

  • 荣耀20pro怎么唤醒yoyo(荣耀20pro怎么召唤语音助手)

    荣耀20pro怎么唤醒yoyo(荣耀20pro怎么召唤语音助手)

  • 快手会留下访客记录吗(快手会留下访客记录什么时候)

    快手会留下访客记录吗(快手会留下访客记录什么时候)

  • 局域网内IP地址冲突(局域网内ip地址冲突怎么找出来)

    局域网内IP地址冲突(局域网内ip地址冲突怎么找出来)

  • 金融资产交易增值税
  • 开专票了还能不能退款
  • 会计账册丢失什么后果
  • 财政补助资金是什么意思
  • 单一窗口报关单
  • 累计纳税工资是什么意思
  • 借支单是借方还是贷方
  • 公司可以为非本人开户吗
  • 金融企业往来收入是指
  • 仪器设备校验记录表
  • 公司收到的其他发票
  • 一次性医保补助多少钱
  • 利润分配从哪里取数
  • 物业收停车费要交房产税吗
  • 电费发票勾选是啥意思
  • 营改增后纳税人可以使用的发票种类
  • 增值税专用发票验票
  • 对公账户收到个人汇款 退还
  • 福利费专票进项转出怎么做账
  • 资询服务收入算服务还是劳务
  • 新公司值得入职吗
  • 1697508669
  • 3070和3070ti性能差多少
  • vue城市列表插件
  • win10要更新系统
  • PHP:mb_convert_encoding()的用法_mbstring函数
  • 个体户个人所得税免征额是多少
  • 债权转增资本公积账务处理
  • linux系统用法
  • linux怎么用微信
  • 发票开了对方未付款
  • 招待费的范畴
  • 财务清算的作用
  • laravel 日志配置
  • 前端静态页面
  • 政府会计无偿调拨资产账务处理
  • GCN经典论文笔记:Semi-Supervised Classification with Graph Convolutional Networks
  • jwt 鉴权
  • php自动载入文件的函数
  • Python如何将字符串转化为数字
  • 购入固定资产计入应付账款还是其他应付款
  • 小规模纳税人企业所得税优惠政策最新2023
  • 网站维护费用
  • 商铺固定设施指哪些
  • 非盈利组织接受劳务捐赠怎么入账
  • 福利费列支的个税怎么算
  • 收到托收凭证怎么做分录
  • 小规模个人所得税税率表2023年
  • 汇算清缴补交的所得税怎么记帐
  • 个体工商户法人可以变更吗?
  • 车辆购置税完税证明图片
  • 固定资产更新改造当月是否计提折旧
  • 收到红字进项发票先勾选再做转出吗
  • 错开发票所需要提供的资料以及时效要求是?
  • 国家对民办幼儿园审批的条件有哪些?
  • windows8休眠如何唤醒
  • 对Windows Server 2008系统自带的磁盘分区进行无损分区的教程图文介绍
  • mac怎么保存网页到桌面
  • linux网络系统管理
  • win8默认输入法设置
  • 如何使用windows 10
  • windowsxp怎么用
  • win8怎样获取管理员权限
  • macbookpro移到废纸篓快捷键
  • 为什么我无法更改某些设置电脑
  • apk反编译是什么意思
  • css怎么加图标
  • vue中拦截器
  • 用原生js写项目
  • javascript definitive guide
  • js实现盒子移动
  • jquery动画效果代码
  • unity接收数据
  • JQuery给select添加/删除节点的实现代码
  • js遍历table的td
  • 苗木税收政策
  • 税务局上下班路上能穿制服吗
  • 电子税务局报表报送在哪里
  • 江苏省国税务局
  • 陕西省电子税务局手机app
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号