Archive - Originally posted on "The Horse's Mouth" - 2006-01-25 15:26:20 - Graham Ellis
You wouldn't choose to use a Ford Ka as your car for that holiday of a lifetime travelling across Europe, neither would you choose a Jaguar as your idea car for the school run. Yet both of them are perfectly good models of car. Indeed as a family, you might have one of each.
Apache httpd and Apache Tomcat and both web servers. You can have either of them listen on port 80 for requests in http and answer those requests. But just as the luxury Ford - the Jaguar - was great for that holiday and the budget Ford - the Ka - was great for the school trips, so each has its own use and place.
Apache httpd - the original Apache Web Server is sometimes just called "Apache" still. It's great for serving out static content - HTML pages that don't change, Images, style sheet, and also shorter scripts and quieter site activities with the scripts often written in Perl or PHP. Apache httpd is pretty common - I think I've seen comment that it's the server that fronts as many as 70% of all registered domains worldwide.
Apache Tomcat is a different beast. Rather than serving each page "ad hoc" as it's called up, it runs web applications in containers and it keeps them running, handling requests from multiple users, with the application staying in the computer memory. In contrast to httpd, Tomcat is great for the big sites - on line banking and passport applications, shopping sites for huge supermarkets, end the like.
Just as a family might have a Ka and a Jag, so a web site might be run with both httpd and Tomcat. In fact, it would be much more common that having two cars as both servers are open source and only cost you memory and resources. It's usual for httpd to be the user-facing server since so many requests made are for odd images, help information, style sheets and the like. Then httpd calls on to Tomcat in the case of meatier requests. Properly configured, the user doesn't even need to know that the web server he's contacted has passed his request on and is just acting as a relay station.