Esta tradução está incompleta. Por favor, ajude a traduzir este artigo.

Neste artigo vamos revisar o que são web servers, como eles funcionam, e por que eles são importantes.

Pré-requisitos: Você deve saber como a Internet funciona, e entender a diferença entre uma página web, um site web, um servidor web e um mecanismo de busca (em inglês)
Objetivo: Você irá aprender o que é um servidor web, e compreender de modo geral como ele funciona.

Sumário

"Servidor web (web server)" pode referir ao hardware ou ao software, ou ambos trabalhando juntos.

  1. Referente ao hardware, um servidor web é um computador que armazena arquivos que compõem os sites (por exemplo, documentos HTML, imagens, folhas de estilo, e arquivos JavaScript) e os entrega para o dispositivo do usuário final. Está conectado a Internet e pode ser acessado através do seu nome de domínio (DNS), como por exemplo mozilla.org.
  2. Referente ao software, um servidor web inclui diversos componentes que controlam como os usuários acessam os arquivos hospedados (armazenados para disponibilização), no mínimo um servidor HTTP. Um servidor HTTP é um software que compreende URLs (endereços web) e HTTP (o protocolo que seu navegador utiliza para visualizar páginas web.

Em um nível mais básico, o navegador fará uma requisição utilizando o protocolo HTTP sempre que necessitar de um um arquivo hospedado em um servidor web. Quando a requisição alcançar o servidor web correto (hardware), o servidor HTTP (software) enviará o documento requerido, também via HTTP.

Basic representation of a client/server connection through HTTP

Para publicar um website, é necessário ou um servidor web estático ou um dinâmico.

Um servidor web estático consiste em um computador (hardware) com um servidor HTTP (software). É chamado "estático" porque o servidor envia seus arquivos tal como foram criados e armazenados (hospedados) ao navegador.

Um servidor web dinâmico consiste em um servidor web estático com software adicional, mais comumente um servidor de aplicações (application server) e um banco de dados (database). É chamado "dinâmico" porque o servidor de aplicações atualiza os arquivos hospedados antes de enviá-los ao navegador através do servidor HTTP.

Por exemplo, para produzir as páginas finalizadas que você vê em seu navegador, o servidor de aplicações pode completar um modelo de página HTML (HTML template) com o conteúdo obtido de um banco de dados. Sites como o MDN ou a Wikipédia possuem vários milhares de páginas web, mas elas não são realmente documentos HTML, mas apenas alguns poucos templates HTML e uma gigantesca base de dados. Essa configuração agiliza e facilita o gerenciamento e a entrega do conteúdo.

Aprendizado ativo

Ainda não há aprendizado ativo disponível. Por favor, considere contribuir.

Entrando a  fundo

Para carregar uma página web, como já foi dito, seu browser envia uma requisição ao servidor web, que busca pelo arquivo requisitado no seu próprio espaço de armazenamento. Ao encontrar o arquivo, o servidor web realiza a leitura, faz os processamentos necessários e o envia ao browser. Vamos olhar mais detalhamente para essas etapas.

Servindo arquivos

Um servidor web precisa primeiro armazenar os arquivos dos websites, como todos os documentos HTML e seus assets, que incluem imagens, páginas de estilo CSS, arquivos JavaScript, fontes e vídeos.

Técnicamente, você pode servir todos esses arquivos em seu próprio computador. Mas, é muito mais conveniente armazená-los em um servidor web dedicado que

  • está sempre "vivo" e rodando
  • está sempre conectado à Internet
  • tem o mesmo endereço IP sempre (nem todos ISPs fornecem um endereço IP fixo para linhas domésticas)
  • é mantido por um provedor de terceiros

Por todas essas razões, encontrar um bom provedor de servidores é a chave para criar seu próprio website.  Pesquise pelos vários serviços oferecidos e escolha aquele que melhor se alinha às suas necessidades e ao bolso (os serviçoes variam em uma faixa desde zero até milhares de dólares por mês). Você pode encontrar mais detalhes nesse artigo.

Uma vez que você escolheu uma solução de servidores web, você só precisa fazer o upload dos seus arquivos para o servidor web.

Comunicando através do HTTP

Segundo, um servidor web fornece suporte para HTTP (protocolo de transferência de hipertexto). Como o próprio nome indica, o HTTP especifica como transferir arquivos de hipertexto (ou seja, documentos vinculados da web) entre dois computadores.

Um protocolo é um conjunto de regras para comunicação entre dois computadores. HTTP é um protocolo textual sem estado.

Textual
Todos os comandos são de texto simples e legíveis por humanos.
Sem estado
Nem o servidor nem o cliente lembram de comunicações anteriores. Por exemplo, confiando apenas no HTTP, um servidor não consegue se lembrar de uma senha digitada ou da etapa em que você está em uma transação. Você precisa de um servidor de aplicativos para tarefas como essa. (Nós vamos cobrir esse tipo de tecnologia em mais artigos.)

O HTTP fornece regras claras sobre como um cliente e um servidor se comunicam. Abordaremos o próprio HTTP em um artigo técnico mais adiante. Por enquanto, apenas fique atento a estas coisas:

  • Only clients can make HTTP requests, and then only to servers. Servers can only respond to a client's HTTP request.
  • When requesting a file via HTTP, clients must provide the file's URL.
  • The web server must answer every HTTP request, at least with an error message.

The MDN 404 page as an example of such error pageOn a web server, the HTTP server is responsible for processing and answering incoming requests.

  1. On receiving a request, an HTTP server first checks whether the requested URL matches an existing file.
  2. If so, the web server sends the file content back to the browser. If not, an application server builds the necessary file.
  3. If neither process is possible, the web server returns an error message to the browser, most commonly "404 Not Found". (That error is so common that many web designers spend quite some time designing 404 error pages.)

Static vs. dynamic content

Roughly speaking, a server can serve either static or dynamic content. "Static" means "served as-is". Static websites are the easiest to set up, so we suggest you make your first site a static site.

"Dynamic" means that the server processes the content or even generates it on the fly from a database. This solution provides more flexibility, but the technical stack becomes more difficult to handle, making it dramatically more complex to build the website.

Take for example the page you're reading right now. On the web server hosting it, there is an application server that takes article content from a database, formats it, puts it inside some HTML templates, and sends you the results. In this case, the application server is called Kuma and is built with Python (using the Django framework). The Mozilla team built Kuma for the specific needs of MDN, but there are many similar applications built on many other technologies.

There are so many application servers that it's pretty hard to suggest a particular one. Some application servers cater to specific website categories like blogs, wikis or e-shops; others, called CMSs (content management systems), are more generic. If you're building a dynamic website, take the time to choose a tool that fits your needs. Unless you want to learn some web server programming (which is an exciting area in itself!), you don't need to create your own application server. That's just reinventing the wheel.

Next steps

Now that you are familiar with web servers, you could:

Etiquetas do documento e colaboradores

Colaboradores desta página: erickandrade, lfpelison, kleinerbr, linielson
Última atualização por: erickandrade,