Anda di halaman 1dari 4

Como funcionam os servidores da Web

por Marshall Brain - traduzido por HowStuffWorks Brasil

Introduo Voc j imaginou os mecanismos que lhe posibilitaram abrir esta pgina? Voc est sentado na frente de um computador agora mesmo, vendo esta pgina em um navegador. Assim, quando voc clicou no link, ou digitou nele sua URL (em ingls, uniform resource locator, ou localizador de recursos uniforme), o que aconteceu nos bastidores para trazer esta pgina at sua tela? Se voc j teve curiosidade sobre o processo, ou sempre quis conhecer alguns dos mecanismos especficos que permitem que voc navegue na Internet, ento continue lendo. Neste artigo, vamos aprender como os servidores Web trazem as pginas at sua casa, escola ou escritrio. Vamos comear! O processo bsico 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://www.hsw.com.br/servidores-da-web.htm." Ento voc digita essa URL em seu navegador e pressiona a tecla Enter, como mgica, no importa em que lugar do mundo essa URL mora, a pgina aparece em sua tela. No nvel mais bsico possvel, o seguinte diagrama mostra as etapas que trouxeram aquela pgina at sua tela:

Foto cedida por Shopping.com

Servidor IBM Netfinity 5500 8660

Seu navegador formou uma conexo com um servidor Web, solicitou uma pgina e a recebeu. Na prxima pgina, vamos explorar isso um pouco mais. Nos bastidores Se voc quiser se aprofundar um pouco mais nos detalhes do processo de obter uma pgina da Web na tela de seu computador, aqui esto as etapas bsicas que ocorrem:

1. 2. 3.

o navegador quebrou a URL em trs partes: o protocolo ("http"); o nome do servidor ("www.hsw.com.br"); o nome do arquivo ("servidores-da-web.htm"). o navegador se comunicou com um servidor de nomes para traduzir o nome do servidor "www.hsw.com.br" em um endereo IP, que ele usa para se conectar mquina servidora; o navegador ento formou uma conexo com o servidor naquele endereo IP na porta 80. (Vamos discutir as portas mais tarde neste artigo); seguindo o protocolo HTTP, o navegador enviou uma solicitao GET (obter) ao servidor, pedindo o arquivo "http://www.hsw.com.br/servidores-daweb.htm."Observe que cookies (literalmente, biscoitinhos) podem ser enviados pelo navegador para o servidor junto com a solicitao GET - vejaComo funcionam os cookies da Internet para detalhes); o servidor ento enviou o texto HTML da pgina da Web para o navegador. Os cookies tambm podem ser enviados do servidor para o navegador no cabealho da pgina;

o navegador leu as tags HTML e formatou a pgina 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 endereos IP, portas, protocolos... As prximas sees apresentaro uma explicao completa. A Internet O que a Internet ? uma gigantesca coleo de milhes de PCs, todos ligados em uma rede de computadores. A rede permite que todos os computadores se comuniquem uns com os outros. Um micro domstico pode estar ligado Internet usando um modem de linha telefnica, DSL ou modem de cabo, que conversam com um provedor de servios de Internet (em ingls, ISP). Um computador em uma empresa ou universidade geralmente ter uma placa de interface de rede (em ingls, NIC) que a conecte diretamente a umarede de rea local (em ingls, LAN) dentro da empresa. A empresa pode ento conectar sua LAN a um ISP usando uma linha telefnica de alta velocidade, como a linha T1. Uma linha T1 pode manipular aproximadamente 1,5 milho de bits por segundo, ao passo que uma linha telefnica normal usando um modem pode manipular tipicamente 30 mil a 50 mil bits por segundo. Os ISPs ento se conectam a ISPs maiores, e os maiores ISPs mantm fiber-optic "backbones" (literalmente, colunas vertebrais) para toda uma nao ou regio. Os backbones ao redor do mundo so conectados por meio de linhas de fibra ptica, cabos submarinos ou links de satlite (veja Um Atlas de Ciberespaos (em ingls) para alguns mapas de backbones interessantes). Desse modo, cada computador est conectado a todos os outros computadores da Internet.

