28 de abril de 1999 di-ufpe por jorge h. c. fernandes www ...jhcf/mybooks/itjava/slides/web... ·...

Post on 11-Jul-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

WWW, CGI e HTTPJava Deployment Course: Aula 2

por Jorge H. C. Fernandes (jhcf@di.ufpe.br)

DI-UFPE28 de Abril de 1999

WWW, CGI e HTTPCopyright © 1999, 1998, 1997 Jorge H. C. Fernandes (jhcf@di.ufpe.br)

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

top related