Fernando M. V. Ramos, RC (LEI), TP02. HTTP. Redes de Computadores

Documentos relacionados
PTC Aula A Web e o HTTP. (Kurose, p ) (Peterson, p ) 24/03/2017

Redes de Computadores

Redes de Computadores

Redes de Computadores Grupo de Redes de Computadores

Redes de Computadores I. Sockets e Arquitetura HTTP

Internet e protocolos web. A Internet é uma rede descentralizada de recursos computacionais. Topologia tem de fornecer caminhos alternativos

Redes de Computadores I

Redes de Computadores

Redes de Computadores

Programação para Internet Flávio de Oliveira Silva, M.Sc.

Trabalho de laboratório sobre HTTP

HyperText Transfer Protocol (HTTP)

Mônica Oliveira Primo de Lima Edervan Soares Oliveira TRABALHO SOBRE PROTOCOLO HTTP

Redes de Computadores

Web. Até a década de 1990, a Internet era utilizada. por pesquisadores, acadêmicos e universitários, para troca de arquivos e para correio eletrônico.

Capítulo 2 A Camada de Aplicação Prof. Othon Marcelo Nunes Batista Mestre em Informática

2. Camada de aplicação

Redes de Computadores

Redes de Computadores

Universidade Federal do Espírito Santo CCA UFES. Centro de Ciências Agrárias CCA UFES Departamento de Computação. Programação WEB

APLICAÇÕES E SERVIÇOS WEB

Programação para Internet I. 2. O protocolo HTTP. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES

Estruturas de Comunicação de Dados Aula 3 Camadas de Aplicação e Transporte

Hypertext Transport Protocol (HTTP)

Universidade Federal de Mato Grosso

Redes de Computadores. Protocolos de Internet

Introdução. Página web. Tipos de documentos web. HyperText Transfer Protocol. Rd Redes de Computadores. Aula 27

Redes de Computadores

Capítulo 2 Camada de Aplicação

CCT0298 ANALISE DE REDES Aula : Trafego HTTP

Capítulo 2. Camada de aplicação

6127. Redes comunicação de dados. 2014/2015. Acesso à Internet.

Breve introdução a User Dir e Senhas no Apache Uma abordagem prática (aka crash course on User Dir and Directory Authentication on Apache)

Correio eletrônico. Sistema de correio da Internet composto de

Programação Web Aula 1: Introdução

Aulas Práticas. Implementação de um Proxy HTTP. O que é um proxy?

Teia de alcance mundial (World Wide Web WWW) Web composta de

REDES DE COMPUTADORES. Prof. Evandro Cantú

Protocolo HTTP. Eduardo Ferreira dos Santos. Fevereiro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 22

PTC Aula A camada de aplicação. (Kurose, p ) 10/03/2017

O protocolo HTTP. O que é o protocolo HTTP?

PHP: Cookies e Sessões

Protocolo HTTP. Professor Leonardo Larback

Capítulo 7. A camada de aplicação

rumo ao HTTP 2.0 o que vem por aí e o que você pode utilizar já com SPDY

Transferência de Arquivo: Protocolo FTP

Oficina Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto

Como se defender utilizando software livre na era da espionagem

FPROT HTTP(s), FTP, DHCP, SQUID e SAMBA. Aula 1 SENAC TI Fernando Costa

1.264 Lição 11. Fundamentos da Web

Capítulo 7. Hyper Text Transfer Protocol (HTTP). Serviço Apache. - Protocolo HTTP - Sessão HTTP - Configuração do serviço Apache

Arquitetura TCP/IP Nível de Aplicação (HTTP, SMTP, FTP & DNS) Prof. Helber Silva

ADMINISTRAÇÃO DE REDES DE COMPUTADORES 8/11/2005 UALG/FCT/DEEI 2005/2006

Hyper Text Transfer Protocol (HTTP) ADI HTTP 1/18

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira

Camada de Aplicação. Redes Industriais Prof. Rone Ilídio

Redes de Computadores LEIC Alameda 2012/2013

web Infraestrutura Oinício do aprendizado de uma linguagem ou framework por Marcelo Morgade

Exercício Programa Mini Web Server

Redes de Computadores RES 12502

DNS. Usa o UDP e a porta 53. Não é uma aplicação com a qual o usuário interage diretamente Complexidade nas bordas da rede

@sergio_caelum sergiolopes.org

Comunicação entre Processos

Escola Politécnica da Universidade de São Paulo

INTRODUÇÃO À INTERNET E À WORLD WIDE WEB

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

Composição Web. Laboratório 0: Serviços de Comunicação na Internet. Prof. Lúcio Studer Ferreira

Correio eletrônico. Sistema de correio da Internet composto de

Capítulo 7. A camada de aplicação

