Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Diferença entre Servidor Web e Servidor de aplicação (Apache Web Serve & Tomcat Application Serve)

Olá, minha dúvida é a seguinte.

Pesquisando sobre o Tomcat, descobri que se trata de um servidor de aplicação. Sua função é converter páginas dinâmicas (JSP) em HTML.

Já o servidor web (Apache HTTP Server) tem a função de receber requisições HTTP, buscar os arquivos necessários e devolver ao cliente (esses arquivos por sua vez serão convertidos pelo Tomcat antes de serem enviados).

Concluí então que o servidor web SOMENTE lida com as requisições sem converter nada, e o servidor de aplicação SOMENTE converte.

.

Só que em aplicações PHP, por exemplo, não utilizamos Tomcat, somente Apache HTTP Server. Contudo, o código não é HTML puro.

Veja o exemplo:

<html>
<head>
  <title>Título</title>
</head>
<body>
  <?php
  if ($variavel == "") {
    echo "<center></center>";
  }
  ?>
</body>
</html>
`

Como o que chega ao cliente é HTML, em algum momento isso foi convertido.

Pergunta: Como isso foi convertido se não estou utilizando servidor de aplicação?

Pergunta 2: Se foi o Apache HTTP Server que converteu. Porque precisamos do Tomcat em Java?

Pergunta 3: Apache Tomcat são dois softwares que trabalham juntos (Apache HTTP Server + Tomcat )? Ou é uma coisa só com função de Servidor Web + Application Serve ? (Isso pq quando instalo pra utilizar nos meus projetos é sempre o "Apache tomcat")

2 respostas
solução!

Gustavo, essa é uma excelente pergunta.

  1. O Apache, apesar de se tratar de um servidor web, possui inúmeros módulos, inclusive um para lidar com PHP e fazer essa "conversão" (passar os arquivos php para o php e pedir para "executá-los", servindo apenas o HTML no final).

  2. O Apache nao possui módulo para chamar o Java, mas possui módulo para se "conectar" com o Tomcat. Daí a necessidade de ter o Tomcat para que sua aplicação web (webapp) seja "executada", gerado o html, e repassado ao Apache

  3. Aqui tem varios detalhes:

  4. "Apache Tomcat" é o nome oficial do Tomcat sozinho, sem o apache. Isso porque o nome "Apache" nesse caso se refere ao "projeto apache", um grupo gigante de projetos opensource (http://apache.org/index.html#projects-list).
  5. E o tal "Apache" em si? O nome oficial é " Apache http server". Entao vamos resumir:

Entao temos 3 coisas diferentes: - Apache: grupo opensource - Apache http server: o servidor http que muita gente usa. Como o exemplo pra usar com php. Muitas vezes falamos apenas "server apache", "servidor apache" ou só " apache", gerando confusao com o primeiro termo - Apache Tomcat, o que usamos para registrar nossas webapps java, nossos wars, etc. Normalmente nos referimos apenas como "Tomcat".

Sobre o que é e o que não é necessário: se voce ja tem o Apache Tomcat, nao precisa do Apache http server pois o Tomcat, além de trabalhar com as webapps java, possui um pequeno e simples httpserver escrito em java dentro dele mesmo! Mas em aplicacoes grandes é comum termos um servidor web mais parrudo conectado ao tomcat, como o proprio Apache http server ou o nginx.

Pois é, muitos nomes geram mesmo bastante confusao.

Excelente!

Acabou com a discussão de uma tarde inteira aqui no trabalho hahaha.