Servidores Web
Last updated
Was this helpful?
Last updated
Was this helpful?
Até o momento atual vimos como o protocolo HTTP(S) atua como o protocolo de comunicação da Web, permitindo que os navegadores possam solicitar diferentes tipos de conteúdos pela Internet. A partir de agora, iremos nos focar em entender um pouco da arquitetura que permite que a web ofereça tantos serviços e sites tal como conhecemos nos dias atuais.
Podemos definir um Servidor Web simples como um computador com uma série de mecanismos capazes de:
Receber requisições HTTP dos clientes,
Processar as requisições uma a uma,
Retornar uma resposta HTTP aos clientes.
Apesar de poucas etapas, o processamento muitas vezes pode ser algo simples, como o conteúdo de uma imagem, ou algo complexo como uma busca em um conjunto de bases de dados com milhares de registros.
Qualquer computador com acesso à uma rede pode agir como um Servidor Web e o objetivo dos próximos tópicos será de dar um breve vislumbre de quais são esses mecanismos e como eles atuam para que o servidor entregue o conteúdo esperado para cada requisição.
O mecanismo responsável por estabelecer as conexões e processar as mensagens HTTP recebidas é chamado de Servidor HTTP, e a sua função é mapear, por meio das informações recebidas pelos cabeçalhos, qual tipo de conteúdo o cliente deseja receber do servidor.
Fonte: developer.mozilla.org
Podemos dividir os tipos de conteúdos em duas categorias principais:
Conteúdos Estáticos: são arquivos que não necessitam de nenhum tipo de processamento do servidor, bastando que o processo apenas leia e retorne uma cópia do mesmo para o cliente (Ex: arquivos de imagens, CSS, JS, HTML, PDF, ZIP).
Conteúdos Dinâmicos: são conteúdos que demandam algum tipo de processamento para retornar o conteúdo. Uma pesquisa, por exemplo, necessita que haja uma busca em um banco de dados e que a resposta seja construída de acordo com a requisição.
Geralmente no segundo caso, o servidor HTTP irá invocar a execução de algum código escrito em alguma linguagem de programação (Ex: PHP, Python, Javascript) seja na mesma máquina ou em um Servidor de Aplicação externo e este será responsável por realizar toda a carga de trabalho necessária. Nas aulas futuras iremos abordar com mais detalhes como esses outros mecanismos funcionam.
Vamos ver então dois exemplos de servidores web amplamente utilizados atualmente: o Apache HTTP Server e o Nginx. Mas antes, caso queira se aprofundar nos tópicos visto até o momento recomendamos os seguintes links:
Uma das vantagens do Apache é a sua alta integração com com outros projetos Open Source como o PHP e o MySQL. O uso dessas tecnologias em conjunto é muito comum e recomendada como porta de entrada para aqueles que querem saber mais sobre desenvolvimento web. Há diversos projetos que permitem a instalação dos três de maneira rápida, permitindo a criação de um servidor web local em conjunto com um banco de dados (ex: XAMP, WAMP, LAMP).
Para saber mais sobre, veja os seguintes links:
O NGINX se trata de um sistema Open Source que atua como Web Server, foi lançado em 2004 com o objetivo de ser um servidor com alta escalabilidade e eficiência e é atualmente o servidor mais utilizado para servir conteúdos web.
Assim como o Apache, o NGINX também possui alta integração com muitos outros projetos Open Source, além de possui muitos outros serviços além do de HTTP Server como Proxy Reverso, Load Balancer e Web application Firewall. Caso queira se aprofundar mais em como ele funciona, veja os links a seguir
Fonte: developer.mozilla.org
Até o momento, tratamos o Servidor Web como uma instância simples que é executada em uma única máquina. No entanto, isso nem sempre é verdade. Grandes websites precisam lidar com problemas de disponibilidade e performance em alta escala e isso, muitas vezes, demanda uma arquitetura muito maior do que um simples servidor HTTP.
Caso você queira se aprofundar mais no tema, recomendamos a video aula do link a seguir. Nela, você poderá entender um pouco melhor sobre a arquitetura e funcionamento de serviços que precisam lidar com uma grande quantidade de requisições, assim como citar outros intermediários que podem estar inseridos entre o cliente e o servidor final.
Uma visão geral do HTTP. ()
O que é um Servidor Web? ()
Servidor Web: Hardware ou Programa? ()
What Is an Application Server vs. a Web Server? ()
Fonte:
O projeto Apache é um servidor web criado em 1995 e é, desde então, um dos servidores mais utilizados para a hospedagem de websites (). O core da sua aplicação é bastante enxuto e focado principalmente na tarefa de buscar e transmitir os dados requisitados via HTTP. No entanto, graças a uma grande comunidade de desenvolvedores e a sua arquitetura que permite a integração de módulos externos, ele se tornou uma ferramenta poderosa e muita utilizada ainda hoje.
An Introduction to Apache ()
How Does PHP Work With The Web Server And Browser? ()
Apache tutorial ()
Fonte:
What is NGINX? ()
Inside NGINX ()
NGINX ()
Beginner's Guide ()
Lecture 9 - Scalability - Harvard Web Development ()
Reverse Proxy vs Load Balancer ()
Web Application Firewall ()