Como funcionam os servidores web Introdução Você já imaginou os mecanismos que lhe posibilitaram abrir esta página? Você está sentado na frente de um computador agora mesmo, vendo esta página em um navegador. Assim, quando você clicou no link, ou digitou nele sua URL (em inglês, uniform resource locator, ou localizador de recursos uniforme), o que aconteceu nos bastidores para trazer esta página até sua tela? Se você já teve curiosidade sobre o processo, ou sempre quis conhecer alguns dos mecanismos específicos que permitem que você navegue na Internet, então continue lendo. Aqui vamos aprender como os servidores Web trazem as páginas até sua casa, escola ou escritório. Vamos começar! Foto cedida por Shopping.com Servidor IBM Netfinity 5500 8660 Como funcionam os servidores web O processo básico Suponha que você esteja sentado em seu computador, navegando na Web, e recebe um telefonema de um amigo que diz: "Acabei de ler um artigo sensacional! Digite essa URL e verifique, é http://webaula.unipar.br/leia_isto.htm." Então você digita essa URL em seu navegador e pressiona a tecla Enter, como mágica, não importa em que lugar do mundo essa URL mora, a página aparece em sua tela. No nível mais básico possível, o seguinte diagrama mostra as etapas que trouxeram aquela página até sua tela: Seu navegador formou uma conexão com um servidor Web, solicitou uma página e a recebeu. Na próxima página, vamos explorar isso um pouco mais Como funcionam os servidores web Nos bastidores Se você quiser se aprofundar um pouco mais nos detalhes do processo de obter uma página da Web na tela de seu computador, aqui estão as etapas básicas que ocorrem: o navegador quebrou a URL em três partes: o protocolo ("http"); o nome do servidor (“www.unipar.br"); o nome do arquivo (“teste.htm"). o navegador se comunicou com um servidor de nomes para traduzir o nome do servidor "www.unipar.br" em um endereço IP, que ele usa para se conectar à máquina servidora; o navegador então formou uma conexão com o servidor naquele endereço IP na porta 80. (Vamos discutir as portas mais tarde neste artigo); seguindo o protocolo HTTP, o navegador enviou uma solicitação GET (obter) ao servidor, pedindo o arquivo "http://www.unipar.br/teste.htm."Observe que cookies (literalmente, biscoitinhos) podem ser enviados pelo navegador para o servidor junto com a solicitação GET - veja Como funcionam os cookies da Internet para detalhes); Como funcionam os servidores web Nos bastidores O servidor então enviou o texto HTML da página da Web para o navegador. Os cookies também podem ser enviados do servidor para o navegador no cabeçalho da página; O navegador leu as tags HTML e formatou a página em sua tela. Se você nunca viu esse processo antes, aprendeu muitas palavras novas. Para compreender todo esse processo em detalhes, você precisa aprender sobre endereços IP, portas, protocolos... As próximas seções apresentarão uma explicação completa Como funcionam os servidores web A Internet O que é a Internet ? É uma gigantesca coleção de milhões de PCs, todos ligados em uma rede de computadores. A rede permite que todos os computadores se comuniquem uns com os outros. Um micro doméstico pode estar ligado à Internet usando um modem de linha telefônica, DSL ou modem de cabo, que conversam com um provedor de serviços de Internet (em inglês, ISP). Um computador em uma empresa ou universidade geralmente terá uma placa de interface de rede (em inglês, NIC) que a conecte diretamente a uma rede de área local (em inglês, LAN) dentro da empresa. A empresa pode então conectar sua LAN a um ISP usando uma linha telefônica de alta velocidade, como a linha T1. Uma linha T1 pode manipular aproximadamente 1,5 milhão de bits por segundo, ao passo que uma linha telefônica normal usando um modem pode manipular tipicamente 30 mil a 50 mil bits por segundo. Como funcionam os servidores web A Internet Os ISPs então se conectam a ISPs maiores, e os maiores ISPs mantêm fiber-optic "backbones" (literalmente, colunas vertebrais) para toda uma nação ou região. Os backbones ao redor do mundo são conectados por meio de linhas de fibra óptica, cabos submarinos ou links de satélite (veja Um Atlas de Ciberespaços (em inglês) para alguns mapas de backbones interessantes). Desse modo, cada computador está conectado a todos os outros computadores da Internet. Como funcionam os servidores web Como funcionam os servidores web Clientes e servidores Em geral, todas as máquinas na Internet podem ser classificadas como de dois tipos: servidores e clientes. As máquinas que fornecem serviços (como os servidores Web ou servidores de FTP) para outras máquinas são os servidores. As máquinas usadas para conectar esses serviços são os clientes. Quando você se conecta ao Yahoo! em www.yahoo.com para ler uma página, o Yahoo! está fornecendo uma máquina (provavelmente um aglomerado de máquinas muito grande) para uso na Internet com o objetivo de atender a sua solicitação. O Yahoo! está fornecendo um servidor. Por outro lado, sua máquina provavelmente não está fornecendo serviços para ninguém mais na Internet. Assim, ela é uma máquina de usuário, também conhecida como um cliente. É possível e comum para uma máquina fazer ambos os papéis, de servidor e cliente, mas para os fins de entendimento neste artigo você pode pensar na maioria das máquinas como um ou outro. Como funcionam os servidores web Clientes e servidores Uma máquina servidora pode fornecer um ou mais serviços. Por exemplo, uma máquina servidora poderia executar um software que permitisse atuar como um servidor Web, um servidor de e-mail e um servidor de FTP (em inglês). Os clientes que acessam uma máquina servidora o fazem com uma intenção específica; assim, os clientes dirigem suas solicitações a um servidor de software específico funcionando na máquina servidora global. Por exemplo, se você está executando um navegador Web em sua máquina, ela provavelmente irá querer falar com o servidor Web na máquina servidora. Seu aplicativo de Telnet (em inglês) irá querer falar com o servidor de Telnet, seu aplicativo de e-mail falará com o servidor de email e assim por diante. Como funcionam os servidores web Endereços IP Para manter todas essas máquinas em ordem, é designado um endereço exclusivo para cada máquina na Internet, chamado endereço IP. IP em inglês significa protocolo de Internet, e esses endereços são números de 32 bits, normalmente expressos como quatro "octetos" em um "número decimal com pontos". Um endereço IP típico se parece com isto: 216.27.61.137 Os quatro números em um endereço IP são chamados octetos porque podem ter valores entre 0 e 255, o que representa 28 possibilidades por octeto. Como funcionam os servidores web Endereços IP Todas as máquinas na Internet possuem um endereço IP exclusivo. Um servidor possui um endereço IP estático, que não é alterado. Um computador de uso pessoal que faça uma conexão dial-up por meio de um modem, freqüentemente recebe um endereço IP designado pelo ISP quando a máquina faz a conexão. Esse endereço IP é exclusivo para aquela sessão: ele poderá ser diferente da próxima vez que a máquina se conectar. Desse modo, um ISP precisa somente de um endereço IP para cada modem que ele suporta, em vez de um para cada cliente. Como funcionam os servidores web Endereços IP Se você está trabalhando em uma máquina Windows, poderá visualizar uma série de informações de Internet de seu computador, incluindo seu endereço IP atual e nome de hospedeiro, com o comando WINIPCFG.EXE (IPCONFIG.EXE para Windows 2000/XP/Vista/Seven). Em uma máquina UNIX, digite nslookup no prompt de comando, junto com um nome de máquina, como www.unipar.br - por exemplo, "nslookup www.unipar.br" -, para exibir o endereço IP do computador, e você poderá usar o comando hostname para saber o nome de sua máquina. Para mais informações sobre endereços IP, veja IANA (em inglês). Quanto à Internet, a única coisa de que a máquina precisa para falar com um servidor é o endereço IP. Por exemplo, você pode digitar em seu navegador a URL http://209.116.69.66 e chegar à máquina que contém o servidor Web do HowStuffWorks. Em alguns servidores, o endereço IP sozinho não é suficiente, mas na maioria dos grandes servidores ele é. Como funcionam os servidores web Nomes de domínio Como a maioria das pessoas tem problema para lembrar as seqüências de números que compõem os endereços IP, e como os endereços IP algumas vezes precisam mudar, todos os servidores na Internet também possuem nomes legíveis, chamados de nomes de domínio. Por exemplo, www.unipar.br é um nome permanente e legível. Temos mais facilidade em lembrar de www.unipar.br do que de 209.116.69.66. O nome www.unipar.br, na verdade, possui três partes: o nome do hospedeiro (host) ("www"); o nome do domínio (“unipar"); o nome do domínio de alto nível (“br"). Como funcionam os servidores web Nomes de domínio Nomes de domínio dentro do domínio ".com" são gerenciados pelo registrador chamado VeriSign (em inglês). A VeriSign também gerencia os nomes de domínio ".net". Outros registradores (como a RegistryPro, NeuLevel e Public Interest Registry) gerenciam os outros domínios (como .pro, .biz e .org). A VeriSign cria os nomes de domínio de alto nível e garante que todos os nomes dentro de um domínio de alto nível sejam exclusivos. Ela também mantém informações de contato para cada site e executa o banco de dados "whois" (quem é). O nome do hospedeiro é criado pela companhia que hospeda o domínio "www" é um nome de hospedeiro muito comum, mas muitos locais agora o omitem ou substituem por nome de hospedeiro diferente que indica uma área específica do site. Por exemplo, em webaula.unipar.br, o nome de domínio para o site webaula da unipar, “webaula" é designado como o nome de hospedeiro em vez de www. Como funcionam os servidores web Servidores de nomes Um conjunto de servidores chamados servidores de nome de domínio (em inglês, DNS) mapeia os nomes legíveis dos endereços IP. Esses servidores são simples bancos de dados que mapeiam os nomes para os endereços IP e estão distribuídos por toda a Internet. A maioria das companhias individuais, ISPs e universidades mantém pequenos servidores de nomes para mapear nomes de hospedeiros para endereços IP. Também há servidores de nomes centrais que usam os dados fornecidos pela VeriSign para mapear nomes de domínios para endereços IP. Como funcionam os servidores web Servidores de nomes Se você digitar a URL "http://www.unipar.br/teste.htm" em seu navegador, ele irá extrair o nome "www.unipar.br", passá-lo para um servidor de nomes de domínio e este irá enviar de volta o endereço IP correto para www.unipar.br. Diversos servidores de nomes podem estar envolvidos na obtenção do endereço IP correto. Por exemplo, no caso de www.unipar.br, o servidor de nomes para o domínio de alto nível "com" sabe o endereço IP do servidor de nomes, que por sua vez conhece os nomes de hospedeiros. Uma consulta independente naquele servidor de nomes, operada pelo ISP Unipar, pode entregar o endereço IP real para a máquina servidora Unipar. Como funcionam os servidores web Servidores de nomes Em uma máquina UNIX, você pode acessar o mesmo serviço usando o comando nslookup. Basta digitar um nome como "www.unipar.br" na linha de comando e o comando fará uma consulta nos servidores de nomes e entregará o endereço IP correspondente para você. Então é isto: a Internet é constituída por milhões de máquinas, cada uma com um endereço IP exclusivo. Muitas delas são máquinas servidoras, o que significa que elas fornecem serviços para outras máquinas na Internet. Você já ouviu falar de muitos desses servidores: servidores de e-mail, servidores Web, servidores de FTP, servidores Gopher e servidores Telnet, para dar alguns exemplos. Todos eles são fornecidos por máquinas servidoras. Como funcionam os servidores web Computador Qualquer máquina servidora disponibiliza seus serviços para a Internet usando portas numeradas, uma para cada serviço disponível naquele servidor. Por exemplo, se uma máquina servidora executa um servidor Web e um servidor de FTP, o servidor Web normalmente estaria disponível na porta 80, ao passo que o servidor de FTP estaria disponível na porta 21. Os clientes se conectam a um serviço em um endereço IP específico e a uma porta também específica. Aqui estão alguns números de portas comuns: Como funcionam os servidores web Computador echo 7 (eco) daytime 13 (hora do dia) qotd 17 (citação do Dia) ftp 21 telnet 23 smtp 25 (Simple Mail Transfer, significando e-mail) time 37 (hora) nameserver 53 (nome do servidor) nicname 43 (apelido ou Who Is - quem é) gopher 70 (outro protocolo de Internet) finger 79 (nome associado a um endereço de e-mail) WWW 80 Como funcionam os servidores web Computador Se a máquina servidora aceita conexões provenientes do mundo externo em uma porta e se um firewall não a está protegendo, você pode se conectar a essa porta de qualquer lugar na Internet e usar o serviço. Note que não há nada que force o servidor Web, por exemplo, a estar na porta 80. Se você fosse configurar sua própria máquina e carregasse o software de servidor Web nela, poderia colocá-lo na porta 918, ou em qualquer porta não utilizada. Então, se sua máquina fosse conhecida como xxx.yyy.com, alguém na Internet poderia se conectar a seu servidor com a URL http://xxx.yyy.com:918. O ":918" especifica explicitamente o número da porta e teria de ser incluído para que alguém alcançasse seu servidor. Quando nenhuma porta é especificada, o navegador simplesmente assume que o servidor está usando a mais comum porta 80. Como funcionam os servidores web Juntando tudo Agora você conhece muita coisa sobre a Internet. Você sabe que, ao digitar uma URL em um navegador, ocorrem as seguintes etapas: o navegador quebra a URL em três partes: o protocolo ("http"); o nome do servidor ("www.unipar.br"); o nome do arquivo (“teste.htm"). o navegador se comunica com um servidor de nomes para traduzir o nome do servidor "www.unipar.br" em um endereço IP que ele usa para se conectar àquela máquina servidora; o navegador então forma uma conexão com o servidor Web naquele endereço IP na porta 80; Como funcionam os servidores web Juntando tudo seguindo o protocolo HTTP, o navegador envia uma solicitação GET (obter) ao servidor, pedindo o arquivo http://www.unipar.br/teste.htm.; o servidor então envia o texto HTML da página da Web para o navegador. Os cookies também podem ser enviados do servidor para o navegador no cabeçalho da página; o navegador lê as tags HTML e formata a página em sua tela. Como funcionam os servidores web Segurança Com base nessa descrição, você pode ver que o servidor Web pode ser um trecho de software bastante simples. Ele pega o nome do arquivo enviado para ele com o comando GET, recupera o arquivo e o envia pela conexão até o navegador. Mesmo que você considerasse todos os códigos para manipular as portas e conexões, poderia criar facilmente um programa C que implementasse um servidor Web simples em menos de 500 linhas de código. Obviamente, um servidor Web completo de nível empresarial tem mais coisas, mas o fundamental é muito simples. Como funcionam os servidores web Segurança A maioria dos servidores acrescenta algum nível de segurança ao processo de servir. Por exemplo, se você já visitou uma página da Web e viu o navegador apresentar uma caixa de diálogo solicitando seu nome e senha, encontrou uma página protegida. O servidor permite que o proprietário da página mantenha uma lista de nomes e senhas para aquelas pessoas que têm permissão de acessar a página: o servidor deixa somente as pessoas que conhecem a senha correta verem a página. Servidores mais avançados acrescentam segurança adicional para permitir uma conexão criptografada entre o servidor e o navegador, de modo que informações sensíveis como números de cartão de crédito possam ser enviados pela Internet. Isso diz respeito a um servidor Web que fornece páginas estáticas padrão. Páginas estáticas são aquelas que não mudam a menos que o criador edite a página. Como funcionam os servidores web Páginas dinâmicas Mas e quanto às páginas da Web que são dinâmicas? Por exemplo: qualquer livro de visitas permite que você deixe uma mensagem em formato HTML e, da próxima vez que o livro de mensagens é visualizado, a página conterá a nova entrada; o formulário whois da Network Solutions (em inglês) permite que você introduza um nome de domínio em um formulário, e a página devolvida é diferente dependendo do nome de domínio introduzido; qualquer mecanismo de busca permite que você introduza palavras-chave em um formulário HTML e, então, cria dinamicamente uma página baseada nas palavraschave que você introduziu. Como funcionam os servidores web Páginas dinâmicas Em todos esses casos, o servidor Web não está simplesmente "procurando um arquivo". Na verdade, ele está processando informações e gerando uma página baseada nos tópicos específicos da consulta. Em quase todos os casos, o servidor Web usa algo chamado scripts em CGI para realizar essa proeza. Os scripts em CGI já são um outro assunto e são descritos no artigo Como funcionam os scripts em CGI. Para mais informações sobre servidores Web e assuntos relacionados, verifique os links na próxima página.