1
|
|
2
|
- Modulo VII – Programação Web com Java
- Internet
- Networking
- Arquitetura da World Wilde Web - WWW
- URI e URL
- Protocolo HTTP
- Tecnologias do lado do Cliente
- Tecnologias do lado do Servidor
|
3
|
- Linguagem de Programação JAVA
- Ismael H. F. Santos, Apostila
UniverCidade, 2002
- The Java Tutorial: A practical guide for programmers
- Tutorial on-line: http://java.sun.com/docs/books/tutorial
- Java in a Nutshell
- David Flanagan, O´Reilly &
Associates
- Just Java 2
- Mark C. Chan, Steven W. Griffith
e Anthony F. Iasi, Makron Books.
- Java 1.2
- Laura Lemay & Rogers
Cadenhead, Editora Campos
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
16
|
|
17
|
|
18
|
|
19
|
|
20
|
|
21
|
|
22
|
|
23
|
|
24
|
|
25
|
|
26
|
|
27
|
|
28
|
|
29
|
|
30
|
|
31
|
|
32
|
|
33
|
- The communication network is partitioned into the following multiple
layers
- Physical layer – handles the mechanical and electrical details of the
physical transmission of a bit stream.
- Data-link layer – handles the frames, or fixed-length parts of packets,
including any error detection and recovery that occurred in the
physical layer.
- Network layer – provides connections and routes packets in the
communication network, including handling the address of outgoing
packets, decoding the address of incoming packets, and maintaining
routing information for proper response to changing load levels.
|
34
|
- Transport layer – responsible for low-level network access and for
message transfer between clients, including partitioning messages into
packets, maintaining packet order, controlling flow, and generating
physical addresses.
- Session layer – implements sessions, or process-to-process
communications protocols.
- Presentation layer – resolves the differences in formats among the
various sites in the network, including character conversions, and half
duplex/full duplex (echoing).
- Application layer – interacts directly with the users’ deals with file
transfer, remote-login protocols and electronic mail, as well as
schemas for distributed databases.
|
35
|
|
36
|
|
37
|
|
38
|
|
39
|
|
40
|
|
41
|
|
42
|
- Browsers
- exibem e permitem a navegação através de documentos
- exemplos
- Netscape Navigator
- Internet Explorer
- Amaya
- HotJava
- NCSA Mosaic
- Lynx
- Máquinas de busca
- Qualquer programa utilizando os serviços oferecidos por um servidor Web
|
43
|
- Não necessitam ser dedicados
- Exemplos
- Apache
- Internet Information Server (IIS)
- Netscape Enterprise Server
- NCSA httpd
- Jigsaw
|
44
|
- Conteúdo estático
- ausência de um processamento adicional para entregar/exibir o documento
- principal interação é pela navegação através de hiper-links
- Conteúdo dinâmico
- inclusão de processamento adicional além da pura entrega de documentos
e interpretação das marcações HTML
|
45
|
- Permitir que sistemas de informação aproveitem a infra-estrutura
oferecida pela Web
- simplicidade e portabilidade (em alguns casos) para os projetistas
- infra-estrutura de distribuição para o projetista
- simplicidade para o usuário final
- Aplicações
- home banking, comércio eletrônico, bibliotecas digitais, máquinas de
busca, etc.
|
46
|
|
47
|
- Como identificar os recursos (documentos)?
- URL (Uniform Resource Locator)
- Como recuperar um documento?
- HTTP (Hypertext Transfer Protocol)
- Como definir o formato do conteúdo dos documentos?
- HTML (Hypertext Markup Language)
|
48
|
- RFC 1630: descreve a notação de URIs em um nível sintático
- Separação em duas partes
- URI = scheme “:” scheme-specific-part
- Esquema
- identifica o esquema de definição dos nomes (naming scheme)
- IANA (Internet Assigned Numbers Authority) uma lista dos esquemas e
referências para suas definições
- Parte específica ao esquema
- identificação propriamente dita de um objeto particular para um dado
esquema
- inteiramente dependente do esquema sendo utilizado
|
49
|
- URI = scheme “:” scheme-specific-part
- URL – Uniform Resource Locator
- Identificação e localização de recursos através de endereços
- URN – Uniform Resource Name
- Identificação e localização de recursos através de nomes
- Definem as semânticas para URIs
|
50
|
- Sintaxe para parte específica do esquema
- Principais esquemas URL registrados (IANA)
- file ldap prospero
- ftp mailto telnet
- http news wais
- https nntp
|
51
|
- URI engloba URL e URN
- Exemplos de URL
(esquema HTTP)
- http://www.dimap.ufrn.br:80/~sbmidia2000/
- http://www.telemidia.puc-rio.br/index.html
- http://www.altavista.com/cgi-bin/query?q=client%2Fserver
- http://139.82.95.14/index.html
|
52
|
|
53
|
- Objetivo original
- capacidade de recuperar, de um servidor, documentos simples baseados na
mídia texto
- protocolo leve e rápido
- Baseado em um modelo simples de arquitetura clienteservidor
- pedido/resposta
- protocolo sem estado
- Utiliza um serviço de transporte confiável, orientado a conexão (TCP)
- Protocolo mais utilizado na Internet, na atualidade
- Versões: HTTP/0.9, HTTP/1.0 e HTTP/1.1
|
54
|
|
55
|
- Permitiu ao servidor responder códigos de erro e informações sobre a
entidade, por exemplo, o tipo de conteúdo.
- Definiu o conceito de tipo de mídia
- MIME – Multipurpose Internet Mail Extensions, como padrão para
identificação de conteudo.
- MIME possui arquitetura aberta permitindo a uma aplicação incorporar
suporte a novos tipos de dados
- Formato flexível de mensagem. O cliente passou a poder enviar dados ao
servidor.
- Mecanismos de autenticação.
|
56
|
|
57
|
- text/plain - arquivo no formato texto (ASCII);
- text/html - dosumento no formato HTML, o padrão para documentos Web;
- application/zip - arquivo compactado;
- image/gif - imagem codificada no formato GIF;
- image/jpeg - imagem codificada no formato JPEG.
|
58
|
|
59
|
- General (requisição e resposta)
- não se aplicam a entidades
- Entity (requisição e resposta)
- usados para transmitir meta-informações de uma entidade
- Request (requisição)
- contêm informações do cliente
- Response (resposta)
- contêm informações que não podem ser transmitidas na status-line
|
60
|
- Melhora no modelo de conexão TCP por requisição/resposta
- HTTP persistente (P-HTTP)
- Mantém uma conexão aberta durante várias requisições para um mesmo
servidor
- novos métodos de requisição
- melhor suporte para cache
- esquema mais seguro de autenticação
- elimna a transferência de nome e senha de forma limpa
- suporte à transferência parcial de entidades
- suporte à negociação de conteúdo
|
61
|
|
62
|
|
63
|
|
64
|
|
65
|
- Métodos
- GET - retorna o objeto, ou seja, a informação requisitada.
- HEAD - retorna somente informações sobre o objeto, como tamanho, data
de criação etc.
- POST - envia informações para o servidor Web
- PUT - envia uma cópia de um objeto/informação
para ser armazenado num servidor Web.
- DELETE - apaga um objeto armazenado no servidor Web.
- OPTIONS
- CONNECT
- TRACE
|
66
|
|
67
|
|
68
|
- Uma resposta HTTP é formada por três elementos:
- Linha de status
- indicando sucesso ou falha do pedido.
- Descrição da informação
- contida na resposta (Metainformação/MIME).
- A própria informação que foi requisitada.
|
69
|
- A linha de status traz as seguintes informações:
- A versão do protocolo HTTP;
- O código de status que define o resultado do pedido;
- Uma pequena frase explicando o que significa o código.
- Código status é compostos de 3 dígitos, divididos em categorias em
função do primeiro dígito
- 1xx – informativo
- 2xx – sucesso
- 3xx – redireção
- 4xx – erro do cliente
- 5xx – erro do servidor
- Podem ser estendidos
|
70
|
- Os principais códigos de status existentes:
- 200 (Document follows) - pedido bem sucedido. A informação requisitada
será retornada.
- 401 (Unautorized) - a informação requisitada é de acesso restrito,
sendo necessário se autenticar.
- 403 (Forbidden) - acesso proibido.
- 404 (Not found) - a informação requisitada não foi encontrada ou teve
permissão de acesso negada. A primeira opção é muito freqüente na
Internet e pode ocorrer por erro de digitação de uma URL.
- 500 (Server Error) - erro no servidor Web. Comum quando da execução de
scripts.
|
71
|
|
72
|
|
73
|
- Motivação
- Cache
- redução de carga no servidor e do trafego na conexão com a Internet
- redução do tempo de resposta
para os usuários
- Segurança
- filtragem de requisições
- conversão de protocolos
|
74
|
|
75
|
- Sem estado
- requisições em paralelo numa mesma conexão precisam ser enfileiradas
- Implementação integral complexa
- Fundamentado no TCP como protocolo de transporte
- Requisições em um único sentido
- Ausência de um padrão para definição de extensões
- Mecanismo de negociação de conteúdo ainda restrito
|
76
|
|
77
|
|
78
|
|
79
|
|
80
|
- Tecnologia originalmente projetada pela Netscape
- Netscape Navigator 2.0
- Internet Explorer 3.0 passou também a oferecer suporte
- Permite também que aplicações existentes sejam facilmente integradas à
Web
- Principal utilidade: exibir conteúdo cujo formato não é tratado pelo
browser
- conteúdos específicos das aplicações (PDF, PostScript, etc), áudio,
vídeo
|
81
|
- Módulo de código separado que se comporta como se fosse parte do browser
- associado a um ou mais tipos de mídia (tipo MIME)
- biblioteca de código nativo C
- específico a uma plataforma (sistema operacional)
- dependente da interface de programação do browser
|
82
|
- Elementos HTML utilizados para inserção de plug-ins
- OBJECT
- quando o browser não sabe tratar a especificação, o
conteúdo do elemento deve ser apresentado
- Objects podem ser aninhados
- <object data=“clock.avi” type=“video/msvideo” height=“100%”
width=“100%” classid=“http://microsoft.com/plugins/” >
- < object data=“clock.gif”
type=“image/gif”>
- <p>Hora certa.
- </object>
- </object>
|
83
|
- Elementos HTML utilizados para inserção de plug-ins
- EMBED (não faz parte da especificação HTML 4.01)
- elemento não mais padronizado na DTD HTML
- embed src=“clock.avi” type=“video/msvideo” width=“100%”
height=“100%”>
- Modos de exibição de um plug-in
- Embutido, escondido ou página inteira
|
84
|
- Plug-ins executam no mesmo espaço de memória do browser
- DLLs, objetos compartilhados, bibliotecas compartilhadas, etc.
- Ciclo de vida de um plug-in está
associado ao ciclo de vida da página que o aciona
- Quando o browser encontra em uma página uma referência
(URI) para um arquivo que está associado a um Plug-in
- browser carrega o código do
plug-in na memória (se ainda não otiver feito)
- cria uma nova instância do
plug-in (o browser pode
criar várias instâncias de um mesmo plug-in simultaneamente)
- Quando o browser sai da página
que contém a referência para o plug-in ou tem sua janela fechada, a
instância do plug-in é removida da memória
- quando a última instância de um
plug-in é removida, o código do plug-in é retirado da memória
|
85
|
- Quando um plug-in não está carregado em memória, o mesmo só ocupa espaço
em disco
- Plug-ins são dependentes de plataforma e browser e não permitem
interagir diretamente com o conteúdo HTML para por exemplo:
- substituir imagens (simular animações)
- simular menus de opções
- mudar características de apresentação do documento de acordo com a
interação do usuário
- acrescentar conteúdo dinamicamente
|
86
|
- Usados para adicionar funcionalidades dinâmicas a páginas HTML
estáticas. Página HTML carrega (de forma embutida ou através de uma
referência) scripts que são executados pelo browser
- alterar a especificação de apresentação dos elementos
- acrescentar conteúdo dinamicamente ao documento
- verificar a entrada de dados em um formulário
- controlar o browser
- Principais linguagens de script utilizadas
- Tcl, JavaScript (inicialmente chamado de LiveScript) - Netscape
- Jscript e VBScript - Microsoft
|
87
|
- Padrão para linguagens de
script interpretadas no
cliente
- ECMAScript ( European Computer Manufactors Associations Script)
- padrão de junho de 1997, JavaScript e JScript são implementações
- Por que Linguagens de Script?
- Interpretadas (não exigem compilação) oferecendo independência de
plataforma
- Simples de programar, sendo mais adequadas para usuários não experts em
programação. Ideais para tarefas simples
- Desvantagens
- Ineficiência e recursos limitados por isso são indicadas para tarefas
simples
|
88
|
- Para executar os scripts , o
cliente WWW ( browser) precisa de um interpretador da linguagem de
script utilizada no documento
|
89
|
- Pode aparecer várias vezes, tanto no Head como no Body do documento
HTML. Fica a cargo de cada linguagem de script oferecer uma sintaxe para
referenciar elementos HTML no documento
- <p>Última atualização feita em:
- <script type=“text/javascript”>
- <!--
ß evita que browsers que
- document.write(document.lastModified); não dão suporte a scripts
- -->
exibam o conteúdo do
- </script>
script na tela !
- Informa a data da última modificação do documento
|
90
|
- Exemplo de Script Associado a Eventos HTML
- <form>
- <input type=“button” value=“Aperte!” onclick=“alert(‘Clicou no
botão!’)”>
- </form>
- Os eventos intrínsecos normalmente são utilizados em conjunto com
funções declaradas na área de SCRIPT
|
91
|
|
92
|
- Primeiros servidores HTTP
- simples
- traduziam o nome do recurso requisitado em um arquivo, enviando o
conteúdo do arquivo como resposta
- Diversos fatores tornaram complexa a configuração apropriada e a
gerência eficiente de servidores HTTP
- servidores hospedando uma quantidade grande de documentos
- aumento na complexidade do protocolo HTTP
|
93
|
- Fazem o mapeamento entre URL-path e o recurso local
- http://www.inf.puc-rio.br/index.html
- c:\inetpub\wwwhome\index.html
- caminho físico no sistema de arquivos do servidor
|
94
|
- Tipos de recursos
- estáticos
- resposta é gerada pelo servidor sem a ajuda de um outro processo
externo
- tradução da URL-path em um path físico do recurso
- envio da resposta acrescida de algumas informações (tipo MIME,
tamanho, data de última modificação, etc.)
- · dinâmicos
- resposta é gerada dinamicamente através de algum processamento externo
ao servidor
- tradução da URL-path em um path físico de um programa
- programas são normalmente identificados por extensões ou por prefixos
especiais para URL-paths (diretórios virtuais)
|
95
|
|
96
|
|
97
|
|
98
|
|
99
|
|
100
|
|
101
|
|
102
|
|
103
|
|
104
|
|
105
|
|
106
|
|