Arquitetura de Redes de Computadores Luiz Paulo Maia Camada de Aplicação
Redes de Computadores 2 - Camada de Aplicação (HTTP) –
description
Transcript of Redes de Computadores 2 - Camada de Aplicação (HTTP) –
Redes de Computadores 2 (baseado nos slides do Kurose)
Visão Geral
HTTP - HyperText
Transfer Protocol
protocolo da
aplicação WEB
documentos RFC 1945 (http 1.0)
RFC 2616 (http 1.1)
HTTP - HyperText
Transfer Protocol
protocolo da
aplicação WEB
documentos RFC 1945 (http 1.0)
RFC 2616 (http 1.1)
Browser
http request
http response
aplicaçãotransport
redeenlacefísica
aplicaçãotransport
redeenlacefísica
servidorweb
Redes de Computadores 2 (baseado nos slides do Kurose)
Visão Geral
o HTTP usa o protocolo TCP da camada de transporte
etapas de funcionamento1. estabelece uma conexão
TCP (cria um socket) com o servidor na porta 80
2. envia request
3. recebe response
4. fecha a conexão TCP
Aplicação
Transporte
Rede
Enlace
Transporte
Aplicação
Transporte
Rede
Enlace
Transporte
80/TCP80/TCP
get http://www.cin.ufpe.br
página html
Aplicação
Transporte
Rede
Enlace
Transporte
Aplicação
Transporte
Rede
Enlace
Transporte
80/TCP
http 1.0 (não persistente)
cada objeto é transferido fazendo-se
uma nova conexão
http 1.1 (persistente)
todos os objetos são transferidos
em uma única conexão TCP
Redes de Computadores 2 (baseado nos slides do Kurose)
Formato da Mensagem - request
Mensagens HTTP
request
reply
GET /somedir/page.html HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr
\n
tipo da mensagem
request|response
cabeçalho da mensagem
cabeçalho geral
cabeçalho de request
cabeçalho de response
cabeçalho da entidade
corpo da mensagem
Redes de Computadores 2 (baseado nos slides do Kurose)
Formato da Mensagem - request
método URLsp sp versão cr lf
campo:valor cr lf
campo: valor cr lf
campo: valor cr lf
cr lf
Corpo
Redes de Computadores 2 (baseado nos slides do Kurose)
Formato da Mensagem - request
GET http://...sp sp http 1.0 cr lf
Host:www.cin.ufpe.br cr lf
Connection: close cr lf
Accept-language: fr cr lf
cr lf
GET (request)
Redes de Computadores 2 (baseado nos slides do Kurose)
Formato da Mensagem - request
POST http://...sp sp http 1.0 cr lf
Host:www.cin.ufpe.br cr lf
Connection: close cr lf
Accept-language: fr cr lf
cr lf
Infra-Comunicacao+http
POST (request)
Redes de Computadores 2 (baseado nos slides do Kurose)
Formato da Mensagem - request
HEAD http://...sp sp http 1.0 cr lf
Host:www.cin.ufpe.br cr lf
Connection: close cr lf
Accept-language: fr cr lf
cr lf
HEAD (request)
similar ao GET
desconsidera o objeto solicitado
usado para depuração
Redes de Computadores 2 (baseado nos slides do Kurose)
Formato da Mensagem - response
versão cod statussp sp mes. status cr lf
campo: valor cr lf
campo: valor cr lf
campo:valor cr lf
cr lf
Corpo da Mensagem
Redes de Computadores 2 (baseado nos slides do Kurose)
Formato da Mensagem - response
GET http://...sp sp http 1.0 cr lf
Host:www.cin.ufpe.br cr lf
Connection: close cr lf
Accept-language: fr cr lf
cr lf
GET /somedir/page.html HTTP/1.0 Host:www.cin.ufpe.brConnection: closeUser-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr \n
HTTP/1.1 200 OK Connection: close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 09:23:24 GMT Content-Length: 6821 Content-Type: text/html
(Dado Dado Dado)
http/1.1 200sp sp OK cr lf
Connection: close cr lf
Date: Thu, 06 Aug 1998 12:00:15 GMT cr lf
... cr lf
cr lf
DADO
Redes de Computadores 2 (baseado nos slides do Kurose)
Formato da Mensagem - response
200 ok solicitção realizada com sucesso
301 Moved Permanently
nova localização especificada no corpo da mensagem
400 Bad Request mensagem de request não entendida pelo servidor
404 Not Found documento não encontrado
505 HTTP Version Not Supported
Versões Incompatíveis
Código Mensagem Significado
telnet www.cin.ufpe.br 80
Redes de Computadores 2 (baseado nos slides do Kurose)
Exemplo
interface com o protocolo
telnet www.cin.ufpe.br 80
troca de mensagens com o protocolo
GET http://www.cin.ufpe.br/~prfc/aulas/index.html HTTP/1.1
Redes de Computadores 2 (baseado nos slides do Kurose)
Interação com o servidor autenticada
objetivo da autenticação: controle de acesso aos documentos do servidor
stateless: o cliente deve apresentar a autorização a cada request
autorização: nome + passwd authorization: linha do
cabeçalho se a autorização não é
apresentada o servidor recusa o acesso
cliente servidor
request normal
401: authorization req.
WWW authenticate:
request normal+ Authorization:valor
rsponse normal
request normal+ Authorization:valor
response normal tempo
Redes de Computadores 2 (baseado nos slides do Kurose)
Interação com o servidor com Cookies
o servidor envia o cookie para o clienteSet-cookie: 1678453
o cliente apresenta o cookie em um acesso posteriorcookie: 1678453
o servidor casa o cookie autenticação preferências
cliente servidor
request normal
response normal +Set-cookie: #
request normalcookie: #
response normal
request normalcookie: #
response normal
ação específicapara o cookie
ação específicapara o cookie
Redes de Computadores 2 (baseado nos slides do Kurose)
Interação com o servidor: GET condicional
objetos não modificados
não são enviados
o cliente especifica a data
If-modified-since:
<data>
o servidor responde sem
um objeto caso a cópia
não tenha sido atualizado
HTTP/1.0 304 Not
Modified
cliente servidor
requestIf-modified-since:
<date>
responseHTTP/1.0
304 Not Modified
objetonão
modificado
requestIf-modified-since:
<date>
responseHTTP/1.1 200 OK
…
<data>
objeto modificado