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.
Download

4 Bimestre 1 SO