(Parte 1 de 7)

Capítulo 1 - A Plataforma Web 1. A Plataforma Web

A maior parte da Web são estáticas. Contém informações e links. Às vezes mexem uma imagem, às vezes têm uma interface gráfica que sugere alguma interatividade. As páginas realmente interativas, que são objeto deste curso, são aquelas que não são simplesmente “páginas ”, mas que funcionam como interfaces para aplicações, sejam simples ou bastante complexas.

A grande vantagem em desenvolver tais interfaces baseadas em Web é a simplicidade.

Para criar a interface do usuário não precisa-se mais que saber criar uma página. Pode-se usar apenas HTML ou até uma ferramenta gráfica como o DreamWeaver da Macromedia ou o Microsoft FrontPage.

Criar a interface do usuário é fácil. Programar a interface da página HTML com uma aplicação no servidor pode não ser. As ferramentas usadas para gerar formulários freqüentemente cuidam do desenvolvimento do código interativo que irá tratar os dados que estes irão receber. O problema é que tais ferramentas resolvem apenas os problemas mais comuns, e quase sempre, usando tecnologias proprietárias. Para fazer uma página oferecer mais que HTML já oferece é quase sempre preciso saber usar uma outra linguagem que possua recursos de programação. Tarefas simples como validação de formulários ou contagem de acessos não são solucionadas usando-se apenas HTML. É preciso recorrer a outras tecnologias.

Existem várias tecnologias que oferecem recursos além do HTTP básico. Nem todas são tecnologias abertas. Às vezes é aceitável usar tecnologias proprietárias. Outras vezes não. Tudo depende de onde ela é aplicável. Elas podem ser divididas em dois grupos: as que são executadas a partir do browser (lado-cliente), e as que são executadas a partir do servidor Web (ladoservidor).

1.1. Soluções lado-cliente

linguagens e extensões

As tecnologias lado-cliente podem começar a executar a partir do momento em que o browser carrega uma página. HTML. O servidor não entende HTML nem tenta ler código misturado com ele, a não ser que sua configuração seja alterada para tal. Mas o browser precisa saber interpretá-lo. Além do HTML, um browser pode ser capacitado a interpretar diversas outras

As soluções lado-cliente, portanto, dependem de suporte pelo browser. Se o browser não suportar a tecnologia, pode desde simplesmente não executar, como provocar perda de

Capítulo 1 - A Plataforma Web informação. É possível usar soluções lado-cliente que não dependam de forma alguma da comunicação com o servidor Web. Se a conexão com o servidor se perde, depois que toda a página é carregada, grande parte da sua funcionalidade é mantida, pois, em geral, os componentes, instruções e/ou programas estão rodando na máquina do cliente.

As principais tecnologias interativas lado-cliente, além do próprio HTML, são: scripts do

HTML como JavaScript, JScript e VBScript; objetos ou componentes como applets Java, plugins Flash, Shockwave e controles ActiveX, outros plug-ins e “dynamic HTML ” (DHTML). A- lém das tecnologias interativas, outras tecnologias existem, que podem ou não introduzir elementos interativos. As mais recentes são a tecnologia de Cascading Style Sheets (CSS) ou folhas de estilo, e o Extended Markup Language (XML) que permite que o provedor de conteúdo desenvolva uma versão personalizada de sua linguagem de formatação de página.

Soluções lado-cliente são mais vulneráveis a incompatibilidades pois não há como o provedor de conteúdo garantir que os browsers dos clientes suportem totalmente as tecnologias utilizadas. Isto é comum até com as tecnologias mais populares, como JavaScript.

JavaScript é uma linguagem de roteiro (script), de propriedade da Netscape e VBScript é uma linguagem de roteiro baseada no VB, de propriedade da Microsoft. Os códigos-fonte VBS- cript ou JavaScript são embutidos diretamente no HTML de uma página e interpretado linhapor-linha pelo browser.

