如何写一个Web服务器

几乎每个人每天都要或多或少和Web服务器打交道,比较著名的Web Server有Apache Httpd、Nginx、IIS。这些软件跑在成千上万台机器上为我们提供稳定的服务,当你打开浏览器输入网址,Web服务器就会把信息传给浏览器然后呈现在用户面前。那既然有那么多现成的、成熟稳定的web服务器,为什么还要重新造轮子,我认为理由有如下几点:

    夯实基础。一个优秀的开发者必须有扎实的基础,造轮子是一个很好的途径。学编译器?边看教材变写一个。学操作系统?写一个原型出来。编程这个领域只有自己动手实现了才敢说真正会了。现在正在学网络编程,所以就打算写一个Server。

    实现新功能。成熟的软件可能为了适应大众的需求导致不会太考虑你一个人的特殊需求,于是只能自己动手实现这个特殊需求。关于这一点Nginx做得相当得好了,它提供了让用户自定义的模块来定制自己需要的功能。

    帮助初学者容易地掌握成熟软件的架构。比如Nginx,虽然代码写得很漂亮,但是想完全看懂它的架构,以及它自定义的一些数据结构,得查相当多的资料和参考书籍,而这些架构和数据结构是为了提高软件的可伸缩性和效率所设计的,无关高并发server的本质部分,初学者会迷糊。而Zaver用最少的代码展示了一个高并发server应有的样子,虽然没有Nginx性能高,得到的好处是没有Nginx那么复杂,server架构完全展露在用户面前。


如何写一个Web服务器

猜你喜欢

转载自java-007.iteye.com/blog/2300641