Differenza tra Apache HTTP Server e Apache Tomcat?

Qual è la differenza in termini di funzionalità tra Apache HTTP Server e Apache Tomcat?

So che Tomcat è scritto in Java e il server HTTP è in C, ma a parte questo non so davvero come si distinguono. Hanno funzionalità diverse?

Soluzione

Apache Tomcat è usato per distribuire i vostri Java Servlets e JSPs. Così nel tuo progetto Java puoi costruire il tuo file WAR (abbreviazione di Web ARchive), e semplicemente rilasciarlo nella directory di distribuzione in Tomcat.

Quindi fondamentalmente Apache è un server HTTP, che serve HTTP. Tomcat è un server Servlet e JSP che serve le tecnologie Java.

Tomcat include Catalina, che è un contenitore di servlet. Un servlet, alla fine, è una classe Java. I file JSP (che sono simili a PHP e ai vecchi file ASP) sono generati in codice Java (HttpServlet), che viene poi compilato in file .class dal server ed eseguito dalla macchina virtuale Java.

Commentari (17)

Oltre alle belle risposte di cui sopra, penso che dovrebbe essere detto che Tomcat ha il proprio server HTTP incorporato, ed è pienamente funzionale a servire anche contenuti statici. A seconda della configurazione della vostra macchina virtuale java può effettivamente superare i tradizionali connettori in apache come mod_proxy e mod_jk.

Detto questo, un server Tomcat completamente ottimizzato dovrebbe servire velocemente i file statici e se avete servlet Java, JSP e file ColdFusion oltre al contenuto statico, potreste scoprire che Tomcat fa un lavoro eccellente da solo.

Commentari (2)

Tomcat è principalmente un server di applicazioni, che serve richieste a servlet Java costruite su misura o a file JSP sul vostro server. Di solito è usato insieme al server HTTP Apache (almeno nella mia esperienza). Usalo per elaborare manualmente le richieste in arrivo.

Il server HTTP, da solo, è meglio per servire contenuti statici... file html, immagini, ecc.

Commentari (5)