一、不同角度的调查产生离奇的结果
 
在几天前,我在网上看到一份调查,这份调查显示Apache的市场份额正在缩水,而微软的IIS在Web服务器领域的市场份额确节节攀升。看到这份调查,我感到很吃惊。而另外一份调查的结果却正好相反。也许第一份调查是微软玩的花招!
 
上面的第一个调查是Netcraft在今年8月份做的,它显示了Apache服务器在现在活动的网站中所占的比率是48.4%,而微软的IIS为36.2%,它们的差距正在缩小。而E-Soft的另一份调查却显示Apache的市场份额正好相反,为73.81%,而IIS仅为19.33。到底谁是真的呢?
 
尽管我无法正确地告诉看到本文的读者哪一个调查才是真的,但根据统计学原理,这两个调查最多只能有一半是正确的,因为它们的调查都是有目的性的。
 
即使微软的IIS不能象第一条调查的结果那样达到如此高的市场占有率,而这个市场占有率却总是艺术的成分比科学的多一些。不过,还是有好消息的,我们现在已经看到微软的IIS正在向着可喜的方向转变,变得更加强大的。
 
微软的企业Internet信息服务器的产品经理Bill Stapes说,现在IIS正在变得更安全和更可靠,尤其是在IIS7.0中,已经完全消除了微软的Web服务器受死机的毛病。
 
二、IIS和Apache深度对比
 
其实我们根本无法简单地用市场占有率来判别IIS和Apache到底哪个才能最终获胜。由于IIS和Apache都有非常多的用户群,这说明它们都足够强大。但它们也互有一定的优缺点。下面让我们来看这两种Web服务器的一些特点。
 
1.成本的不同  
 
众所周之,Apache是免费开源的,所有使用Apache的用户无需为此付一分钱。看到这,有很多人会说,IIS不也是免费的吗?但要知道,微软并没有将IIS从Windows中剥离开,因此,要想免费使用IIS,必须的要花钱买Windows。这就象很多商家推出的赠品促销一样。要想得到赠品,必须要花远多于赠品的钱来买自己的产品。因此,IIS实质上是收费的。在这一点上,IIS的成本要大于Apache,所以在成本上IIS处于劣势。
 
2. 稳定和性能
 
由于Web服务器一般都是用于各类网站的后台服务,因此,需要7*24地无故障运行。所以稳定性是Web服务器的考察重点。
 
早期的IIS(5.0以前的版本)并不稳定,有时经常出现500的错误,还会出现假死现象。用户需要不定期地重启IIS才能使网站正常工作。而Apache在这方面要比IIS稳定的多。但Apache也有不足的地方,就是设置太复杂。而一但设置完毕,就可以很稳定地工作。虽然早期的IIS不稳定,但最新的IIS(IIS6和IIS7)在这方面有很大约改进。尤其在Windows2003中使用IIS,效率要比Apache高一些。因此,在Windows下,IIS要略胜于Apache。当然,在非Windows下,仍然是Apache的天下,因为IIS离开了Windows就玩不转了。
 
3. 跨平台特性
 
这一点就不用多说了,IIS只能运行在Windows操作系统上,而Apache不仅可以运行在Windows中,还可以运行在Unix、Linux和Solaris等操作系统上。因此,IIS在这一方面如Apache差得很多。
 
4.是否开源
 
最近几年关于开源的话题被炒得沸沸扬扬。开源也成为软件是否贴近用户的标志和最大的卖点之一。由于微软是纯的商业软件公司,因此,IIS是很难开源的。而Apache是由Apache开源组织开发,因此,它的源代码是完全开放的。这对于学习、研究Apache的开发人员来说是非常难得的。由于Apache的开源,参与开发的人也自然多了起来,因此,Apache在安全上也会比IIS高一些。在这一点上,Apache将获得胜利。
 
5.易用性
 
微软也许看到这一点会非常兴奋,因为微软的产品向来以易用而著称。当然IIS也不例外。一个工具的难易程度如何,将直接影响到使用这个工具的用户的多少。有很多中、小型的企业即想用强大的Web服务器,又不想花高薪去雇人。那么IIS将是最好的选择。而Apache在使用和配置上就比IIS复杂得多,一般得有一定的计算机基础的人才能胜任。因此,在这一点上IIS以绝对的优势胜出。
 
6. 可编程性
 
大多数功能强大的工具都具有可编程性。IIS和Apache也不例外。但两者在这一方面还是有一定的区别的。Apache的Mod Rewrite功能非常强大,可以使用Subversion WebDev以及.htaccess功能,还可以使用ForceType。而IIS ISAPI实现起来难度较大,而且对FastCGI支持也不好。但两者的功能都十分强大,因此,IIS和Apache在这方面不分伯仲。
 
7.对语言的支持
 
一般来说,Web服务器都是其于插件形式的。也就是说,Web服务器只是个线程模型。至于它支持的语言(如PHP、ASP、JSP等)或协议(如FTP、HTTP等),都是依靠插件实现的。
IIS对ASP和ASP.NET支持的很好,运行也很稳定,速度也非常快。但对PHP、JSP等语言的支持不如Apache。而且配置起来比较麻烦。而且Apache还支持很多其他的语言,如Python、Ruby、Perl等。这些在IIS中都很难找到它的身影。因此,在这一点上,Apache要略胜一酬。
 
8.薪酬水平
 
其实这个和IIS以及Apache没有直接的关系。只是对于当前现状来说,越容易使用的工具,会的人就越多,当然,薪水也就会越低。由于IIS比Apache更容易使用,因此,使用IIS的Web程序员或网站管理人员的薪水一般情况下就会比相应的Apache程序员低一些。看到这一点上,使用Apache的程序员可能会非常高兴。
 
从上面的八点可以看出,在Windows上,对于ASP和ASP.NET来说,IIS是最好的选择。当然,对于Windows下的PHP、JSP来说,Apache也许会更好一些。在其他的操作系统下,就更不用说了,Apache占有绝对优势。
 
在本文前面所说的IIS的市场占有率开始提升和下降的调查,也许应该看这些被调查的网站使用的是IIS还是Linux/Unix。如果我们主要调查使用Windows的网站,当然是IIS的使用率高了,如果调用以Linux/Unix为主的网站,我想不用我说,地球人都知道,IIS根本没戏。所以要辩证地看待上面的两个调查结果。事实上,IIS和Apache都在不同的位置扮演着重要的角色。单独讨论它们谁会对谁构成威胁已经毫无意义了,关键要看我们使用的操作系统。如果是Windows,使用IIS也许会更好,当然,如果是Linux,就使用Apache吧!