Clientes e servidores Em geral, todas as mquinas na Internet podem ser classificadas como de dois tipos: servidores e clientes. As mquinas que fornecem servios (como os servidores Web ou servidores de FTP) para outras mquinas so osservidores. As mquinas usadas para conectar esses servios so os clientes. Quando voc se conecta ao Yahoo! em www.yahoo.com para ler uma pgina, o Yahoo! est fornecendo uma mquina (provavelmente um aglomerado de mquinas muito grande) para uso na Internet com o objetivo de atender a sua solicitao. O Yahoo! est fornecendo um servidor. Por outro lado, sua mquina provavelmente no est fornecendo servios para ningum mais na Internet. Assim, ela uma mquina de usurio, tambm conhecida como um cliente. possvel e comum para uma mquina fazer ambos os papis, de servidor e cliente, mas para os fins de entendimento neste artigo voc pode pensar na maioria das mquinas como um ou outro. Uma mquina servidora pode fornecer um ou mais servios. Por exemplo, uma mquina servidora poderia executar um software que permitisse atuar como um servidor Web, um servidor de e-mail e um servidor deFTP (em ingls). Os clientes que acessam uma mquina servidora o fazem com uma inteno especfica; assim, os clientes dirigem suas solicitaes a um servidor de software especfico funcionando na mquina servidora global. Por exemplo, se voc est executando um navegador Web em sua mquina, ela provavelmente ir querer falar com o servidor Web na mquina servidora. Seu aplicativo de Telnet (em ingls) ir querer falar com o servidor de Telnet, seu aplicativo de e-mail falar com o servidor de e-mail e assim por diante.

Endereos IP Para manter todas essas mquinas em ordem, designado um endereo exclusivo para cada mquina na Internet, chamado endereo IP. IP em ingls significa protocolo de Internet, e esses endereos so nmeros de 32 bits, normalmente expressos como quatro "octetos" em um "nmero decimal com pontos". Um endereo IP tpico se parece com isto:

216.27.61.137
Os quatro nmeros em um endereo IP so chamados octetos porque podem ter valores entre 0 e 255, o que representa 2 possibilidades por octeto. Todas as mquinas na Internet possuem um endereo IP exclusivo. Um servidor possui um endereo IP esttico, que no alterado. Um computador de uso pessoal que faa uma conexo dial-up por meio de um modem, freqentemente recebe um endereo IP designado pelo ISP quando a mquina faz a conexo. Esse endereo IP exclusivo para aquela sesso: ele poder ser diferente da prxima vez que a mquina se conectar. Desse modo, um ISP precisa somente de um endereo IP para cada modem que ele suporta, em vez de um para cada cliente. Se voc est trabalhando em uma mquina Windows, poder visualizar uma srie de informaes de Internet de seu computador, incluindo seu endereo IP atual e nome de hospedeiro, com o comando WINIPCFG.EXE(IPCONFIG.EXE para Windows 2000/XP). Em uma mquina UNIX, digite nslookup no prompt de comando, junto com um nome de mquina, como www.hsw.com.br - por exemplo, "nslookup www.hsw.com.br" -, para exibir o endereo IP do computador, e voc poder usar o comando hostname para saber o nome de sua mquina. Para mais informaes sobre endereos IP, veja IANA (em ingls). Quanto Internet, a nica coisa de que a mquina precisa para falar com um servidor o endereo IP. Por exemplo, voc pode digitar em seu navegador a URL http://209.116.69.66 e chegar mquina que contm o servidor Web do HowStuffWorks. Em alguns servidores, o endereo IP sozinho no suficiente, mas na maioria dos grandes servidores ele .
8

Nomes de domnio Como a maioria das pessoas tem problema para lembrar as seqncias de nmeros que compem os endereos IP, e como os endereos IP algumas vezes precisam mudar, todos os servidores na Internet tambm possuem nomes legveis, chamados de nomes de domnio. Por exemplo, www.hsw.com.br um nome permanente e legvel. Temos mais facilidade em lembrar de www.hsw.com.br do que de 209.116.69.66. O nome www.hsw.com.br, na verdade, possui trs partes: 1. 2. 3. o nome do hospedeiro (host) ("www"); o nome do domnio ("howstuffworks"); o nome do domnio de alto nvel ("com"). Nomes de domnio dentro do domnio ".com" so gerenciados pelo registrador chamado VeriSign (em ingls). A VeriSign tambm gerencia os nomes de domnio ".net". Outros registradores (como a RegistryPro, NeuLevel e Public Interest Registry) gerenciam os outros domnios (como .pro, .biz e .org). A VeriSign cria os nomes de domnio de alto nvel e garante que todos os nomes dentro de um domnio de alto nvel sejam exclusivos. Ela tambm mantm informaes de contato para cada site e executa o banco de dados "whois" (quem ). O nome do hospedeiro criado pela companhia que hospeda o domnio "www" um nome de hospedeiro muito comum, mas muitos locais agora o omitem ou substituem por nome de hospedeiro diferente que indica uma rea especfica do site. Por exemplo, em encarta.msn.com (em ingls), o nome de domnio para a enciclopdia Encarta da Microsoft, "encarta" designado como o nome de hospedeiro em vez de "www."

Servidores de nomes

