Aplicações web parte 1

35
LINGUAGEM DE PROGRAMAÇÃO III APLICAÇÕES WEB

description

Aplicações web parte 1

Transcript of Aplicações web parte 1

Page 1: Aplicações web parte 1

LINGUAGEM DE PROGRAMAÇÃO III

APLICAÇÕES WEB

Page 2: Aplicações web parte 1

Introdução

• A Web consiste de zilhões de clientes (navegadores) e servidores, conectados através de redes sem fio e com fio.

• Objetivo: Construir uma aplicação que os clientes ao redor do mundo possam acessar

Page 3: Aplicações web parte 1

O que o seu servidor web faz?

• Um servidor web recebe uma solicitação e devolve algo para o cliente.

• Um browser permite ao usuário solicitar um recurso (pagina html, figura, som, pdf, etc.)

• O servidor pega a solicitação, encontra o recurso e retorna com algo para o usuário.

• 404 not found: resposta que o servidor envia quando não consegue encontrar o recurso solicitado pelo cliente

Page 4: Aplicações web parte 1

O que o seu servidor web faz?

• Servidor: máquina física (hardware) ou aplicação de servidor web (software)

• A solicitação do cliente contém o nome e endereço daquilo que o cliente está procurando.

• A resposta do servidor contém o documento verdadeiro que o cliente solicitou, ou um código de erro.

Page 5: Aplicações web parte 1

O que o um cliente web faz?

• Um cliente web permite ao usuário fazer solicitações ao servidor, exibindo para ele o resultado do pedido.

• Clientes: usuário e browser (pode ser um ou outro, ou então, os dois ao mesmo tempo). O cliente é o browser fazendo aquilo que o usuário solicitou.

• Browser: software que sabe se comunicar com o servidor.

Page 6: Aplicações web parte 1

O que o um cliente web faz?

1. O usuário clica em um link no browser;

2. O browser formata a solicitação e a envia para o servidor;

3. O servidor encontra a página solicitada;

4. O servidor formata a resposta e a envia para o cliente;

5. O browser consegue o html e o traduz em formato visual para o usuário.

Page 7: Aplicações web parte 1

HTML e HTTP

• O HTML informa ao browser como exibir o conteúdo ao usuário;

• O HTTP é o protocolo que os clientes e os servidores usam para se comunicarem;

• O servidor usa o HTTP para enviar o HTML ao cliente.

• O cliente envia uma solicitação HTTP e o servidor retorna uma resposta HTTP.

• HTTP: protocolo de transferência de hipertexto

Page 8: Aplicações web parte 1

Exemplo

<html><!-- Um exemplo HTML --><head><title> Página de Login </title></head>

<body><h1> Página de Login </h1><form action=“date2”>

Login: <input type=“text” name=“param1”>

Senha: <input type=“password” name=“param2”></form>

<body></html>

COMENTÁRIO EM HTML

FORMULÁRIO PARA SUBMISSÃO

DO LOGIN E SENHA

Page 9: Aplicações web parte 1

TCP/IP

• O HTTP executa no topo do TCP/IP

• TCP: responsável por garantir que um arquivo enviado de um nó da rede para outro chegue íntegro ao seu destino, ainda que o arquivo esteja dividido em blocos no momento do envio.

• IP: protocolo de sustentação que transfere/roteia os blocos (pacotes) de um host para o outro no seu caminho até o destino.

Page 10: Aplicações web parte 1

TCP/IP

• HTTP depende do TCP/IP para obter a solicitação e a resposta completa de um lugar para outro.

• A estrutura de uma conversa HTTP é uma sequencia simples de SOLICITAÇÃO - RESPOSTA, em que um browser solicita e um servidor responde

Page 11: Aplicações web parte 1

Principais elementos de um fluxo de solicitação

1. Método HTTP (a ação a ser executada)

2. Página que será acessada (URL)

3. Parâmetros do formulário (como argumentos para um método)

Page 12: Aplicações web parte 1

Principais elementos de um fluxo de resposta

1. Código de status (erro, sucesso, etc)

2. Tipo de conteúdo (texto, imagem, etc)

3. Conteúdo em si (a imagem em si, o html real, etc)

Page 13: Aplicações web parte 1

MÉTODOS HTTP

• HTTP HEADER INFO: uma respostsa HTTP pode conter um HTML. O HTTP acrescenta a informação do HEADER no topo de qualquer que seja o conteúdo da resposta. O browser usa essa informação para o processamento do HTML.

• O nome do método HTTP informa ao servidor o tipo de soliciação que está sendo feita e como o resto da mensagem será formatada.

• Método GET: é uma solicitação simples• Método POST: pode enviar dados do usuário

Page 14: Aplicações web parte 1

Método GET

• Conseguir um recurso do servidor;

–O usuário clica em um link para uma nova página;

–O browser envia um HTTP GET ao servidor, pedindo ao servidor que consiga a página;

Page 15: Aplicações web parte 1

Método POST

• Com este método você pode solicitar algo do servidor, e ao mesmo tempo enviar dados ao servidor;

–O usuário digita emum formulário e clica no botão enviar;

–O browser envia um HTTP POST ao servidor passando para o servidor o que usuário digitou no formulário

Page 16: Aplicações web parte 1

Porque usar POST no lugar de GET?

• Com o método GET você também pode enviar dados para o servidor, entretanto, esta não é uma prática comum, e muito menos segura.

• O total de caracteres no GET é limitado, portanto, o GET pode não funcionar se o texto de uma caixa de texto, por exemplo, for extenso;

