Redes de Computadores Grupo de Redes de Computadores

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

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.

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

Hypertext Transport Protocol (HTTP)

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

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

HyperText Transfer Protocol (HTTP)

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto

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

APLICAÇÕES E SERVIÇOS WEB

O protocolo HTTP. O que é o protocolo HTTP?

Redes de Computadores I

1.264 Lição 11. Fundamentos da Web

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

REDES DE COMPUTADORES. Prof. Evandro Cantú

Redes de Computadores e a Internet

Redes de Computadores

Redes de Computadores

Redes de Computadores

Universidade Federal de Mato Grosso

HYPERTEXT TRANSFER PROTOCOL

Desenvolvimento Web Protocolos da Internet

Desenvolvimento Web Histórico da Internet e Protocolos

PHP: Cookies e Sessões

Aula 14 Serviços Internet (Servidor Web Apache)

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

O protocolo HTTP. Você aprenderá: O que é e como funciona o protocolo HTTP. Quais são as partes de um pedido HTTP.

SIP Session Initiation Protocol

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

Redes de Computadores I. Sockets e Arquitetura HTTP

Java, HTTP, CGI e Linguagens de Scripting

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

Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados

Rede de Computadores (REC)

2Arquitetura cliente-servidor

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

Redes de Computadores

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)

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

INTRODUÇÃO ÀS REDES DE COMPUTADORES

Universidade da Beira Interior

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

Redes de Computadores 1 o Exame

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

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

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

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

Como se defender utilizando software livre na era da espionagem

Redes de Computadores. Camada de Aplicação Profa. Priscila Solís Barreto

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

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

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

Redes de Computadores (RCOMP 2014/2015)

Redes de Computadores

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

Redes de Computadores

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

ALCY JOSÉ VIEIRA NETO ALEXANDRE SOHN CINTIA CAVICHIOLO PROTOCOLO HTTP

PROTOCOLOS DE COMUNICAÇÃO

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

INTRODUÇÃO ÀS REDES DE COMPUTADORES

Trabalho de laboratório sobre HTTP

Redes de Computadores. Protocolos de Internet

INTRODUÇÃO A REDES DE COMPUTADORES. Alan Nakai

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

Redes de Computadores

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Redes de Computadores


Input de dados a partir de formulários HTML

Serviços: API REST. URL - Recurso

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

A Camada de Aplicação

Guia de Consulta Rápida HTTP. Décio Jr. Novatec Editora.

TCP/IP - NÍVEL APLICAÇÃO (utilizador)

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

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

Comunicação entre Processos

Universidade Federal do Rio Grande do Norte

Capítulo 2. Camada de aplicação

Aula 1 Cleverton Hentz

Tecnologias da Internet (T) Avaliação de Frequência (v1) 60 minutos *

HTTP. passado, presente e futuro.

Fernando Bracalente. O trabalho final consiste em escolher um dos "malwares-novos" e responder algumas questões.

Transferência de arquivos (FTP)

Camada de Aplicação. Prof. Tiago Semprebom. 2: Camada de aplicação 1

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

REDES DE COMPUTADORES I 2007/2008 LEIC - Tagus-Park TPC Nº 2. Avaliação sumária da matéria do Capítulo 2

Redes de Computadores Camada de Aplicação. Prof. MSc. Hugo Souza

Camada de aplicação Conceitos, implementação de protocolos da camada de aplicação

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

Cookies e sessões. HTTP é um protocolo que não mantém estado, isto é não tem memória.

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

Capítulo 2 Camada de Aplicação

Ntrip Detalhes de Implementação do Protocolo

Transcrição:

Redes de Computadores Grupo de Redes de Computadores HTTP HyperText Transport Protocol

Introdução ao protocolo HTTP Origem Definido na iniciativa da WWW HTML e HTTP Modelo cliente servidor Protocolo sem estado O servidor não mantém informação sobre os pedidos anteriores dos clientes Troca de objectos Objecto: ficheiro HTML, imagem (jpeg, gif, etc), applet de Java, ficheiro de audio ou video, etc Formato das mensagens Pedidos e respostas Ligações HTTP: persistentes e não persistentes ISEL-ADEETC-GRC 2