Um conjunto de servidores chamados servidores de nome de domnio (em ingls, DNS) mapeia os nomes legveis dos endereos IP. Esses servidores so simples bancos de dados que mapeiam os nomes para os endereos IP e esto distribudos por toda a Internet. A maioria das companhias individuais, ISPs e universidades mantm pequenos servidores de nomes para mapear nomes de hospedeiros para endereos IP. Tambm h servidores de nomes centrais que usam os dados fornecidos pela VeriSign para mapear nomes de domnios para endereos IP. Se voc digitar a URL "http://www.hsw.com.br/servidores-da-web.htm" em seu navegador, ele ir extrair o nome "www.hsw.com.br", pass-lo para um servidor de nomes de domnio e este ir enviar de volta o endereo IP correto para www.hsw.com.br. Diversos servidores de nomes podem estar envolvidos na obteno do endereo IP correto. Por exemplo, no caso de www.hsw.com.br, o servidor de nomes para o domnio de alto nvel "com" sabe o endereo IP do servidor de nomes, que por sua vez conhece os nomes de hospedeiros. Uma consulta independente naquele servidor de nomes, operada pelo ISP HowStuffWorks, pode entregar o endereo IP real para a mquina servidora HowStuffWorks. Em uma mquina UNIX, voc pode acessar o mesmo servio usando o comando nslookup. Basta digitar um nome como "www.hsw.com.br" na linha de comando e o comando far uma consulta nos servidores de nomes e entregar o endereo IP correspondente para voc. Ento isto: a Internet constituda por milhes de mquinas, cada uma com um endereo IP exclusivo. Muitas delas so mquinas servidoras, o que significa que elas fornecem servios para outras mquinas 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 so fornecidos por mquinas servidoras.

O comando whois
Em uma mquina UNIX, voc pode usar o comando whoispara procurar informaes sobre um nome de domnio. Voc pode fazer a mesma coisa usando o formulrio whois na VeriSign (em ingls). Se voc digitar um nome de domnio, como "howstuffworks.com," ele retornar a informao de registro daquele domnio, incluindo seu endereo IP.

Computador

Qualquer mquina servidora disponibiliza seus servios para a Internet usando portas numeradas, uma para cada servio disponvel naquele servidor. Por exemplo, se uma mquina servidora executa um servidor Web e um servidor de FTP, o servidor Web normalmente estaria disponvel na porta 80, ao passo que o servidor de FTP estaria disponvel na porta 21. Os clientes se conectam a um servio em um endereo IP especfico e a uma porta tambm especfica. Aqui esto alguns nmeros de portas comuns:

echo 7 (eco) daytime 13 (hora do dia) qotd 17 (citao 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 endereo de e-mail)

WWW 80 Se a mquina servidora aceita conexes provenientes do mundo externo em uma porta e se um firewall no a est protegendo, voc pode se conectar a essa porta de qualquer lugar na Internet e usar o servio. Note que no h nada que force o servidor Web, por exemplo, a estar na porta 80. Se voc fosse configurar sua prpria mquina e carregasse o software de servidor Web nela, poderia coloc-lo na porta 918, ou em qualquer porta no utilizada. Ento, se sua mquina fosse conhecida como xxx.yyy.com, algum na Internet poderia se conectar a seu servidor com a URL http://xxx.yyy.com:918. O ":918" especifica explicitamente o nmero da porta e teria de ser includo para que algum alcanasse seu servidor. Quando nenhuma porta especificada, o navegador simplesmente assume que o servidor est usando a mais comum porta 80.

