O que faz um servidor da Web?

Propaganda
Rascunho de aulas
Aulas (09/05/06 e 10/05/06)
Disciplina: Programação de Computadores / Laboratório de Prát. Prog.
Ciência da Computação – 1o semestre
Professor: José Cláudio Vahl Júnior ([email protected])
O que faz um servidor da Web?
Para publicar página na Web é necessário um Servidor Web. Basicamente um
servidor recebe pedidos (requisições) de navegadores e envia de volta os arquivos
solicitados. Os servidores da Web e os navegadores se comunicam por meio do
Protocolo de Transferência de Hipertexto (Hypertext Transfer Protocol), que é uma
espécie de linguagem especial criada especificamente para solicitação e transferência
de documentos de hipertexto pela Web. Por isso, os servidores da Web são também
conhecidos como servidores HTTPD.
O D de HTTPD significa deamon, que é uma expressão UNIX para representar
um programa que fica no plano secundário esperando requisições. Quando esse
programa recebe uma requisição, ele acorda, processa o pedido e volta a dormir.
Embora a finalidade principal de um servidor da Web seja responder às
requisições dos navegadores, ele também é responsável por outras várias tarefas.
Determinação dos tipos de mídia e de arquivo
É possível inserir diversos tipos de arquivos em uma página da Web (PDFs,
vídeos, sons, etc.). Os servidores são responsáveis em dizer aos navegadores que
tipos de conteúdo o arquivo contém. Pode-se configurar um servidor da Web para
enviar diferentes tipos de mídias ou lidar com novos e diferentes arquivos e
extensões.
Gerenciamento de arquivos
O servidor da Web é re4sponsável também por um gerenciamento de
arquivos muito rudimentar — principalmente para determinar onde localizar um
arquivo e saber para onde ele foi. Se um navegador pedir um arquivo que não
existe, o servidor Web vai enviar de volta a página com a mensagem "404: File Not
Found" (arquivo não encontrado). Os servidores também podem ser configurados
para criar pseudônimos para os arquivos (os mesmos arquivos, mas acessados com
nomes diferentes). Esses pseudônimos redirecionam os arquivos para locais
diferentes, apontando automaticamente o navegador para uma nova URL ou para
arquivos que foram movidos, e retornam um arquivo padrão ou uma listagem de
diretório se um navegador pedir uma URL terminando com o nome de um diretório,
como na figura 1 abaixo.
Finalmente, os servidores mantêm arquivos de registros com informações a
respeito de quantas vezes cada arquivo do site foi acessado, incluindo o site que o
acessou, a data e, em alguns servidores, o tipo de navegador e a URL da página de
onde veio.
1
Figura 1: Listagem de um diretório (URL terminada com um nome de diretório)
Processamento de scripts, programas e formulários
Uma das tarefas mais interessante e complexa que um servidor pode realizar
é executar programas externos no servidor com base na entrada de dados que os
leitores propiciam a partir de seus navegadores. Esses programas especiais são
chamados de scripts server-side e são usados para criar efeitos interativos.
Um tipo bastante comum de script server-side são os scripts CGI. Os scripts
CGI podem ser usados para várias tarefas no servidor. Eles podem ser usados para
publicar informações armazenadas em um banco de dados, ou propiciar uma
experiência pessoal para os usuários do site.
Os scripts CGI são apenas uma maneira de escrever programas que executam
em um servidor Web. Há várias tecnologias populares que possibilitam embutir
código de programa em documentos HTML que é interpretado pelo servidor e
executado antes da página ser enviada ao navegador. Java Server Pages (JSP) e
Active Server Pages são duas tecnologias populares que funcionam dessa maneira.
Alguns servidores dão suporte a servlets Java, programas escritos em Java e usados
de forma semelhante aos scripts CGI.
Processamento de arquivos do lado do servidor
Alguns servidores conseguem processar arquivos antes de enviá-los junto aos
navegadores. Em um nível simples, há inclusões do lado do servidor que podem
inserir uma data ou um trecho de texto em cada página, ou executar um programa.
Muitos dos contadores de acesso vistos em páginas da Web operam dessa forma.
Além disso, você pode usar o processamento do lado do servidor de maneira muito
mais sofisticada para modificar arquivos ao vivo visando navegadores diferentes ou
para execução de pequenos trechos de código script.
Autenticação e segurança
2
Alguns sites da Web exigem que você seja registrado para poder usar seus
serviços e que acesse usando um nome e uma senha sempre que for visitá-lo. Esse
processo, chamado de proteção por autenticação ou senha é comum na maioria dos
servidores da Web. Usando autenticação, é possível configurar usuário e senhas,
como também restringir o acesso a certos arquivos e diretórios. Pode-se também
limitar o acesso a arquivos ou a um site inteiro com base nos nomes ou nos
endereços IP do site. Por exemplo, é possível evitar que qualquer um de fora da
empresa possa ver arquivos que são de uso interno.
Autenticação ou proteção por senha, permite proteger arquivos e diretórios de
um servidor da Web, exigindo que os leitores insiram nomes e senhas antes que os
arquivos possam ser vistos.
Por segurança, alguns servidores propiciam um mecanismo para fazer
conexões e transações seguras usando o protocolo SSL (Secure Socket Layer). O
SSL proporciona autenticação do servidor (provando que o servidor é quem ele diz
ser) e conexão criptografada entre navegador e servidor; assim, informações
importantes entre os dois são mantidas secretas.
A escolha de um servidor na Web
Obviamente, antes de poder colocar um site na Web, é preciso encontrar um
servidor na Web para isso. Existem diversas opções, gratuitas ou não, cada qual com
um conjunto de características diferente. A melhor escolha depende do objetivo e do
tipo de site que você está querendo publicar.
Servidor da Web fornecido pela Universidade/Escola/Trabalho
Muitas universidades fazem às vezes de provedores de acesso para seus
alunos, professores e funcionários. Quando isso ocorre, muito provavelmente será
possível publicar suas páginas Web no próprio servidor da
Universidade/Escola/Trabalho, visto que essas organizações geralmente têm
conexões rápidas com a Internet e que há pessoas administrando o(s) servidor(es).
A UNIP, como a maioria das Universidades privadas, optou por não prestar
esse tipo de serviço. Esse tipo de serviço é encontrado, por exemplo, na Unicamp.
Serviços de Internet comercial
Você pode pagar para ter acesso à Internet através de um provedor de
serviços da Internet. Muitos desses serviços permitem a publicação de páginas da
Web, embora isso possa custar algo mais. Pode haver restrições nos tipos de páginas
publicadas e na possibilidade de executar scripts CGI ou fazer outros tipos de
processamentos do lado do servidor.
Quando prestam serviços de publicação na Web, esses provedores geralmente
propiciam algum método de transferir arquivos para seus sites (normalmente FTP),
bem como espaço em disco e conexões de rede para acessar os arquivos. Eles
também têm administradores de sites profissionais prontos para garantir que os
servidores operem bem o tempo todo.
3
De um modo geral, é cobrada uma mensalidade com um custo adicional se
você usar grande quantidade de espaço em disco ou se tiver páginas muito
populares que consumam uma grande quantidade de largura de banda na rede
(tráfego de dados muito intenso). Alguns serviços permitem inclusive a execução de
diversos tipos de scripts no lado do servidor. Alguns ainda montam o servidor com
seu próprio nome na URL, de modo a dar a impressão de que você tem um domínio
registrado. Esses recursos tornam o uso de provedores comerciais de hospedagem
uma opção realmente atraente.
A maioria desses servidores comerciais oferece algum pacote de serviços
gratuito. Esses pacotes são limitados na quantidade de espaço em disco oferecido,
no tamanho individual de cada arquivo, etc. Porém, mesmo com as limitações
impostas, essa é uma ótima opção para quem deseja apenas publicar um site
pessoal ou de algum hobbie, por exemplo. Uma lista desses serviços pode ser obtida
no endereço http://www.guiagratis.com.br/.
Para conseguir uma conta de domínio virtual, você precisa registrar seu nome
de domínio junto a um serviço de registro autorizado. O custo inicial para registrar e
conseguir um nome de domínio pode ser em torno de R$30,00. Também é cobrada
uma taxa anual é cobrada para manter o domínio ativo. Para todas as finalidades,
uma conta de domínio virtual aparece para o mundo lá fora como se você estivesse
executando um site da Web em seu próprio servidor. O seu site terá um endereço
como "http://www.meusite.com.br".
Muitos servidores oferecem ajuda para registrar o nome de domínio, mas é
possível registrar seu domínio diretamente com um registrador autorizado como a
Network Soluctions (http://www.networksoluctions.com), a Register.com ou a
Joker.com. Muitos desses serviços também oferecem um domínio temporário, um
serviço que lhe permite hospedar seu domínio com eles temporariamente até você
escolher um provedor de hospedagem ou montar seu próprio servidor.
Lembrando que, diferente do seu provedor de acesso a Internet, que deve
estar localizado perto de você para minimizar a conta telefônica, os serviços que
publicam páginas Web podem estar localizados em qualquer lugar na Internet. Com
isso, você pode procurar pelo melhor preço e pelo melhor serviço sem ter que se
preocupar com a localização geográfica dos mesmos.
Organizando-se para publicar os arquivos
Uma vez que você tenha acesso a um servidor da Web, é hora de publicar o
seu site. Mas, antes de realmente colocá-lo no servidor, é importante organizar os
arquivos. Além disso, você precisa ter uma boa idéia do que vai aonde, para não
perder arquivos e não acabar tendo links inválidos.
Existem alguns pontos que devem ser observados na escolha de um servidor
para armazenar seus arquivos e algumas questões que podem ser interessante
termos conhecimento.
•
Onde o servidor vai colocar meus arquivos? Em muitos casos, o
Webmaster pode criar um diretório especial para você. Saiba onde esse
diretório está e como ter acesso a ele. Em alguns outros casos,
particularmente em máquinas UNIX, pode-se criar um diretório especial
4
•
•
•
•
•
•
•
no diretório principal e armazenar os arquivos nele. Se esse é o caso,
provavelmente você saberá o nome desse diretório.
Como é a URL do meu diretório de nível mais alto? Essa URL pode
ser diferente do caminho de localização real dos arquivos.
Qual é o nome do arquivo de índice padrão do sistema? Esse
arquivo é carregado, a priori, quando uma URL termina com um nome de
diretório. Geralmente é index.html ou index.htm, mas algumas vezes
pode ser default.html, homepage.html, etc.
É permitida a execução de algum tipo de script? Dependendo do
servidor, a resposta pode ser "não", ou um "sim" com algumas restrições
muito limitantes.
Há suporte para plug-ins ou tipos de arquivos especiais? Se o site
for projetado para lidar com tipos especiais de multimídia, como
RealAudio, Shockwave ou Flash, plug-ins ou alguma outra tecnologia da
Web avançada, seu Webmaster poderá ter que configurar o servidor para
permitir esses tipos de arquivos. Certifique-se de que o servidor possa
operar com tipos especiais de multimídia antes de criá-los.
Há limitações em o que ou em quanta coisa eu posso colocar no
site? Alguns servidores só aceitam páginas com conteúdo específico (por
exemplo, apenas páginas relacionadas a certo trabalho) ou só permitem
algumas poucas páginas no sistema, ou ainda, limitam o tamanho
individual de cada arquivo do site. Eles podem limitar também o número
de pessoas que acessam as páginas ao mesmo tempo, ou podem fazer
outras restrições com relação a que material pode ser publicado.
Certifique-se de conhecer bem as limitações do servidor e trabalhe dentro
dessas restrições.
Há limite na quantidade de largura de banda que meus visitantes
podem usar ao fazer downloads? Esta pergunta está relacionada de
certa forma com a pergunta anterior. O provedor pode não limitar o
número de páginas colocadas no site, mas pode cobrar mais se o site
passar de um certo limite na utilização da largura de banda por mês.
Assim, antes de colocar 10Mb em um site da Web e encher as páginas
com dezenas de imagens, arquivos de som e vídeo, confirme com o
servidor da Web se existe algum limite de utilização da largura de banda.
Esta geralmente está associada ao número de downloads (cada vez que
uma página é acessada ou um arquivo é baixado).
Há scripts prontos que eu possa usar nas minhas páginas? Se você
não quer escrever todos os scripts necessários a fim de adicionar recursos
avançados às páginas, informe-se sobre a existência de scripts prontos
que possam ajudar. Por exemplo, muitos servidores proporcionam scripts
para colocar um contador de acesso, outros disponibilizam scripts para
processamento de dados de formulários.
Como manter os arquivos organizados em diretórios
Provavelmente a maneira mais fácil de organizar um site é colocar todos os
arquivos em um único diretório. Se você tiver muitos arquivos extras — imagens,
por exemplo —, poderá colocá-las em um subdiretório desse diretório principal. O
objetivo aqui é colocar todos os arquivos em um único local, em vez de espalhá-los
pelo drive. Depois de colocar os arquivos, você pode definir os links desses arquivos
com relação ao diretório principal (links relativos). Isso torna mais fácil copiar o
diretório para o servidor sem quebrar os links.
5
Arquivo de índice padrão e nome de arquivos corretos
Como visto, os servidores da Web geralmente têm um arquivo de índice
padrão que é carregado quando uma URL termina com o nome de diretório em vez
de um nome de arquivo. Na maioria dos servidores Web esse arquivo é chamado de
index.html. A página principal ou o índice de nível mais alto de cada site deve ter
esse nome para que o servidor saiba que página deve enviar ao navegador quando
esse solicitar o seu endereço. Se você usar esse nome de arquivo padrão, a URL para
sua página será menor porque não será necessário incluir o nome do arquivo real.
Por exemplo, a URL poderia ser:
http://www.meuservidor.com.br/meunome
ao invés de
http://www.meuservidor.com.br/meunome/principal.html
Além disso, cada arquivo deve ter uma extensão apropriada indicando seu
tipo para que o servidor possa identificá-lo com o tipo de arquivo certo. A tabela 1
abaixo mostra as extensões de arquivos mais comuns que devem ser usadas nos
arquivos.
Formato
HTML
Texto ASCII
PostScript
GIF
JPEG
PNG
Shocwave Flash
Áudio AU
Áudio WAV
Áudio MPEG
Vídeo MPEG
Vídeo QuickTime
Vídeo AVI
Formato de Documento Portável
RealAudio
Extensão
.html, .htm
.txt
.ps
.gif
.jpg, .jpeg
.png
.swf
.au
.wav
.mp2, .mp3
.mpeg, .mpg
.mov
.avi
.pdf
.ra, .ram
Se você quiser usar algum tipo de arquivo especial em seu site que não faça
parte dessa lista, talvez precise configurar o servidor para que este processe esse
tipo de arquivo.
Transferência dos arquivos
Se você não está usando seu próprio servidor Web, será necessário transferir
os arquivos do seu sistema para o sistema remoto usando FTP, sFTP, http ou algum
outro método. Embora a linguagem HTML dentro dos arquivos seja totalmente
independente de plataforma, a transferência dos arquivos de um tipo de sistema
para outro algumas vezes tem suas dificuldades. Em especial, tome cuidado com o
seguinte:
6
•
•
•
•
Transfira todos os arquivos na forma binária: O seu programa de FTP
ou um programa de transmissão de arquivos pode lhe dar uma opção para
transferir arquivos em modo binário ou texto (ou pode ter opções
diferentes). Sempre transfira tudo em modo binário. Você pode transferir
um arquivo texto no modo binário sem nenhum problema.
Observe as restrições impostas aos nomes de arquivos: Se você
está transferindo arquivo de ou para sistemas DOS, terá de obedecer ao
famigerado 8.3. Essa é a regra do DOS que determina que os nomes dos
arquivos só podem conter até oito caracteres com no máximo três
caracteres de extensão. Se o servidor for um PS, e você gerou os arquivos
em outro sistema, talvez tenha que trocar o nome dos arquivos e todos os
links para que obedeçam as convenções do servidor quanto aos nomes
dos arquivos. Além disso, certifique-se de que os nomes dos arquivos não
tenham espaços ou outros caracteres esquisitos (como acentos ou
cedilha). Mantenha os nomes dos arquivos o menor possível, use somente
letras e números, e tudo será mais fácil.
Tome cuidado com o tamanho das letras: Alguns sistemas
operacionais e programas de gerenciamento de arquivos mostram os
nomes dos arquivos somente em minúsculas (como meuarquivo.html). Na
realidade, porém, os nomes de arquivos baseados em DOS poderiam estar
todos em maiúsculas (como MEUARQUIVO.HTML). Se o código nas
páginas Web contiver links em minúsculas para esses arquivos, como
geralmente ocorre, os links ficarão inválidos quando as páginas forem
transferidas para um servidor que use URLs em que o tamanho das letras
seja levado em conta (como nos servidores UNIX e LINUX).
Atente para os caracteres de retorno de linha e de mudança de
linha: Sistemas diferentes usam métodos diferentes para determinar uma
linha de texto. O Macintosh usa retorno de linha (caractere CR, Carriage
Return), o LINUX usa mudança de linha (caractere FL, Line Feed) e o
Windows usa os dois juntos (CR e LF). Quando você for transferir arquivos
de um sistema para outro, na maioria das vezes os caracteres de final de
linha serão convertidos corretamente, mas algumas vezes não. Os
caracteres não convertidos podem fazer com que um arquivo fique com as
linhas espaçadas duplas ou com todas elas numa única linha depois de
transferidos. Na maioria das vezes, essa falha na conversao não tem
importância porque os navegadores ignoram os caracteres de retorno ou
mudança de linha encontrados nos arquivos HTML. A existência ou a
ausência de um deles não é muito importante. Contudo, isso poderia
tornar-se um problema em seções de texto que foram marcadas com
<pre>; nesse caso você poderia descobrir que o texto que estava tão bem
formatado numa plataforma, agora não está mais depois de ter sido
transferido.
Uso de FTP para transferir arquivos
A maioria dos usuários da Web já uso FTP, sabendo ou não. Quando se faz o
download de um arquivo de um site remoto para salvar em seu computador,
geralmente ele é transferido usando-se o protocolo FTP em vez do protocolo HTTP.
Quando se publicam arquivos para um site da Web, a maneira que se usa FTP é um
pouco diferente.
7
Ao baixar arquivos de um site público, geralmente você acessa esse site de
forma anônima — o navegador cuida disso. Porém, quando são publicados arquivos
via FTP, deve-se usar nome e senha de usuário específicos para ter acesso.
O nome e a senha de acesso são fornecidos a você quando você contrata (ou
simplesmente se cadastra, no caso dos servidores gratuitos) um serviço de Internet.
Outra diferença entre os downloads de arquivos via FTP e a publicação de
arquivo via FTP é que quando publicamos arquivos, normalmente usamos uma
sessão interativa. Em outras palavras, em vez de só conectar, carregar um arquivo e
desconectar num passo, é preciso criar uma sessão FTP, carregar (upload) ou
descarregar (download) os arquivos conforme necessário e depois desconectar.
Abre-se a conexão, realizam-se as tarefas enquanto a sessão está aberta e fecha-se
a sessão, tudo isso manualmente.
Existem diversos clientes de FTP disponíveis. E muitos navegadores, como o
Firefox, também possuem a função de cliente FTP. Uma opção que também temos é
usarmos a própria ferramenta d edição HTML para publicar os arquivos. O
DreamWeaver tem uma ótima ferramenta para isso.
Mas apesar de tudo, muitas vezes é preferível usar um cliente de FTP
dedicado. O protocolo FTP é bastante comum, de forma que há muitos clientes FTP
excelentes disponíveis. A lista abaixo mostra alguns dos mais populares:
•
•
•
•
•
•
WS_FTP (Windows): http://www.ipswitch.com
AbsoluteFTP (Windows): http://www.vandyke.com
CuteFTP (Windows): http://www.globalscape.com
FTP Explorer (Windows): http://www.ftpx.com
Transmit (Mac OS): http://www.panic.com/transmit
Numara Track-It 7 (Linux): http://numarasoftware.com
Como o cliente de FTP é usado vai depender de que cliente você escolheu,
mas há algumas coisas em comum entre todos eles que podemos levar em conta.
Primeiro configure um site consistindo no nome do hospedeiro do servidor onde os
arquivos serão publicados, mais o nome e a senha de acesso e talvez algum outro
detalhe que você possa deixar com os valores padrão para começar.
Uma vez configurado o cliente FTP para conectar o servidor, conecte o site.
Dependendo do cliente FTP usado, deve-se poder simplesmente arrastar os arquivos
para uma janela contendo a lista de arquivos do site a fim de carregá-los (upload),
ou arrastá-los da lista do servidor para o seu computador a fim de descarregá-los
(download).
8
Exercícios
1. Qual a função básica de um servidor da Web?
2. O que são arquivos de índice padrão?
3. Com o que devemos tomar cuidado ao carregarmos arquivo para um site
da Internet?
9
Download