lighttpd

官方主页:www.lighttpd.net
Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。
lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能,而Apache之所以流行,很大程度也是因为功能丰富,在lighttpd上很多功能都有相应的实现了,这点对于apache的用户是非常重要的,因为迁移到lighttpd就必须面对这些问题。
实用起来lighttpd确实非常不错,上文提到的apache overload的问题,用lighttpd就完全解决了。apache主要的问题是密集并发下,不断的fork()和切换,以及较高(相对于lighttpd而言)的内存占用,使系统的资源几尽枯竭。而lighttpd采用了Multiplex技术,代码经过优化,体积非常小,资源占用很低,而且反应速度相当快。
利用apache的rewrite技术,将繁重的cgi/fastcgi任务交给lighttpd来完成,充分利用两者的优点,现在那台服务器的负载下降了一个数量级,而且反应速度也提高了一个甚至是2个数量级!
下面是他们官方站点上的一段话:
"lightTPD is the BEST webserver out there, much faster than apache and much much much more flexible/configurable/secure than tux, and its fcgi php support is simply unbeatable."

thttpd
官方网站:http://www.acme.com/software/thttpd/
thttpd是一个非常小巧的轻量级web server,它非常非常简单,仅仅提供了HTTP/1.1和简单的CGI支持,在其官方网站上有一个与其他web server(如Apache, Zeus等)的对比图+Benchmark,可以参考参考。此外,thttpd 也类似于lighttpd,对于并发请求不使用fork()来派生子进程处理,而是采用多路复用(Multiplex)技术来实现。因此效能很好。
Thttpd支持多种平台,如FreeBSD, SunOS, Solaris, BSD, Linux, OSF等。对于小型web server而言,速度快似乎是一个代名词,通过官方站提供的Benchmark,可以这样认为:thttpd至少和主流的web server一样快,在高负载下更快,因为其资源占用小的缘故。
Thttpd还有一个较为引人注目的特点:基于URL的文件流量限制,这对于下载的流量控制而言是非常方便的。象Apache就必须使用插件实现,效率较thttpd低。
nanohttpd:
http://nanohttpd.com/ 
https://github.com/NanoHttpd/nanohttpd
The tiny, easily embeddable HTTP server in Java
NanoHTTPD是一个优秀的嵌入式Web服务器,且用java语言编写的,可以应用于Android平台以及其它支持Java的平台,并且支持servlet,可以方便第三方开发人员在此基础上做开发。 
使用NanoHTTPD在android实现web迷你服务器:http://my.oschina.net/u/256033/blog/122863
shttpd
官方网站:http://shttpd.sourceforge.net/ Shttpd是另一个轻量级的web server,具有比thttpd更丰富的功能特性,支持CGI, SSL, cookie, MD5认证, 还能嵌入(embedded)到现有的软件里。最有意思的是不需要配置文件! 
由于shttpd可以嵌入其他软件,因此可以非常容易的开发嵌入式系统的web server,官方网站上称shttpd如果使用uclibc/dielibc(libc的简化子集)则开销将非常非常低。以下是其特点:
Stand-alone server, or embeddable into existing C/C++ program 
GET, POST, PUT, DELETE methods 
CGI 
SSL 
Digest (MD5) authorization 
Multiple (and user defineable) index files 
Directory listing 
Standard logging 
Cookies 
inetd mode 
User-defineable mime types 
No configuration files 
No external dependencies
由于shttpd可以轻松嵌入其他程序里,因此shttpd是较为理想的web server开发原形,开发人员可以基于shttpd开发出自己的webserver!
Tornado 
网站:http://sourceforge.net/projects/tornado/
Tornado HTTP Server is a multi-threaded web server written in Java. It aims to be secure, efficient, and portable, and provide a full implementation of HTTP 1.1. Advanced features such as GZip output compression and web-based administration are planned.

SimpleWeb

Simple是一个真正可嵌入式的基于Java的Http开源引擎.它提供一个基于组件可扩展的框架,这个框架可以用来装载类似于Java Servlet这样的服务. Simple提供了一个真正的异步服务模型。

其他server汇总:
http://sourceforge.net/directory/internet/www/httpservers

转载于:https://www.cnblogs.com/xhl86xhl/p/3831404.html

