Protocolo HTTP
Protocolo 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.
Protocolo HTTP
Protocolo 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.
Protocolo HTTP
Protocolo 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.
Protocolo HTTP
Protocolo 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.
Protocolo HTTP
Protocolo 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.
Protocolo HTTP
Protocolo 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.
Protocolo HTTP
Protocolo de Transferência de Hipertexto
:
Categoria
Descrição
Código
Descrição
1--
Informational
100
Continue
101
Switching protocols
200
Ok
201
Created
202
Accepted
203
Non-authoritive information
300
Multiple choices
301
Moved permanently
302
Moved temporarily
400
Bad request
401
Unauthorized
402
Payment required
403
Forbidden
404
Not found
415
Unsupported media type
426
Upgrade Required
500
Internal server error
501
Not implemented
502
Bad gateway
503
Service unavailable
505
HTTP version not supported
2--
3--
4--
5--
Success
Redirection
Client error
Server error
Protocolo HTTP
Protocolo 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.
Protocolo HTTP
Protocolo 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
Protocolo HTTP
Protocolo 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.
Protocolo HTTP
Protocolo de Transferência de Hipertexto
Protocolo HTTP
Protocolo 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
Protocolo HTTP
Protocolo 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).
Protocolo HTTP
Protocolo de Transferência de Hipertexto
Download

Protocolo HTTP Protocolo de Transferência de Hipertexto