URL Uniform Resource Locator Um página web consiste em objectos Um URL serve para identificar e localizar um objecto Um ficheiro HTML pode incluir vários objectos referenciados Cada objecto é identificado por um URL Formato ISEL-ADEETC-GRC 3

Protocolo HTTP Protocolo da camada de aplicação utilizado por aplicações Web Dois tipos de mensagens: pedido e resposta, no formato ASCII Utiliza TCP, porto 80 por omissão O cliente abre uma ligação TCP com o servidor, troca mensagens HTTP e fecha a ligação TCP Prevê o uso de Webcaches HTTP 0.9 (1991) HTTP 1.0 (1996) RFC 1945 HTTP 1.1 (1996) RFC 2068 ISEL-ADEETC-GRC 4

Funcionamento ISEL-ADEETC-GRC 5

Formato das Mensagens Pedido /Respostas EID/ISEL-DEETC-GRC/2009 6

Formato de um pedido HTTP Linha de pedido (comandos GET, POST, HEAD, etc) Linhas de cabeçalho Carriage return, line feed Indica o fim da mensagem GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr (extra carriage return, line feed) ISEL-ADEETC-GRC 7

Pedidos HTTP (linha de pedido) Pedido simples (HTTP/1.0) Method SP Request-URI CRLF Pedido completo (HTTP/1.0) ISEL-ADEETC-GRC 8

2068 1945 Métodos RFC Métodos Acções GET Pede um documento/recurso/objecto ao servidor POST Envia informação do cliente para o servidor HEAD Pede informação sobre um documento mas não o documento em si OPTIONS Pede quais as opções disponíveis para um recurso PUT Envia um documento/recurso/objecto para o servidor DELETE Apagar o documento/recurso/objecto TRACE Loop-back do pedido ISEL-ADEETC-GRC 9

Formato de uma resposta HTTP Linha de estado (protocolo, código de estado, frase de estado) Dados, e.g. ficheiro HTML pedido Linhas de cabeçalho 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... Content-Length: 6821 Content-Type: text/html data data data data data... ISEL-ADEETC-GRC 10

Resposta HTTP Resposta simples (HTTP/1.0) sem linha de estado Resposta completa (HTTP/1.1) Categoria 1yz 2yz 3yz 4yz 5yz Descrição Informação Sucesso Redireccionamento Erro do cliente Erro do servidor ISEL-ADEETC-GRC 11

Códigos de resposta HTTP (1) Código Nome (phrase) Descrição Informação 100 Continue A parte inicial do pedido foi realizada e o cliente pode continuar com o pedido 101 Switching O servidor vai realizar o pedido do cliente para mudar de protocolos Sucesso 200 OK O pedido teve sucesso, o objecto é enviado na mensagem 201 Created Um novo URL foi criado 202 Accepted O pedido foi aceite, mas não foi imediatamente processado 204 No content Processa o pedido, mas não retorna nenhum conteúdo Redireccionamento 300 Multiple choices O URL pedido refere-se a mais do que um recurso 301 Moved permanently O objecto foi movido, nova localização indicada no cabeçalho location 304 Not modified Indica que o recurso não foi alterado desde o último pedido (uso c/get condicional) ISEL-ADEETC-GRC 12

Códigos de resposta HTTP (2) Código Nome (phrase) Descrição Erro no cliente 400 Bad request O pedido não pode ser realizado devido a erros de sintaxe 401 Unauthorized Autenticação falhou ou não foi realizada 403 Forbidden O pedido está correcto mas o servidor recusa-se a responder 404 Not Found O objecto pedido não foi encontrado 405 Method not allowed O método não é suportado para o objecto indicado no pedido 406 Not acceptable Não consegue gerar uma resposta num formato aceitável pelo cliente Erro no servidor 500 Internal server error O servidor econtrou um errro não esperado, que o impediu de responder ao pedido 501 Not implemented O servidor não suporta a funcionalidade necessária para satisfazer o pedido 502 Service unavailable O servidor é incapaz de responder ao pedido devida uma sobrecarga ou manutenção do servidor ISEL-ADEETC-GRC 13

Cabeçalhos (Header field) Servem para transmitir informação adicional Existe quatro tipos: gerais (General-Header), de pedido (Request- Header), de resposta (Response-Header) e relacionado com o conteúdo (Entity-Header) Formato ISEL-ADEETC-GRC 14

Cabeçalhos generalistas Header Cache-control Connection Date MIME-version Upgrade Description Specifies information about caching Shows whether the connection should be closed or not Show the current date Show the MIME version used Specifies the preferred communication protocol ISEL-ADEETC-GRC 15

Cabeçalhos para pedidos Header Accept Accept-Charset Accept-enconding Accept-language Authorization From Host If-modified-since If-match If-non-match If-range If-unmodified-since Referref User-agent Description Show the media format the client can accept Show the character set the client can handle Show the encoding scheme the cliente can handle Show the language the client can accept Show what permissions the client has Show the e-mail address of the user Show the host and port number of the client Send the document if newer than specified date Send the document only if matches given tag Send the document only if it does not match given tag Send only the portion of the document that is missing Send the document if not changed since specified date Specifies the URL of the linked document Identifies the client program ISEL-ADEETC-GRC 16

Cabeçalhos para respostas Header Accept-range Age Public Retry-after Server Description Show if server accepts the range requested by client Show the age of the document Show the supported list of methods Specifies the date after which the server is available Show the server name and version number ISEL-ADEETC-GRC 17

Cabeçalhos relacionados com o conteúdo Header Allow Content-encoding Content-language Content-length Content-range Content-type Etag Expires Last-modified Location Description Lists valid methods that can be used with a URL Specifies the encoding scheme Specifies the language Show the length of the document Specifies the range of the document Specifies the media type Gives an entity tag Gives the date and time when contents may change Gives the date and time of the last change Specifies the location of the created or moved document ISEL-ADEETC-GRC 18

Tipo de ligações de HTTP Não persistentes: apenas um objecto pode ser transferido numa ligação de TCP Estabelecimento e fecho de uma ligação de TCP por objecto Persistentes: podem ser transferidos vários objectos sobre a mesma ligação de TCP Requisitos de memória e CPU são menores Menor latência Usar Connection: Keep-Alive ISEL-ADEETC-GRC 19

Exemplo GET ISEL-ADEETC-GRC 20

Exemplo POST ISEL-ADEETC-GRC 21

Exemplo de um GET ~ # telnet www.net.ipl.pt 80 GET / HTTP/1.1 Host: www.net.ipl.pt User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-us; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en,pt;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cookie: _horde_sidebar_expanded=true; default_imp_view=imp HTTP/1.x 200 OK Date: Thu, 11 Sep 2008 16:41:41 GMT Server: Apache X-Powered-By: PHP/5.2.6-pl6-gentoo Set-Cookie: fe_typo_user=3434b4366d; path=/ Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=utf-8 (...) Connection closed by foreign host. ISEL-ADEETC-GRC 22

Bibliografia http://www.w3.org/pub/www/protocols/http/asimplemented.html - Hypertext Transfer Protocol HTTP V0.9 (1991) RFC1945 - Hypertext Transfer Protocol -- HTTP/1.0 (1996) RFC2068 - Hypertext Transfer Protocol -- HTTP/1.1 (1997) RFC2616 - Hypertext Transfer Protocol -- HTTP/1.1 (1999) Forouzan, Behrouz A. TCP/IP Protocol Suite. Boston: McGraw-Hill, 2003. Print Slides realizados pelo docente João Viegas e João Ascenso em 03/2012 ISEL-ADEETC-GRC 23