Apache HTTP Server is written in C and, as its name suggests, is a general-purpose HTTP server. Tomcat is written in Java, and its main purpose is to host servlets and JSPs. Tomcat can serve as an HTTP server for static content, but Apache HTTP Server offers many advanced options that Tomcat does not.