Introdução aos Sistemas Distribuídos

Introdução aos Sistemas Distribuídos

PTC Aula Web e HTTP 2.3 Correio eletrônico na Internet 2.4 DNS O serviço de diretório da Internet

Camada de aplicação. Camada de aplicação

Protocolo HTTP. Palavras-chave: Navegador, aplicativos, web, cliente, servidor.

SMTP x POP3, TCP X UDP, FTP, HTTP RESUMO

Construção de Sites. Introdução ao Universo Web. Prof. Nícolas Trigo

Eng.ª Informática - Cadeira de Redes de Computadores. Frequência 2º Semestre Avaliação Contínua. 5 de Julho de 2007

HYPERTEXT TRANSFER PROTOCOL

Redes de Computadores e a Internet

Camada de aplicação. Aplicações em rede

Comunicação entre processos

A Camada de Aplicação

2Arquitetura cliente-servidor

Vamos iniciar a nossa exploração do HTTP baixando um arquivo em HTML simples - bastante pequeno, que não contém objetos incluídos.

Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados

Laboratório com o Ethereal: HTTP

Protocolo HTTP. - Características. - Modelo Requisição/Resposta. - Common Gateway Interface (CGI)

Nome: Nº de aluno: Indique se vai realizar exame ou 2º teste: Exame: 2º teste: PARTE 1 (7 valores)

REDES DE COMPUTADORES II. TÁSSIO JOSÉ GONÇALVES GOMES

Desenvolvimento Web Protocolos da Internet

Aula 14 Serviços Internet (Servidor Web Apache)

Escola Politécnica da Universidade de São Paulo

Camada de Aplicação. Prof. Arliones Hoeller.

Capítulo 11 Sumário. Serviço de Correio Eletrônico - SMTP e POP3. Serviço de Páginas - Protocolo HTTP, Linguagem HTML

Web das Coisas WoT. Software: APIs para IoT. Prof. João Bosco Teixeira Junior

Pesquise defeitos falhas da atualização da alimentação da inteligência de Segurança no centro de gerenciamento de FireSIGHT

Transcrição:

TP02. HTTP Redes de Computadores

Objetivos Uma introdução ao protocolo HTTP Um olhar com algum detalhe para dentro do protocolo

Noções básicas Uma página web consiste num conjunto de objetos Ficheiros HTML, imagens (JPEG, PNG, etc.), applets, ficheiros de audio e vídeo, etc. Uma página web consiste num ficheiro HTML-base que inclui várias referências para outros objetos Cada objeto é identificado por um URL: http://moodle.ciencias.ulisboa.pt/course/view.php?id=2213 Protocolo Nome do host Caminho (path name)

HTTP: visão macro Protocolo do nível de aplicação application transport network data link physical application transport network data link physical application transport network data link physical

HTTP: visão micro Segue modelo cliente/servidor Utiliza TCP como protocolo de transporte PC a correr Google Chrome Servidor a executar Apache Web server Telemóvel a correr browser Safari

Sessão HTTP típica Utilizador digita num browser: http://gaia.cs.umass.edu/wireshark-labs/intro-wireshark-file1.html O browser traduz o URL gaia.cs.umass.edu num endereço IP e tenta estabelecer uma ligação TCP no porto 80 desse endereço Quando a ligação é estabelecida, o browser envia um pedido: GET /wireshark-labs/intro-wireshark-file1.html HTTP/1.1 HOST: gaia.cs.umass.edu Espaço em branco! O servidor responde com: Um conjunto de cabeçalhos que indicam qual o protocolo que está a ser usado, se o ficheiro foi encontrado, o tamanho do ficheiro (em bytes) e que tipo de informação está contida no ficheiro Uma linha em branco a indicar que terminou o cabeçalho Os conteúdos da página Se o browser encontrar imagens (ou outros objetos) embutidas na página então inicia um pedido (em separado) para cada uma das imagens A ligação TCP mantem-se ligada um pouco mais à espera de pedidos, e se não surgir mais nenhum é fechada

demo $ telnet gaia.cs.umass.edu 80 Trying 128.119.245.12... Connected to gaia.cs.umass.edu. Escape character is '^]'. GET /wireshark-labs/intro-wiresharkfile1.html HTTP/1.1 HOST: gaia.cs.umass.edu Espaço em branco! HTTP/1.1 200 OK Date: Mon, 28 Sep 2015 12:39:06 GMT Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.4.16 mod_perl/2.0.9dev Perl/v5.16.3 Last-Modified: Mon, 28 Sep 2015 05:59:01 GMT ETag: "51-520c864e32cfe" Accept-Ranges: bytes Content-Length: 81 Content-Type: text/html; charset=utf-8 Espaço em branco! <html> Congratulations! You've downloaded the first Wireshark lab file! </html> Connection closed by foreign host. Início da sessão (estabelecimento de ligação TCP) Pedido HTTP enviado pelo cliente Cabeçalhos HTTP da resposta do servidor Web Corpo da resposta do servidor Web Fim da sessão

