HTTP

Hyper Text Transfer Protocol

HTTP

É o protocolo de aplicação mais conhecido da Internet Padronizado pela RFC2616, utiliza a porta 80 É o protocolo responsável pelo WWW (World Wide Web) É comum o usuário confundir a Internet com a Web Uma página Web costuma ser encontrada através de uma URL

http://www.ifrn.edu.br

A WEB ● Páginas WEB são escritas usando HTML (Hyper Text markup language) Cada página é constituída de muitos objetos: ● ● ● ● Imagens Animações Vídeos ● Cada objeto tem seu endereço a URL (Uniform Resource Locator) .

google. Ex. pode ser usado para diversos outros protocolos.URL ● Pode ser usada para localizar um recurso em uma rede Não apenas para http.: ftp É composta de 4 partes Servidor Porta Recurso ● ● Protocolo http://www.com.br:80/maps .

Firefox.HTTP ● Assim o HTTP é um protocolo de aplicação para transferir páginas HTML e os objetos que a compõe O protocolo HTTP funciona no modelo cliente servidor O cliente é comumente um browser (IE. Chrome. Safari) O servidor aguarda os pedidos e responde enviando as páginas e objetos que a compõe ● ● ● .

HTTP ● O HTTP é stateless o que significa que não mantem informação sobre os pedidos anteriores do cliente Cada novo pedido é iniciado do zero ● .

Fluxo do HTTP htt p req u PC rodando Firefox htt p res pon est se st ue req se ttp on h p res p htt Servidor Rodando o servidor Web Apache Mac rodando Safari .

HTTP ● O protocolo é baseado em pedidos(requests) e respostas(responses) Todos estes são passados em texto simples em um formato padronizado O servidor interpretará o request e enviará um response adequado ao pedido feito pelo cliente ● ● .

line feed) .HEAD ) linhas de cabeçalho Carriage return.ifrn.1 Host: www.br User-agent: Mozilla/4.html HTTP/1. POST.0 Connection: close Accept-language:fr (extra carriage return.HTTP Request linha de pedido (comandos GET .edu. line feed indica fim da mensagem (método) URL Versão GET /index.

Formato Geral .

Ex.: Formulários WEB Obtém informação sobre um objeto do servidor Negocia opções de conexão com o servidor ● POST ● ● HEAD ● ● OPTIONS ● .Métodos suportados ● GET ● Obtem um determinado recurso (arquivo) do servidor Envia um pedido de recurso contendo informações.

Métodos suportados ● Pouco Usados: ● PUT – Envia um objeto para o servidor Apaga um objeto do servidor Obtem o caminho entre o servidor e o cliente local Reservado para uso com proxies ● DELETE – ● TRACE – ● CONNECT – .

22 Jun 1998 …. e. arquivo html ..x..1 200 OK Connection close Date: Thu. dados... Content-Length: 6821 Content-Type: text/html data data data data data .HTTP Response linha de status (protocolo código de status frase de status) linhas de cabeçalho HTTP/1.0 (Unix) Last-Modified: Mon..3. 06 Aug 1998 12:00:15 GMT Server: Apache/1.

Códigos de Status comuns ● 200 OK ● O pedido foi aceito dados logo abaixo A página mudou de endereço (redirecionar) O pedido não foi entendido pelo servidor Página não encontrada Um erro do servidor impediu que a página fosse enviada ● 301 Moved Permanently ● ● 400 Bad Request ● ● 404 Not Found ● ● 500 Internal Server Error ● .

google.google.br .com.1 Host:www.com.br 80 GET /index.html HTTP/1.: telnet www.Testando um servidor web ● Faça um telnet na porta 80 de um servidor WEB qualquer ● Ex.

Cache Web ● Objetivo: Atender o cliente sem envolver o servidor de origem O Browser tem o seu próprio cache local Também é possível usar um cache global para a rede local (proxy) O cache local armazena uma cópia de cada página acessada Se a página for pedida novamente e não foi modificada. será trazida do cache e não do servidor original ● ● ● ● .

Cache Web servidor original cliente htt p re qu e st htt p re spo nse Proxy server se pon es tp r ht p htt se on p res p htt re st ue q cliente .

1 200 OK <data> .GET Condicional cliente http request msg If-modified-since: <date> servidor http response HTTP/1.0 304 Not Modified objeto não modificado http request msg If-modified-since: <date> objeto modificado http response HTTP/1.

HTTPS ● Como vimos todo tráfego HTTP é feito usando pedidos e respostas em texto aberto Transmitir informações como senhas em texto aberto é muito perigoso Para tanto existe o protocolo HTTPS (HTTP Secure) O HTTPS criptografa toda informação transmitida entre cliente e servidor O HTTPS comumente utiliza a porta 443 ● ● ● ● .

HTTPS ● Pode ser facilmente reconhecido no navegador através do símbolo do cadeado presente na tela Isso garante que. o site acessado é realmente quem diz ser e que o conteúdo não poderá ser lido por outras pessoas É comumente usado em sites que exigem senha e bancos Questão: Porquê todos os sites não usam HTTPS sempre? ● ● ● .

Como é possível que um site saiba quem é o usuário atual do site? Existe uma técnica para fazer isso.Desafio Stateless ● Se o servidor web não armazena informação sobre o status de um cliente entre pedidos. por ser stateless. ● ● ● ? . Descreva e exemplifique essa técnica.