Para usar componentes Java, plug-ins, activeX, um objeto executável é carregado e exibido na área da página. O código, neste caso, não é visível ou interpretado como no caso dos scripts. Componentes não são na verdade interpretados pelo browser, mas disparam um módulo de extensão (JVM, interpretadores Flash, Real-audio, etc.) para executá-los.

Os componentes mais populares são os applets e controles ActiveX. Os plug-ins (extensões ‘pesadas ’) são bastante utilizados também mas com restrições, já que dependem da plataforma onde o browser está instalado. Muita coisa que se fazia com plug-ins já se faz com componentes. Vários plug-ins populares já foram incorporados definitivamente nos principais browsers (suporte a som, vídeo, VRML, etc.). Um dos mais populares é o Flash da Macromedia.

As aplicações lado-cliente geralmente são usadas quando a tarefa a ser executada não depende de comunicação com o servidor Web (embora freqüentemente sejam usadas juntamente com soluções lado-servidor). Exemplos são a validação de campos de formulários antes do envio, a realização de operações aritméticas simples, a realização de funções simples baseadas na ação do usuário, etc. Em resumo: se não é necessário enviar ou recuperar algo do servidor, pode-se usar as soluções lado-cliente.

Mas fazer tudo no browser nem sempre é suficiente. Para contar o número de acessos a uma determinada página, por exemplo, pouco servem as funções matemáticas do lado do cliente se estas não puderem guardar em um disco no servidor um registro com os acessos anteriores. Para isto, usamos soluções lado-servidor.

Capítulo 1 - A Plataforma Web

1.2. Soluções lado-servidor ou cliente-servidor

Estas soluções dependem da comunicação entre o cliente (browser) e servidor. Os dados ou ações realizadas geralmente resultam da execução de um programa ou rotina no servidor.

A comunicação cliente-servidor sempre ocorre via protocolo HTTP. É o que garante que qualquer browser vai conseguir se comunicar com qualquer servidor Web. Portanto, qualquer transformação dos dados deve ocorrer antes do envio dos mesmos às portas de comunicação, ou depois, no caso das soluções lado-cliente. A transformação dos dados pode ser feita em vários níveis e depende da interferência nas tarefas comuns do servidor Web. Vários servidores possuem tecnologias proprietárias para este fim. O nível mais baixo da programação do servidor Web ocorre através da interface CGI, Common Gateway Interface. A programação CGI é de baixo nível porque lida diretamente com a manipulação do formato dos dados enviados pelo servidor, como a criação de cabeçalhos, definição de tipos de dados, etc.

CGI já foi a única forma de interatividade via Web. Hoje, a cada dia, vem sendo substituída por soluções mais eficientes, muitas delas proprietárias. As tecnologias mais comuns, que diferentemente do CGI, dependem do tipo e plataforma do servidor são o ISAPI, da Microsoft, e o NSAPI, da Netscape. Estas tecnologias são módulos ou “plug-ins ” que permitem que um programador desenvolva extensões destinadas ao tratamento de dados e comunicação pelo servidor, podendo substituir totalmente o CGI com ganhos de desempenho, porém com um razoável acréscimo de complexid ade e perda de portabilidade.

Entre as SAPIs e o CGI, existem os componentes para servidor. São programas em Java (servlets) ou objetos ActiveX que fazem o mesmo que as SAPIs, porém mantêm uma portabilidade maior. Mais simples ainda são os scripts ou roteiros de código embutidos em páginas Web, que servidores devidamente configurados usam para realizar tarefas de transformação de dados e comunicação com outros programas (ASP, JSP, LiveWire, PHP, Cold Fusion). Com essas tecnologias, o conteúdo da página pode ser alterado no próprio servidor no momento do envio, através da interpretação de scripts, que também servem de gateway com aplicações no servidor, como bancos de dados. Todas essas tecnologias substituem completamente o CGI e são geralmente mais eficientes. Todas, também, operam sobre o servidor HTTP, da mesma forma que CGI. Conhecer CGI, portanto, é bastante útil para o domínio de qualquer uma dessas tecnologias.

