Monday 1 December 2003

Apache, IIS, competition

Actually, one could argue that IIS and Apache don't really compete, except in the 'small' field of static web page serving and CGI (Common Gateway Interface, a way to get external processes to serve pages). I suspect this is where the hosting providers excel, and why they tend to choose Apache - it serves static pages reasonably quickly at very low cost.

Apache offers mainly simple dynamic page technology - mod_perl, PHP, etc, that can be obtained at low cost or for free, catering to the more amateur web developer. Microsoft offers scalable dynamic page technology - ASP with VBScript and JScript, ASP.NET with C# and VB.NET. Finally, you've got Java-based application servers, but these appear to actually have a very low market share.

Of course, you can go outside these boundaries - Apache does offer mod_asp, and some suggest an ASP.NET module too (though you're limited to Windows in this case). Likewise, ActiveState offer a Perl Active Script Engine, so you can write ASP pages for IIS in Perl (not quite the same as mod_perl, though). But these are far less common.

CGI is rarely considered for a new project, because the overhead of spawning a new process for every request is huge; the system simply wouldn't scale. Almost any other technology is simpler. For a University group project, I wrote a CGI-based system in Ada, because writing in Ada was required. I don't think there's any web server plug-in that allows writing pages in Ada (although it might be possible with a CLR-based Ada implementation, I wouldn't like to try it).

I assume that large companies require a strong data-backed dynamic website, probably including a content management system, and for that requirement IIS probably is superior.

No comments: