150 likes | 282 Views
Redes de Computadores 2 - Camada de Aplicação (HTTP) –. Paulo Roberto Freire Cunha prfc@cin.ufpe.br. http request. http response. Browser. servidor web. Visão Geral. HTTP - HyperText Transfer Protocol protocolo da aplicação WEB documentos RFC 1945 (http 1.0) RFC 2616 (http 1.1).
E N D
Redes de Computadores 2- Camada de Aplicação (HTTP) – Paulo Roberto Freire Cunha prfc@cin.ufpe.br
http request http response Browser servidor web Visão Geral • HTTP - HyperText Transfer Protocol • protocolo da aplicação WEB • documentos • RFC 1945 (http 1.0) • RFC 2616 (http 1.1) aplicação transport rede enlace física aplicação transport rede enlace física Redes de Computadores 2 (baseado nos slides do Kurose)
get http://www.cin.ufpe.br Aplicação Aplicação Aplicação Aplicação Transporte Transporte Transporte Transporte página html Transporte Transporte Transporte Transporte Enlace Enlace Enlace Enlace Rede Rede Rede Rede 80/TCP 80/TCP 80/TCP Visão Geral • o HTTP usa o protocolo TCP da camada de transporte • etapas de funcionamento • estabelece uma conexão TCP (cria um socket) com o servidor na porta 80 • envia request • recebe response • fecha a conexão 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 GET /somedir/page.html HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr \n • Mensagens HTTP • request • reply • 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)
método versão URL Formato da Mensagem - request sp sp cr lf cr lf campo:valor cr lf campo: valor campo: valor cr lf cr lf Corpo Redes de Computadores 2 (baseado nos slides do Kurose)
http://... http 1.0 GET Formato da Mensagem - request GET (request) sp sp cr lf cr lf Host:www.cin.ufpe.br cr lf Connection: close Accept-language: fr cr lf cr lf Redes de Computadores 2 (baseado nos slides do Kurose)
http://... http 1.0 POST Formato da Mensagem - request POST (request) sp sp cr lf cr lf Host:www.cin.ufpe.br cr lf Connection: close Accept-language: fr cr lf cr lf Infra-Comunicacao+http Redes de Computadores 2 (baseado nos slides do Kurose)
http://... http 1.0 HEAD Formato da Mensagem - request HEAD (request) sp sp cr lf cr lf Host:www.cin.ufpe.br cr lf Connection: close Accept-language: fr cr lf cr lf • similar ao GET • desconsidera o objeto solicitado • usado para depuração Redes de Computadores 2 (baseado nos slides do Kurose)
cod status versão mes. status Formato da Mensagem - response sp sp cr lf cr lf campo: valor cr lf campo: valor campo:valor cr lf cr lf Corpo da Mensagem Redes de Computadores 2 (baseado nos slides do Kurose)
http://... http/1.1 http 1.0 GET 200 OK sp sp cr lf cr lf Host:www.cin.ufpe.br cr lf Connection: close Accept-language: fr cr lf cr lf Formato da Mensagem - response GET /somedir/page.html HTTP/1.0 Host:www.cin.ufpe.br Connection: close User-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) sp sp cr lf cr lf Connection: close cr lf Date: Thu, 06 Aug 1998 12:00:15 GMT ... cr lf cr lf DADO Redes de Computadores 2 (baseado nos slides do Kurose)
Formato da Mensagem - response 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)
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 request normal + Authorization:valor request normal + Authorization:valor rsponse normal response normal tempo Interação com o servidor autenticada servidor cliente request normal 401: authorization req. WWW authenticate: Redes de Computadores 2 (baseado nos slides do Kurose)
o servidor envia o cookie para o cliente Set-cookie: 1678453 o cliente apresenta o cookie em um acesso posterior cookie: 1678453 o servidor casa o cookie autenticação preferências request normal cookie: # request normal cookie: # response normal response normal Interação com o servidor com Cookies servidor cliente request normal response normal + Set-cookie: # ação específica para o cookie ação específica para o cookie Redes de Computadores 2 (baseado nos slides do Kurose)
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 response HTTP/1.0 304 Not Modified Interação com o servidor: GET condicional servidor cliente request If-modified-since: <date> objeto não modificado request If-modified-since: <date> objeto modificado response HTTP/1.1 200 OK … <data> Redes de Computadores 2 (baseado nos slides do Kurose)