Servidor HTTP

CGI API Servidor

Página HTML

Flash Applet ActiveX Forms

JavaScript/

VBScriptLivewire Cookies

SSI ASP ServletsASC,ADO

HTTP Cliente

Servidor 1-3

Capítulo 1 - A Plataforma Web

A figura ao lado ilustra algumas das principais tecnologias utilizadas no desenvolvimento de páginas interativas e aplicações intranet.

1.3. A plataforma Web

A World Wide Web é um serviço TCP/IP baseado no protocolo de nível de aplicação HTTP

(HyperText Transfer Protocol) – Protocolo de Transferência de Hipertexto. A plataforma Web é o meio virtual formado pelos servidores HTTP (servidores Web que mantém sites), clientes HTTP (browsers) e protocolo HTTP (a língua comum entre o cliente e o servidor).

Hipertexto

Hipertexto é uma forma não linear de publicação de informações onde palavras que aparecem no decorrer do texto podem levar a outras seções de um documento, outros documentos ou até outros sistemas de informação, fugindo da estrutura linear original de um texto simples. O hipertexto baseia-se em ligações entre dois pontos chamados de âncoras. As ligações entre as âncoras são chamadas de vínculos (links). Vínculos de hipertexto são implementados em textos publicados na Web usando uma linguagem declarativa chamada HTML - HyperText Markup Language.

HTML é usada para marcar um arquivo de texto simples (texto simples é texto sem formatação alguma, visualizável em qualquer editor de textos). Se um arquivo de texto simples receber uma extensão de nome de arquivo “.html ” ou “.htm ”, um navegador como o Internet Explorer irá tentar interpretá-lo como HTML. Dentro do texto, pode-se definir descritores (ou comandos HTML) entre os símbolos “< ” e “> ”:

<h1>Arquivo de texto</h1> <p>Este é o <i>primeiro</i> parágrafo.</p>

Os descritores só serão visíveis quando o arquivo for visualizado em um editor de textos (como o Bloco de Notas do Windows). Ao ser visualizado em um programa capaz de entender HTML, apenas o texto aparece, com uma aparência determinada pelos descritores:

Arquivo de texto

Este é o primeiro parágrafo.

O texto com marcadores é chamado código-fonte HTML. O código-fonte é usado para produzir a página visualizada o browser que é chamada de página HTML ou página Web.

O browser, por ser capaz de exibir diversos tipos de informação, depende totalmente da extensão do arquivo para saber o que fazer com ele. Se a extensão “.htm ” ou “.html ” não estiver presente ou se o arquivo tiver a extensão “.txt ”, o browser exibirá o código-fonte.

Capítulo 1 - A Plataforma Web

Além da formatação da página, o HTML é responsável também pela inclusão de imagens e definição dos links que permitem a navegação em hipertexto.

Servidor HTTP

O serviço HTTP funciona de forma semelhante ao serviço FTP - File Transfer Protocol (protocolo de comunicação usado na Web para operações de transferência de arquivos). Ambos oferecem aos seus clientes um sistema de arquivos virtual onde podem localizar recursos (arquivos, programas, etc.) e transferi-los de um computador para outro. O sistema virtual pode ter uma hierarquia própria e totalmente diferente do sistema de arquivos real do computador, ao qual está vinculado. Geralmente um servidor tem acesso a uma área restrita da máquina e só permite a visualização dos arquivos lá contidos. O sistema de arquivos virtual usa uma notação diferente daquela usada pelo sistema real. Por exemplo, considere o seguinte sistema de diretórios no Windows:

C:\ C:\Windows C:\Documentos C:\Documentos\Web\ C:\Documentos\Web\Imagens C:\Documentos\Web\Videos

