java轻量级Http Server

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293424.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用CDN引用jQuery

CDN (Content Delivery Network) 内容分发网络。 Google 为一系列 JavaScript 库提供了免费的 CDN&#xff0c;包括&#xff1a; jQueryPrototypeMooToolsDojoYahoo! YUI如需在您的网页中使用 JavaScript 框架库&#xff0c;只需在 <script> 标签中引用该库即可&#xff…

13 个 C# 10 特性

常量的内插字符串C# 10 允许使用在常量字符串初始化中使用插值, 如下const string name "Oleg"; const string greeting $"Hello, {name}.";Console.WriteLine(greeting); // Output: Hello, Oleg.扩展属性模式从 C# 10 开始&#xff0c;您可以在适当的模…

nodejs安装express框架

安装express框架npm install express -gd-g代表安装到NODE_PATH的lib里面&#xff0c;而-d代表把相依性套件也一起安装。如果沒有-g的话会安装目前所在的目录(会建立一个node_modules的文件夹)&#xff0c;express –help 查看帮助cd /data/wwwroot/express –ejs –sessions m…

学习总结之数据挖掘三大类六分项

Data Mining可分为三大类六分项来说明&#xff1a; Classification和Clustering属于分类区隔类&#xff1b; Regression和Time-series属于推算预测类&#xff1b; Association和Sequence则属于序列规则类。 Classification是根据一些变量的数值做计算&#xff0c;再依照结果作分…

android studio button位置_免费的Android开发环境

Android Studio for mac是一个全面的Android开发环境&#xff0c;Android Studio帮助您设计&#xff0c;构建&#xff0c;测试和调试Android应用程序&#xff0c;利用Android Studio所有特色工具并开发出令人惊叹的应用程序。Android Studio是一个为Android平台开发程序的集成开…

TCP握手/挥手的过程分析

TCP连接建立 在TCP/IP协议中&#xff0c;TCP协议提供可靠的连接服务&#xff0c;采用三次握手建立一个连接。 服务器必须准备好接受外来的连接。这通过调用socket、 bind和listen函数来完成&#xff0c;称为被动打开(passive open)。 第一次握手&#xff1a;客户通过调用connec…

Android数据库Realm实践

Android开发中常用的数据库有5个&#xff1a; 1. OrmLite OrmLite 不是 Android 平台专用的ORM框架&#xff0c;它是Java ORM。支持JDBC连接&#xff0c;Spring以及Android平台。语法中广泛使用了注解&#xff08;Annotation&#xff09;。 2. SugarORM SugarORM 是 Android …

Dotnet 6.0 深度探索(一)

Dotnet 6.0 已来。Dotnet 6.0 大家都装了没&#xff1f;我打算开个专题&#xff0c;系统地写一写 Dotnet 6.0 在各个方面的特性&#xff0c;以及全新的开发方式。也是因为最近讨论 6.0 比较多&#xff0c;看到很多人的畏难情绪&#xff0c;所以打算写写相关的内容。了解了&…

TCP协议中的三次握手和四次挥手(图解)

建立TCP需要三次握手才能建立&#xff0c;而断开连接则需要四次握手。整个过程如下图所示&#xff1a; 先来看看如何建立连接的。 首先Client端发送连接请求报文&#xff0c;Server段接受连接后回复ACK报文&#xff0c;并为这次连接分配资源。Client端接收到ACK报文后也向Serv…

java 矩阵题目_java练习本(原每日一练)(20190517)

名人名言昨日翻译“You will face many defeats in life, but never let yourself be defeated.”——Maya Angelou“你将在生活中面临许多失败&#xff0c;但决不让自己被打败。”——玛雅安吉罗今日名言“May you live all the days of your life.”——Jonathan Swift2019.0…

Sharepoint在itemUpdating中获取修改后的用户或用户组栏的值

获取用户或用户组栏的值&#xff0c;在网上有不少的文章已经写得非常好了&#xff08;http://www.cnblogs.com/McJeremy/archive/2009/08/03/1537876.html&#xff09;。但是我现在遇到一个问题就是&#xff1a;我在EventHandler的itemUpdating中需要获取到更改后的用户或用户组…

(转)直接拿来用!最火的iOS开源项目(一)

2019独角兽企业重金招聘Python工程师标准>>> 1. AFNetworking 在众多iOS开源项目中&#xff0c;AFNetworking可以称得上是最受开发者欢迎的库项目。AFNetworking是一个轻量级的iOS、Mac OS X网络通信类库&#xff0c;现在是GitHub上第三大Objective-C库。它建立在N…

nginx php 配置

/*************************************************************************************** nginx php 配置* 说明&#xff1a;* 配置一下nginx和php的开发环境&#xff0c;这个主要是为了将来运行的TI的Matrix GUI。* *…

.NET+Sqlite如何支持加密

点击上方蓝字关注我们.NETSqlite如何支持加密SqliteSQLite 来源于公共领域 SQLite Is Public Domain、确保代码不会受到任何专有或许可内容的污染&#xff0c;没有任何来自互联网上的未知来源复制。即全是原创的。虽然是免费的&#xff0c;无需许可证&#xff0c;可用于任何目的…

linux之scp命令

svn 删除所有的 .svn文件 find . -name .svn -type d -exec rm -fr {} \; linux之cp/scp命令&#xff0b;scp命令详解 名称&#xff1a;cp 使用权限&#xff1a;所有使用者 使用方式&#xff1a; cp [options] source dest cp [options] source... directory 说明&#xff1a…

裸奔、抽烟、凡尔赛,原来数学家玩得这么野……

全世界只有3.14 % 的人关注了爆炸吧知识六个数学家一部数学史假如宇宙真的由神明设计那他一定是个数学家数学就是他描绘自然的语言数学的重要性已经不用多说但是很多人仍觉得数学是高冷的女神其实数学神奇却并不神秘高贵却并不高冷因为有一群智者早就用他们的智慧和精力将那些晦…

SqlServer和MySQL中存储过程out返回值处理C#代码

1.SqlServer中out处理 C#代码 #region"SqlServer中存储过程处理out返回值"//public void getdata()//{// string str " server192.168.xxxx ;user idxxx;passwordxxxxx#;databasexxxxx_db;min pool size4;max pool size4;packet size3072";// SqlCo…

C#摄像头实现拍照功能的简单代码示例

C#摄像头实现拍照功能的简单代码示例2009-11-20 来自&#xff1a;网上整理字体大小&#xff1a;【大中小】摘要&#xff1a;这里将介绍一个C#摄像头实现拍照功能的简单代码示例&#xff0c;代码虽然不短&#xff0c;但是基本上实现了相对应的功能&#xff0c;希望对大家有所帮…