Title: Protocolo HTTP Protocolo de Transfer
1Protocolo HTTPProtocolo de Transferência de
Hipertexto
- História
- O HyperText Transfer Protocol é um protocolo de
aplicação responsável pelo tratamento de pedidos
e respostas entre cliente e servidor na World
Wide Web. - Ele surgiu da necessidade de distribuir
informações pela Internet e para que essa
distribuição fosse possível foi necessário criar
uma forma padronizada de comunicação entre os
clientes e os servidores da Web. - Com isso, o protocolo HTTP passou a ser utilizado
para a comunicação entre computadores na Internet
e a especificar como seriam realizadas as
transações entre clientes e servidores, através
do uso de regras básicas.
2Protocolo HTTPProtocolo de Transferência de
Hipertexto
- Este protocolo tem sido usado pela WWW desde
1990. - A primeira versão de HTTP, chamada HTTP/0.9, era
um protocolo simples para a transferência de
dados no formato de texto ASCII pela Internet,
através de um único método de requisição, chamado
GET. - A versão HTTP/1.0 foi desenvolvida entre 1992 e
1996 para suprir a necessidade de transferir não
apenas texto. - Com essa versão, o protocolo passou a transferir
mensagens do tipo MIME44 (Multipurpose Internet
Mail Extension) e foram implementados novos
métodos de requisição, chamados POST e HEAD.
3Protocolo HTTPProtocolo de Transferência de
Hipertexto
- No HTTP/1.1, versão atual do protocolo descrito
na RFC 2616, foi desenvolvido um conjunto de
implementações adicionais ao HTTP/1.0, como por
exemplo o uso de conexões persistentes o uso de
servidores proxy que permitem uma melhor
organização do cache novos métodos de
requisições entre outros. -
4Protocolo HTTPProtocolo de Transferência de
Hipertexto
- O HTTP funciona como um protocolo de
requisição-resposta no modelo computacional
cliente-servidor. - Um navegador web, por exemplo, pode ser o cliente
e uma aplicação em um computador que hospeda um
site da web pode ser o servidor. - O cliente submete uma mensagem de requisição
HTTP para o servidor. - O servidor, que fornece os recursos, como
arquivos HTML e outros conteúdos, ou realiza
outras funções de interesse do cliente, retorna
uma mensagem resposta para o cliente. - A resposta contem informações de estado completas
sobre a requisição e pode também conter o
conteúdo solicitado no corpo de sua mensagem.
5Protocolo HTTPProtocolo de Transferência de
Hipertexto
- Um navegador web é um exemplo de agente de
usuário (AU). - Outros tipos de agentes de usuário incluem o
software de indexação usado por provedores de
consulta (Web crawler, em português rastreador
web, é um programa de computador que navega pela
World Wide Web de uma forma metódica e
automatizada. - Outros termos para Web crawlers são indexadores
automáticos, bots, web spiders, Web robot, ou Web
scutter.). - Navegadores vocais, aplicações móveis e outros
software que acessam, consomem ou exibem conteúdo
web.
6Protocolo HTTPProtocolo de Transferência de
Hipertexto
- O principal problema com esta forma de
atenticação é que a credenciais do usuário são
transmitidas pela rede sem nenhuma proteção. - Este problema pode ser resolvido através do uso
do protocolo Secury Sockets Layer (SSL) ou outro
protocolo de codificação. -
- O protocolo SLL foi introduzido pela Netscape
Communications Corporation e é suportado pelos
browsers. - O protocolo HTTP/1.1 melhorou o mecanismo de
autenticação proposto pelo protocolo HTTP/1.0. - Ele é baseado no paradgima desafio/resposta no
qual o servidor envia um desafio para o browser e
o browser usa uma senha armazenada localmente
para computar a resposta. -
- Como a senha não é enviada pela rede, o protocolo
HTTP/1.1 é muito mais seguro que o protocolo
HTTP/1.0 e para isso, introduz uma piora muito
pequena no desempenho do sistema.
7Protocolo HTTPProtocolo de Transferência de
Hipertexto
Categoria Descrição Código Descrição
1 - - Informational 100 Continue
101 Switching protocols
2 - - Success 200 Ok
201 Created
202 Accepted
203 Non-authoritive information
3 - - Redirection 300 Multiple choices
301 Moved permanently
302 Moved temporarily
4 - - Client error 400 Bad request
401 Unauthorized
402 Payment required
403 Forbidden
404 Not found
415 Unsupported media type
426 Upgrade Required
5 - - Server error 500 Internal server error
501 Not implemented
502 Bad gateway
503 Service unavailable
505 HTTP version not supported
8Protocolo HTTPProtocolo de Transferência de
Hipertexto
- HTTPS (HyperText Transfer Protocol Secure), é uma
implementação do protocolo HTTP sobre uma camada
adicional de segurança que utiliza o protocolo
SSL/TLS. Essa camada adicional permite que os
dados sejam transmitidos por meio de uma conexão
criptografada e que se verifique a autenticidade
do servidor e do cliente por meio de certificados
digitais. A porta TCP usada por norma para o
protocolo HTTPS é a 443.
9Protocolo HTTPProtocolo de Transferência de
Hipertexto
- A confiança fornecida pelo HTTPS é baseada em
autoridades de certificação que vêm
pré-instaladas no navegador (isto é equivalente a
dizer "Eu confio na autoridade de certificação
VeriSign/Microsoft/etc para me dizer em quem devo
confiar"). - Portanto, uma conexão HTTPS pode ser confiável se
e somente se todos os itens são verdade - O usuário confia que o navegador implementa
corretamente HTTPS com autoridades de
certificação pré-instaladas - O usuário confia que as autoridades verificadoras
só irão confiar em páginas legítimas, que não
possuem nomes enganosos - A página acessada fornece um certificado válido,
o que significa que ele foi assinado por uma
autoridade de certificação confiável - O certificado identifica corretamente a página
(por exemplo, quando o navegador acessa
"https//exemplo.com", o certificado recebido é
realmente de "Exemplo Inc." e não de alguma outra
entidade). - Ou o tráfego na internet é confiável, ou o
usuário crê que a camada de encriptação do
protocolo TLS/SSL é suficientemente segura contra
escutas ilegais
10Protocolo HTTPProtocolo de Transferência de
Hipertexto
- Integração com o navegador
- Muitos navegadores mostram um aviso se recebem um
certificado inválido. - Navegadores mais antigos, quando se conectam a
uma página com um certificado inválido, mostravam
ao usuário um aviso em uma caixa de diálogo e
perguntavam se ele desejava continuar. - Navegadores mais recentes mostram o aviso
preenchendo a janela inteira e também exibem as
informações de segurança da página na barra de
endereços. - Certificados de validação estendida tornam verde
a barra de endereço em navegadores mais recentes. -
11Protocolo HTTPProtocolo de Transferência de
Hipertexto
12Protocolo HTTPProtocolo de Transferência de
Hipertexto
- Adquirindo certificados
- Certificados assinados por autoridades podem ser
de graça ou ter um custo anual. - Organizações podem também ter sua própria
autoridade de certificação, particularmente se
são responsáveis por configurar navegadores para
acessar suas próprias páginas (por exemplo,
páginas de uma rede interna ou de uma grande
universidade). - Elas podem facilmente adicionar cópias de seus
próprios certificados na lista de certificados
distribuída no navegador. - Existe também uma autoridade de certificação
ponto-a-ponto, a CACert
13Protocolo HTTPProtocolo de Transferência de
Hipertexto
- Diferenças para o HTTP
- As URLs HTTPS começam com "https//" e utilizam a
porta 443 como padrão, enquanto as URLs HTTP
começam com "http//" e utilizam a porta 80 como
padrão. - HTTP é inseguro e sujeito a ataques de
homem-no-meio e escutas ilegais, que podem levar
a atacantes ganharem acesso a contas de páginas
na web e a informações sensíveis. - O HTTPS foi projetado para proteger contra esses
ataques e é considerado seguro contra eles (com
exceção de versões mais antigas e obsoletas do
SSL).
14Protocolo HTTPProtocolo de Transferência de
Hipertexto