Suponha que um servidor HTTP foi instalado nessa máquina. Na instalação, ele é configurado para administrar um sistema de diretórios a partir de um certo diretório. Suponha que esse diretório é C:\Documentos\Web\. Para o servidor, isto é seu diretório raiz. No sistema de diretórios virtual, o diretório raiz de um servidor é chamado de / (barra). O sistema de arquivos virtual (a parte que um browser poderá ter acesso) é:

/(C:\Documentos\Web\)

/Imagens (C:\Documentos\Web\Imagens)

/Videos (C:\Documentos\Web\Videos)

Um browser jamais terá acesso ao diretório Windows, por exemplo. A principal função de um servidor Web é, portanto, administrar um sistema de arquivos e diretórios virtual e atender à requisições dos clientes HTTP (os browsers), que, na maior parte das vezes, enviam comandos HTTP pedindo que o servidor devolva um ou mais arquivos localizados nesses diretórios. Os pedidos são feitos através de uma sintaxe especial chamada de URI.

URIs (URLs1)

Todas as comunicações na plataforma Web utilizam uma sintaxe de endereçamento chamada URI - Uniform Resource Identifier - para localizar os recursos que são transferidos. O

1 URIs também são frequentemente chamadas de URLs (Uniform Resource Locators). A URL é um tipo particular de URI mas, para a nossa discussão, essa distinção é irrelevante. A documentação HTML (especificação) sempre refere-se à essa sintaxe como URI.

Capítulo 1 - A Plataforma Web serviço HTTP depende da URI que é usada para localizar qualquer coisa na Internet. Contém duas informações essenciais: 1) COMO transferir o objeto (o protocolo); 2) ONDE encontrálo (o endereço da máquina e o caminho virtual). URIs tipicamente são constituídas de três partes:

x mecanismo (protocolo) usado para ter acesso aos recursos (geralmente HTTP) x nome da máquina (precedido de //) onde o serviço remoto é oferecido (e a porta, se o serviço não estiver em uma porta padrão) ou outro nome através do qual o serviço possa ser localizado (sem //).

x nome do recurso (arquivo, programa) na forma de um caminho (no sistema de arquivos virtual do servidor) onde se possa encontrá-lo dentro da máquina. Sintaxe típica:

protocolo://maquina:porta/caminho/recurso

As URIs mais comuns são os endereços da Web, que utilizam o mecanismo HTTP para realizar a transferência de dados:

http://www.maquina.com.br/caminho/para/minha/página/texto.html

Veja algumas outras URLs: ftp://usuario:senha@maquina.com/pub/arquivo.doc x

Acesso a servidor FTP que exige usuário e senha para fazer download de arquivo.doc nntp://news.com.br/comp.lang.java Acesso a servidor de newsgroups para ler o grupo comp.lang.java news:comp.lang.java Acesso ao grupo comp.lang.java através de servidor default (definido localmente) http://www.ibpinet.net/ Acesso à página default disponível no diretório raiz do servidor Web de w.ibpinet.net http://www.algumlugar.com:8081/textos/ Acesso à página default disponível no diretório textos do servidor Web que roda na por- ta 8081 da máquina w.algumlugar.net http://www.busca.com/progbusca.exe?opcoes=abc&pesquisa=dracula Passagem de parâmetros de pesquisa para programa de busca progbusca.exe que terá sua execução iniciada pelo servidor HTTP que roda na porta 80 (default) de w.busca.com.

http://www.ibpinet.net/helder/dante/pt/inferno/notas_4.html#cesar Acesso à uma seção da página HTML notas_4.html identificada como “cesar ”, localizada no subdiretório virtual /helder/dante/pt/inferno/ do servidor Web de w.ibpinet.net.

mailto:helder@ibpinet.net Acesso à janela de envio de e-mail do cliente de correio eletrônico local.

(Parte 1 de 7)

Comentários