java轻量级Http Server相关推荐

  1. 【java毕业设计】基于java+Eclipse +SQL Server的工厂进销存管理系统设计与实现(毕业论文+程序源码)——工厂进销存管理系统

    基于java+Eclipse +SQL Server的工厂进销存管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Eclipse +SQL Server的工厂进销存管理系统 ...

  2. JAVA实现ftp服务端_用 java 实现FTP SERVER(附源码)

    前面用 PYTHON 实现了一个 ftp server(参考这里) ,有朋友问有没有java版本的,其实说白了,ftp 也就是 tcp/ip 协议的一个应用而已,而tcp/ip 基本都是通过socke ...

  3. java创建描述文件,IT技术交流:Java 轻量级整合开发

    原标题:IT技术交流:Java 轻量级整合开发 ervlet-ActionServlet 控制器,接受用户请求和状态改变,以及发出视图选择 FilterDispatcher Action 控制器的一部 ...

  4. Java连接SQL Server 2012【查看自己电脑上的SQL Server端口号;附:jar包】

    目   录 1.查看自己电脑上的SQL Server端口号 2.Java连接SQL Server数据库 2.1.jar包下载 2.2.Java项目:导入jar包 2.3.Java连接SQL Serve ...

  5. 服务器3个w目录文件夹,第 4 章 目录服务器条目 (Sun Java System Directory Server Enterprise Edition 6.2 管理指南)...

    第 4 章 目录服务器条目 本章讨论如何管理目录中的数据条目.此外,还介绍如何设置引用以及如何加密属性值. 除非定义了相应的访问控制指令 (Access Control Instruction, AC ...

  6. java 轻量级文件数据库_Java:如何创建轻量级数据库微服务

    java 轻量级文件数据库 基于云的Java数据库应用程序的数量每分钟都在增加. 许多组织部署了数百甚至数千个微服务实例. 但是,相对于运行时环境,大多数应用程序会带来惊人的不必要开销. 反过来,这会 ...

  7. java https soap,Java Https Soap Server(Tomcat-Axis2)

    1.%Tomcat%/server/server.xml 找到下面一段: 替换为: maxThreads="150" scheme="https" secure ...

  8. java 轻量级同步volatile关键字简介与可见性有序性与synchronized区别 多线程中篇(十二)...

    概念 JMM规范解决了线程安全的问题,主要三个方面:原子性.可见性.有序性,借助于synchronized关键字体现,可以有效地保障线程安全(前提是你正确运用) 之前说过,这三个特性并不一定需要全部同 ...

  9. java连接sql server数据库的代码如何改成连接mysql_Java连接sql server或mysql数据库(代码)...

    Java连接sql server或mysql数据库(代码) package Test; import java.sql.Connection; import java.sql.DriverManage ...

最新文章

  1. 青少年python编程课_青少年之Python编程课程安排第一季
  2. 管理数百个Kubernetes集群需要什么?
  3. 总结:实例化SqlParameter时,如果是字符型,一定要指定size属性,还有制定具体的类型...
  4. 从菜鸟到专家的五步编程语言学习法
  5. oracle缺失值表示,Oracle SQL,用最接近的非缺失填充缺失值
  6. Spring web应用最大的败笔
  7. PL/SQL 存储过程
  8. C/C++——输入输出字符相关,cin.get()、getchar()和cin.getline()
  9. 线性代数【15】复合线性变换-矩阵乘法 和 三维变换
  10. python循环括号_Python3中小括号()、中括号[]、花括号{}的区别详解
  11. AndroidStudio_后台服务以及活动和服务间通信_通过service中的binder实现活动和服务的通信---Android原生开发工作笔记216
  12. 数据结构与算法的分析 —— 渐进复杂度(三个记号)
  13. Mac新手入门:关于Mac睡眠、开机密码的取消与更改教程
  14. c语言节点的作用,C语言试题
  15. Android基础教程之Button事件发送消息到通知栏Notification
  16. 我的 Hadoop 3.2.2 之旅 【收藏夹吃灰系列】
  17. 【windows7 bluescreen蓝屏的解决方法】
  18. 网站地图制作百度地图google地图制作方法
  19. Guava Splitter,Splitter与Java split的对比
  20. matlab熵权法,matlab—熵权法

热门文章

  1. xcode常用快捷键_Mac及Xcode常用快捷键
  2. 电脑维修:电脑故障通用处理思路,你有必要了解一下!
  3. 计算机网络基础:Internet常用服务介绍​
  4. css中position的两种定位(absolute、relative)
  5. 【收集】47种常见的浏览器兼容性问题
  6. sql server update触发器_SQL Server 触发器
  7. 云栖大会上,阿里巴巴重磅发布前端知识图谱!
  8. Python: 反方向迭代一个序列
  9. IDEA设置类、方法注释模板
  10. Word 2010 制作文档结构之图标自动编号设置