28 de abril de 1999 di-ufpe por jorge h. c. fernandes www ...jhcf/mybooks/itjava/slides/web... ·...
TRANSCRIPT
WWW, CGI e HTTPJava Deployment Course: Aula 2
por Jorge H. C. Fernandes ([email protected])
DI-UFPE28 de Abril de 1999
WWW, CGI e HTTPCopyright © 1999, 1998, 1997 Jorge H. C. Fernandes ([email protected])
Todos os direitos reservados. Nenhuma parte desta publicação pode ser reproduzida, armazenada em sistema de retrieval, ou transmitida, em quaisquer formas, ou através de quaisquer meios, eletrônicos, mecânicos, fotocópias, gravações, etc, sem a prévia autorização, por escrito, de Jorge Henrique Cabral Fernandes.
All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form, or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior consent of the publisher.
JavaTM is a trademark of Sun Microsystems.
World Wide Web,Common Gateway Interface,Hypertext Transfer Protocol
WWW, CGI, HTTP
• WWW– Relação entre WWW, Java e outras tecnologias– O Cliente/Servidor Universal– Elementos do modelo WWW– A Web: Uma Distribuidora de Produtos Digitais
• CGI, HTTP e Formulários HTML: Detalhes– Métodos GET, POST– Formulários HTML– Scripts Perl
Um Pouco de Contexto...Internet
WWW
CGI
Java
Applets
JavaScriptPerl
Servlets
WWW:O Cliente/Servidor Universal
Web Server
WWW(HTTP)
Web Browser
Base dedocumentos hipermídia:
HTML, gif, etc Bem Vindo!
URL
Bem Vindo!
World Wide Web:Elementos que Compõem a WWW
• Universal Resource Locator (URL)• Hypertext Markup Language (HTML)• Web Server• Web Browser• Hypertext Transfer Protocol (HTTP)• CGI e Formulários HTML
URL: Universal Resource Locator
Universal Resource Locator (URL)
• Endereço universal de recursos hipermídia
<protocolo>://<servidor>[:<porta>]/<endereço-local>– <protocolo> := http | ftp | https | ...– <servidor> := www.di.ufpe.br | www.dcc.ufmg.br | ...– <endereço-local> := ~jhcf/Welcome.html | ~sbc98
• Exemplos– http://www.di.ufpe.br/~jhcf/Welcome.html– http://www.dcc.ufmg.br/~sbc98
HTML:Hypertext Markup Language
Hypertext Markup Language (HTML)
• Linguagen Declarativa, de Markup– Subconjunto de SGML
• Documento HTML := cabeçalho + corpo• Descreve documentos hipertextuais
– Nós, links, âncoras, navegação
Uma Página HTML Simples:Welcome.html
<html><!-- CABEÇALHO DO DOCUMENTO --><head> <title>Home-Page</title> </head><!-- CORPO DO DOCUMENTO --><body><h1>Bem vindo à página de Jorge!</h1><img src=“foto.gif”><a href=“Curriculum.html”>Curriculum</a></body></html>
Nós, Links e Âncoras
Bem vindo!
Curriculum
Welcome.html
Dados PessoaisFormaçãoPublicações
Curriculum.html
Foto.gifNós
Links
Âncoras
Web Server
Web Server
• Servidor Web, WWW, HTTP• Disponibiliza documentos hipermídia na
Web• Atende solicitações de recursos,
normalmente através do protocolo HTTP
Web Browser
Web Browser
• Folheador HTML, cliente, navegador• Acessa e mostra recursos hipermídia• Transfere recursos para o servidor• Exemplos:
– Netscape Navigator– Microsoft Internet Explorer– HotJava– Amaya
CGI e Formulários HTML
NomeAnoMod
FormulárioNomeAnoMod
Sepia1997999.999
FormulárioCGIscript
CGI e Formulários HTMLWeb Server
WWW(HTTP)
Web Browser
Formulário e Respostas HTML
HTTP:Hypertext Transfer Protocol
Hypertext Transfer Protocol (HTTP)
• Permite transferência de recursos hipermídia entre clientes e servidores
• Esquema síncrono de pedido e resposta
• Cada pedido contém um identificadorde recursos e um método a ser aplicado ao recurso– GET, POST, PUT, DELETE, OPTIONS
Pedido e Resposta HTTP
Resposta HTTP
HTTP/1.0 200 OKDate: Th, 22-February-96 8:20:00 GMTServer: NCSA/1.4.2MIME-version: 1.0Content-type: text/htmlContent-length: 2000
<html><head><title>Sépia/1997</title></head><body><h1>Sépia/1997</h1><img src=“Sepia-Vermelho.gif”><br>Valor: ...</html>
Pedido HTTP
POST /cgi-jhcf/consulta.pl HTTP/1.0Accept: text/htmlAccept: text/plainUser-Agent: MozillaHost: goiana.di.ufpe.brContent-type: application/x-www-
form-urlencodedContent-length: 21
modelo=Sepia&ano=1997
A Web:Uma Distribuidora de
Produtos Digitais
NomeAnoMod
FormulárioNomeAnoMod
Sepia1997999.999
FormulárioCGIscript
Web ServerWWW(HTTP)
Web Browser
A Web: Uma Distribuidora deProdutos Digitais
ClienteDistribuidora
Depósito
Estoquista
Transportador
Produto
Vendedor
CGI, HTTP e Formulários HTML: Detalhes
CGI, HTTP e Formulários HTML: Detalhes
• Definições• Aplicações• Métodos Principais
– GET– POST
• Usando POST em Formulários HTML• Scripts em PERL
CGI (Common Gateway Interface): Definições
• CGI– Parte do Web Server que pode se comunicar com outros
programas executando no servidor.• Invocação de um programa com passagem de
informações específicas enviadas pelo usuário– Host com o qual o usuário se conectou– Entrada de dados através de HTML forms
• Saída de dados de um script CGI é gerada no formato HTML, o qual é enviado como resposta ao usuário (cliente Web)
CGI - Aplicações
• Tratamento de Formulários• Gateways
– para SGBDs– para outros protocolos/aplicações (Archie,
WAIS, NNTP)• Documentos Virtuais
– Horário local no servidor– Carga no servidor
CGI - Métodos Principais
• Método GET– Utilizado quando a quantidade de dados a passar para o
servidor é pequena– Dados passados através da URL
• Método POST– Utilizado quando a quantidade de dados a passar para o
servidor é maior– Dados passados no corpo do pedido HTTP– Formulários
CGI: Método GET
CGI: Método GET
• Exemplo 1– Pedido HTTP– Resposta Completa HTTP– Resposta Parcial Gerada pelo Script
• Exemplo 2– Mais Informações Através da URL
Método GET - Exemplo 1:O Pedido HTTP
GET /cgi-bin/welcome.pl HTTP/1.0Accept: text/htmlAccept: image/gifUser-Agent: MozzilaHost: goiana.di.ufpe.br
Método GET - Exemplo 1:Resposta Completa (HTTP)
HTTP/1.0 200 OKDate: Thursday, 22-February-96 08:20:00 GMTServer: NCSA/1.4.2MIME-version: 1.0Content-type: text/htmlContent-length: 2000
<HTML>...<H1>Welcome!</H1> ...</HTML>
Content-type: text/html
<HTML>...<H1>Welcome!</H1> ...</HTML>
Método GET - Exemplo 1:Resposta Parcial (HTML)
Método GET - Exemplo 2:Interface
Método GET - Exemplo 2:Enviando Dados na URL
GET http://www.di.ufpe.br/cgi-printers/detalhes.pl?jhcf&phd&May&1998 HTTP/1.0
Accept: text/htmlAccept: image/gifUser-Agent: MozzilaHost: goiana.di.ufpe.br
Método GET - Exemplo 2: Resposta Formatada
CGI: Método POST
CGI - Método POST
Método POST:Dados no Corpo do Pedido HTTP
POST /cgi-jhcf/consulta.pl HTTP/1.0Accept: text/htmlAccept: text/plainUser-Agent: MozillaHost: goiana.di.ufpe.brContent-type: application/x-www-form-urlencodedContent-length: 21
modelo=Sepia&ano=1997
Usando POST em Formulários HTML
Usando POST em Formulários HTML
Formulários HTML: Tags (1/2)<FORM ACTION="/cgi-jhcf/form.pl" METHOD="POST">Text: <INPUT TYPE="text" NAME=”texto" VALUE="Text" SIZE="4">Password: <INPUT TYPE=”password" NAME=”senha” VALUE=”Passwd">Hidden: <INPUT TYPE=”hidden" NAME=”escondido" VALUE="Hidden”>Checkbox: <INPUT TYPE="checkbox" NAME=”tick"><BR>Radio #1: <INPUT TYPE="radio" NAME="radio" VALUE="1">#2: <INPUT TYPE="radio" NAME="radio" VALUE="2">#3: <INPUT TYPE="radio" NAME="radio" VALUE="3"><BR>Select: <SELECT NAME="selecao" SIZE="1"><OPTION SELECTED>One<OPTION>Two<OPTION>Three<OPTION>Four</SELECT>
Formulários HTML: Tags (2/2)Multiple Select: <SELECT NAME=”selecaomult" SIZE=2 MULTIPLE> <OPTION SELECTED>One<OPTION>Two<OPTION>Three<OPTION>Four</SELECT>TextArea: <TEXTAREA ROWS=4 COLS=20 NAME=“areatexto">Informação "default" </TEXTAREA>Submit: <INPUT TYPE="submit" VALUE="Submit!">Submit: <INPUT TYPE="image" SRC="Sepia-Vermelho.gif">Reset: <INPUT TYPE="reset" VALUE="Reset"></FORM>
Linguagens de Script
• O que são? – Linguagens p/ Programação Rápida
• Requisitos– Manipulação de texto– Interface com Bibliotecas– Acesso às variáveis de ambiente
• Exemplos– PERL, C/C++, Tcl, Java, JavaScript, VisualBasic,
Python
Perl:
• Program Extraction and Report Language• “Linguagen interpretada otimizada para
varredura em arquivos de texto arbitrários, extraindo informações destes arquivos de texto e imprimindo relatórios”
Perl: Blocos de Código do Script form.pl
• Renomeia entrada• Declara rotina que
monta dicionário (array associativo)
• Invocação da rotina• Obtem valores locais• Imprime cabeçalho da
página HTML• Valida password
• Abre arquivo• Imprime dados na
página HTML• Grava dados no
Arquivo• Fecha arquivo• Finalida HTML• Encerra script
O Formulário que Monta o Pedido
A Resposta (HTML Fonte e Formatado)
Referências (Livros)
• O’Reilly (http://perl.oreilly.com)– CGI Programming on the WWW
– Programming Perl, 2nd Edition
– Advanced Perl Programming
FIM