• Os dados que são enviados através do GET são anexados à URL, e fica VISÍVEL na barra de endereços do navegador. Imagine digitar um campo de senha em método GET!!!!

Page 17: Aplicações web parte 1

Anatomia de uma solicitação HTTP GET

Page 18: Aplicações web parte 1

Anatomia de uma solicitação HTTP POST

Corpo da mensagem: são os dados a serem enviados de volta ao servidor.

Page 19: Aplicações web parte 1

Anatomia de uma resposta HTTPUma resposta HTTP é composta pelo HEADER e CORPO.Header: tipo de protocolo, status da solicitação, tipo de conteúdo do corpoCorpo: conteúdo que o browser exibirá

Page 20: Aplicações web parte 1

Fluxo Completo

1. O usuário digita uma URL;2. O browser cria uma solicitação HTTP GET;3. A solicitação HTTP GET é enviada ao

servidor;4. O servidor encontra a página e gera uma

resposta HTTP;5. A resposta HTTP é enviada ao browser;6. O browser processa o HTML;7. O cliente aguarda que sua transação seja

realizada com sucesso.

Page 21: Aplicações web parte 1

URL

Page 22: Aplicações web parte 1

Portas

• Uma porta representa uma conexão lógica para um determinado software executando no hardware do servidor.

• HTTP: porta 80• TELNET: porta 23• FTP: porta 21• POP3: 110• SMTP: 25• TimeServer: porta 37

Page 23: Aplicações web parte 1

Portas

• Uma porta TCP é apenas um número de 16 bits que identifica um software específico no hardware do servidor.

• Sem as portas, o servidor não teria meios de saber a qual aplicação o cliente gostaria de se conectar.

• Usando uma aplicação por porta, um servidor pode ter até 65.536 aplicações diferentes executando

• Os números de 0 a 1.023 no protocolo HTTP são reservados para serviços já conhecidos. Não use essas portas para suas aplicações.

Page 24: Aplicações web parte 1

Exemplo de estrutura de diretórios de um servidor

Page 25: Aplicações web parte 1

Páginas Estatícas

• Uma página estática apenas repousa lá dentro do diretório.

• O servidor a encontra e a devolve para o cliente como está.

• Todos os clientes verão a mesma coisa.

• Estas páginas vão direto para o cliente, exatamente como elas foram colocadas no servidor.

Page 26: Aplicações web parte 1

Páginas Dinâmicas

• Páginas instantaneas: são páginas criadas dinamicamente e que não existiam antes da solicitação.

• Se quer uma página dinâmica, não pode contar apenas com o servidor.

• A aplicação que executa no servidor disponibiliza apenas páginas estáticas.

• Outra aplicação assistente, com a qual o servidor pode se comunicar, pode construir páginas dinâmicas.

Page 27: Aplicações web parte 1

Páginas Dinâmicas

• Páginas instantâneas não existem antes de ser feita a solicitação.

• É como fazer uma página HTML de repente.

• A solicitação chega, a aplicação assistente escreve o HTML, e o servidor retorna ao cliente.

• Quando o usuário envia os dados de um formulário, o servidor analisa os dados e “pensa”: devo me preocupar?

Page 28: Aplicações web parte 1

Páginas Dinâmicas

• Precisamos de outra aplicação para poder processar e salvar esses dados, ou usá-los em outra página.

• Quando o servidor recebe uma solicitação para uma aplicação assistente, ele considera que aqueles parâmetros são destinados à aplicação assistente.

• O servidor então passa os parâmetros, fornecendo à aplicação assistente uma forma de gerar uma resposta ao cliente.

Page 29: Aplicações web parte 1

CGI

• É o termo NÃO-JAVA para uma aplicação assistente que executa no servidor.

• COMMON GATEWAY INTERFACE ou interface de passagem comum.

• Escrito como scripts PERL, PYTHON, C, PHP, etc.

Page 30: Aplicações web parte 1

CGI

Page 31: Aplicações web parte 1

Servlet

• É a aplicação assistente da aplicação do servidor, assim como o CGI;

• Proporciona ao desenvolvedor a possibilidade de adicionar conteúdo dinâmico em um servidor web usando a plataforma Java.

• É um componente do servidor;

• Pode receber dados em um form HTML por meio de uma requisição HTTP, processar os dados, atualizar a base de dados de uma empresa, e gerar alguma resposta dinamicamente para o cliente que fez a requisição

Page 32: Aplicações web parte 1

JSP

• Desenvolvedores de aplicação conhecem JAVA.

• Designers de páginas conhecem HTML.

• No JSP: desenvolvedores JAVA fazem a parte JAVA e os designers as páginas HTML.

Page 33: Aplicações web parte 1

CONTAINER

• É responsável por:– Instar o servlet;–Criar uma nova thread para tratar a

solicitação;–Chamar o método doPost() ou doGet()

do servlet;– Levar a solicitação e a resposta para o

servlet;–Gerenciar a vida, a morte e os recursos

do servlet;

Page 34: Aplicações web parte 1

CONTAINER

• Servlets não possuem um método main()

• Estão sob controle de outra aplicação (o container);

• Quando sua aplicação web recebe uma solicitação para um servlet, o servidor entrega a solicitação não ao servlet em si, mas para o container no qual o servlet é distribuído.

• É o container quem entrega ao servlet a solicitação e a resposta HTTP, e chama os métodos do servlet.

Page 35: Aplicações web parte 1

CONTAINER