Aplicações web parte 1

Post on 15-Nov-2014

130 views 0 download

description

Aplicações web parte 1

Transcript of Aplicações web parte 1

LINGUAGEM DE PROGRAMAÇÃO III

APLICAÇÕES WEB

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

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

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.

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.

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.

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

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

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.

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

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)

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)

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

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;

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

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!!!!

Anatomia de uma solicitação HTTP GET

Anatomia de uma solicitação HTTP POST

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

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á

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.

URL

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

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.

Exemplo de estrutura de diretórios de um servidor

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.

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.

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?

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.

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.

CGI

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

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.

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;

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.

CONTAINER