2. 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
3. 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
4. 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.
5. 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.
6. 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.
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 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
9. 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.
10. 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
11. 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)
12. 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)
13. 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
14. 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;
15. 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
16. 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!!!!
18. Anatomia de uma solicitação HTTP
POST
Corpo da mensagem: são os dados a serem enviados de volta ao servidor.
19. 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á
20. 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.
22. 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
23. 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.
25. 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.
26. 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.
27. 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?
28. 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.
29. 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.
31. 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
32. 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.
33. 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;
34. 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.