Protocolos Assim que o cliente se conecta a um servio em uma porta particular, ele acessa o servio usando um protocolo especfico. O protocolo a maneira pr-definida de algum que quer usar um servio falar com aquele servio. Esse "algum" poderia ser uma pessoa, mas normalmente um programa como um navegador Web. Os protocolos freqentemente so textos e simplesmente descrevem como o cliente e o servidor tero sua conversao. Talvez o protocolo mais simples seja o protocolo daytime (hora do dia). Se voc se conectar porta 13 de uma mquina que suporte um servidor de tempo diurno, o servidor enviar sua impresso da data e do horrio atuais e ento fechar a conexo. O protocolo diz: "Se voc se conectar comigo, eu enviarei a data e a hora e ento me desconectarei". A maioria das mquinas UNIX suporta esse servidor. Se voc quiser experimentar, poder se conectar a um deles usando um aplicativo Telnet. Em UNIX, a sesso seria como esta: %telnet web67.ntx.net 13 Trying 216.27.61.137... Connected to web67.ntx.net. Escape character is '^]'. Sun Oct 25 08:34:06 1998 Connection closed by foreign host. Em uma mquina Windows, voc pode acessar esse servidor digitando "telnet web67.ntx.net 13" no prompt do MSDOS. Nesse exemplo, web67.ntx.net a mquina UNIX do servidor e 13 o nmero da porta para o servio de hora do dia. O aplicativo Telnet se conecta com a porta 13 (a telnet se conecta naturalmente porta 23, mas voc pode direcion-la para se conectar a qualquer porta); ento, o servidor envia a data e a hora e se desconecta. A maioria das verses de Telnet permite que voc especifique um nmero de porta, de modo que voc pode tentar isso usando qualquer verso de Telnet disponvel em sua mquina. A maioria dos protocolos est envolvida em mais coisas do que a hora do dia e so especificados em documentos "Solicitao de Comentrio" (em ingls, RFC) que esto disponveis ao pblico (veja http://sunsite.auc.dk/RFC/(em ingls) para um belo arquivo de todas as RFCs). Todo servidor Web na Internet est em conformidade com o protocolo HTTP. A forma mais bsica do protocolo compreendida por um servidor HTTP envolve apenas um comando: GET (obter). Se voc se conectar a um servidor que compreenda protocolo HTTP e disser a ele "GET nome do arquivo," o servidor responder enviando o contedo do arquivo com aquele nome e, ento, se desconectar. Aqui est uma sesso tpica: %telnet www.hsw.com.br 80 Trying 216.27.61.137... Connected to howstuffworks.com. Escape character is '^]'. GET http://www.hsw.com.br/

...

Connection closed by foreign host. No protocolo HTTP original, tudo que voc teria enviado seria o nome do arquivo real, como "/" ou "/servidores-da-web.htm." O protocolo foi modificado posteriormente para manipular o envio da URL completa. Isso permitiu que as companhias que hospedavam domnios virtuais, em que vrios domnios residiam em uma nica mquina, usasem um endereo IP para todos os domnios que elas hospedavam. Acontece que centenas de domnios so hospedados em 209.116.69.66, o endereo IP do HowStuffWorks.

Juntando tudo Agora voc conhece muita coisa sobre a Internet. Voc sabe que, ao digitar uma URL em um navegador, ocorrem as seguintes etapas:

1. 2. 3.

o navegador quebra a URL em trs partes: o protocolo ("http"); o nome do servidor ("www.hsw.com.br"); o nome do arquivo ("servidores-da-web.htm").

o navegador se comunica com um servidor de nomes para traduzir o nome do servidor "www.hsw.com.br" em um endereo IP que ele usa para se conectar quela mquina servidora;

o navegador ento forma uma conexo com o servidor Web naquele endereo IP na porta 80;

seguindo o protocolo HTTP, o navegador envia uma solicitao GET (obter) ao servidor, pedindo o arquivo http://www.hsw.com.br/servidores-da-web.htm.;

o servidor ento envia o texto HTML da pgina da Web para o navegador. Os cookies tambm podem ser enviados do servidor para o navegador no cabealho da pgina;

o navegador l as tags HTML e formata a pgina em sua tela.

Segurana Com base nessa descrio, 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 conexo at o navegador. Mesmo que voc considerasse todos os cdigos para manipular as portas e conexes, poderia criar facilmente um programa C que implementasse um servidor Web simples em menos de 500 linhas de cdigo. Obviamente, um servidor Web completo de nvel empresarial tem mais coisas, mas o fundamental muito simples. A maioria dos servidores acrescenta algum nvel de segurana ao processo de servir. Por exemplo, se voc j visitou uma pgina da Web e viu o navegador apresentar uma caixa de dilogo solicitando seu nome e senha, encontrou uma pgina protegida. O servidor permite que o proprietrio da pgina mantenha uma lista de nomes e senhas para aquelas pessoas que tm permisso de acessar a pgina: o servidor deixa somente as pessoas que conhecem a senha correta verem a pgina. Servidores mais avanados acrescentam segurana adicional para permitir uma conexo criptografada entre o servidor e o navegador, de modo que informaes sensveis comonmeros de carto de crdito possam ser enviados pela Internet. Isso diz respeito a um servidor Web que fornece pginas estticas padro. Pginas estticas so aquelas que no mudam a menos que o criador edite a pgina. Pginas dinmicas Mas e quanto s pginas da Web que so dinmicas? Por exemplo:

qualquer livro de visitas permite que voc deixe uma mensagem em formato HTML e, da prxima vez que o livro de mensagens visualizado, a pgina conter a nova entrada;

o formulrio whois da Network Solutions (em ingls) permite que voc introduza um nome de domnio em um formulrio, e a pgina devolvida diferente dependendo do nome de domnio introduzido;

qualquer mecanismo de busca permite que voc introduza palavras-chave em um formulrio HTML e, ento, cria dinamicamente uma pgina baseada nas palavraschave que voc introduziu. Em todos esses casos, o servidor Web no est simplesmente "procurando um arquivo". Na verdade, ele est processando informaes e gerando uma pgina baseada nos tpicos especficos 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 so um outro assunto e so descritos no artigo Como funcionam os scripts em CGI. Para mais informaes sobre servidores Web e assuntos relacionados, verifique os links na prxima pgina.