Pedido HTTP método sp url sp versão cr lf nome cabeçalho valor cr lf Linha do pedido ~ ~ Cabeçalhos nome cabeçalho cr lf valor cr lf Espaço em branco (carriage return, line feed) indica fim dos cabeçalhos corpo da mensagem ~ ~ Corpo Linha do pedido Cabeçalhos Espaço em branco GET /index.html HTTP/1.1\r\n Host: www-net.cs.umass.edu\r\n User-Agent: Firefox/3.6.10\r\n Accept: text/html,application/xhtml+xml\r\n Accept-Language: en-us,en;q=0.5\r\n Accept-Encoding: gzip,deflate\r\n Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n Keep-Alive: 115\r\n Connection: keep-alive\r\n \r\n

HTTP 1.0 GET Tipos de método dados de entrada estão incluídos no campo URL Exemplo: www.somesite.com/animalsearch?monkeys&banana POST HEAD dados de entrada estão incluídos no corpo da mensagem Pede ao servidor que envie apenas o cabeçalho HTTP 1.1 GET, POST, HEAD PUT Faz upload do ficheiro que está no corpo para o caminho (path) especificado no campo URL DELETE Apaga ficheiro no URL especificado

Resposta HTTP método sp código sp frase cr lf nome cabeçalho valor cr lf Linha do pedido ~ ~ Cabeçalhos nome cabeçalho cr lf valor cr lf Espaço em branco (carriage return, line feed) indica fim dos cabeçalhos corpo da mensagem ~ ~ Corpo Linha do pedido Cabeçalhos Espaço em branco Corpo HTTP/1.1 200 OK\r\n Date: Sun, 26 Sep 2010 20:09:20 GMT\r\n Server: Apache/2.0.52 (CentOS)\r\n Last-Modified: Tue, 30 Oct 2007 17:00:02 GMT\r\n ETag: "17dc6-a5c-bf716880"\r\n Accept-Ranges: bytes\r\n Content-Length: 2652\r\n Keep-Alive: timeout=10, max=100\r\n Connection: Keep-Alive\r\n Content-Type: text/html; charset=iso-8859-1\r\n \r\n data data data data data...

Códigos de resposta: categorias 1xx: informação 100 Continue (continuar a enviar o pedido) 2xx: sucesso 200 OK (pedido bem sucedido, recurso no corpo) 3xx: redirecionamento 301 Moved Permanently (recurso movido para outro URL) 302 Found (recurso movido temporariamente para outro URL) 304 Not Modified (documento não modificado) 4xx: erro no cliente 400 Bad Request (servidor não percebeu pedido, erro sintaxe) 401 Unauthorized (este pedido necessita de autenticação) 404 Not Found (recurso não existe no servidor) 5xx: erro no servidor 503 Service Unavailable (servidor não consegue responder ao pedido por estar sobrecarregado ou em manutenção)

HTTP: outros detalhes O HTTP é um protocolo stateless (sem estado) porque o servidor não guarda nenhuma informação sobre pedidos anteriores do cliente Como é que é resolvido o problema quando é necessário manter estado, sendo o protocolo stateless? Com cookies Tipos de ligação não persistentes Cada ligação serve para transmitir um objeto e depois é fechada Connection: close persistentes É possível pedir vários objetos utilizando sempre a mesma ligação Connection: keep-alive Só possível na versão HTTP 1.1

HTTP: outros detalhes Web caching Objetivo: satisfazer pedidos dos clientes sem envolver o servidor origem Utilizador configura o browser para aceder à Web via cache O browser envia todos os pedidos HTTP para a cache Se está em cache, a cache retorna o objeto Caso contrário a cache pede o objeto ao servidor origem, e depois encaminha-o para o cliente Reduz tempo de resposta e quantidade de tráfego para o servidor Servidor proxy cliente Servidor origem cliente Servidor origem

Objetivo: não enviar objeto se a cache tem uma versão atualizada Remove atraso de transmissão Reduz utilização da ligação A cache especifica a data do que está em cache no pedido HTTP If-modified-since: <data> A resposta do servidor não traz objeto se a cópia em cache estiver atualizada HTTP/1.0 304 Not Modified GET condicional cliente HTTP request msg If-modified-since: <data> HTTP response HTTP/1.0 304 Not Modified HTTP request msg If-modified-since: <data> HTTP response HTTP/1.0 200 OK <data> servidor Objeto não modificado antes de <data> Objeto modificado depois de <data>

Questionário Socrative final da aula