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