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 HTTP
Uma resposta HTTP é composta pelo HEADER e CORPO.
Header: tipo de protocolo, status da solicitação, tipo de conteúdo do corpo
Corpo: 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

Aplicações web parte 1

  • 1.
  • 2.
    Introdução • A Webconsiste 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
  • 3.
    O que oseu 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
  • 4.
    O que oseu 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.
  • 5.
    O que oum 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.
  • 6.
    O que oum 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.
  • 7.
    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
  • 8.
    Exemplo <html> <!-- Um exemploHTML --> <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
  • 9.
    TCP/IP • O HTTPexecuta 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.
  • 10.
    TCP/IP • HTTP dependedo 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
  • 11.
    Principais elementos deum 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)
  • 12.
    Principais elementos deum 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)
  • 13.
    MÉTODOS HTTP • HTTPHEADER 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
  • 14.
    Método GET • Conseguirum 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;
  • 15.
    Método POST • Comeste 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
  • 16.
    Porque usar POSTno 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!!!!
  • 17.
    Anatomia de umasolicitação HTTP GET
  • 18.
    Anatomia de umasolicitação HTTP POST Corpo da mensagem: são os dados a serem enviados de volta ao servidor.
  • 19.
    Anatomia de umaresposta HTTP Uma resposta HTTP é composta pelo HEADER e CORPO. Header: tipo de protocolo, status da solicitação, tipo de conteúdo do corpo Corpo: conteúdo que o browser exibirá
  • 20.
    Fluxo Completo 1. Ousuá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.
  • 21.
  • 22.
    Portas • Uma portarepresenta 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
  • 23.
    Portas • Uma portaTCP é 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.
  • 24.
    Exemplo de estruturade diretórios de um servidor
  • 25.
    Páginas Estatícas • Umapá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.
  • 26.
    Páginas Dinâmicas • Páginasinstantaneas: 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.
  • 27.
    Páginas Dinâmicas • Páginasinstantâ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?
  • 28.
    Páginas Dinâmicas • Precisamosde 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.
  • 29.
    CGI • É otermo 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.
  • 30.
  • 31.
    Servlet • É aaplicaçã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
  • 32.
    JSP • Desenvolvedores deaplicação conhecem JAVA. • Designers de páginas conhecem HTML. • No JSP: desenvolvedores JAVA fazem a parte JAVA e os designers as páginas HTML.
  • 33.
    CONTAINER • É responsávelpor: – 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;
  • 34.
    CONTAINER • Servlets nãopossuem 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.
  • 35.