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



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

O protocolo HTTP. O que é o protocolo HTTP?

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

HyperText Transfer Protocol (HTTP)

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto

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

1.264 Lição 11. Fundamentos da Web

Desenvolvimento Web Protocolos da Internet

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

APLICAÇÕES E SERVIÇOS WEB

Hypertext Transport Protocol (HTTP)

Universidade da Beira Interior

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

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

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

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

Desenvolvimento Web Histórico da Internet e Protocolos

HYPERTEXT TRANSFER PROTOCOL

Redes de Computadores Grupo de Redes de Computadores

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

Comunicação entre Processos

Universidade Federal de Mato Grosso

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

INTRODUÇÃO A REDES DE COMPUTADORES. Alan Nakai

SOAP. Web Services & SOAP. Tecnologias de Middleware 2004/2005. Simple Object Access Protocol. Simple Object Access Protocol SOAP

Redes de Computadores 1 o Exame

Redes de Computadores e a Internet

Programação para Internet I. 1. Servidores web. Nuno Miguel Gil Fonseca

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

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

A Internet, ou apenas Net, é uma rede mundial de computadores ligados, entre si, através de linhas telefónicas comuns, linhas de comunicação

Desenvolvimento Cliente-Servidor 1

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

Aula 1 Cleverton Hentz

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

INTERNET. TCP/IP protocolo de comunicação sobre o qual se baseia a Internet. (conjunto de regras para a comunicação entre computadores)

HTTP. passado, presente e futuro.

Capítulo 1 PROTOCOLOS FUNDAMENTAIS DA INTERNET

Práticas de Desenvolvimento de Software

A Camada de Aplicação

PHP: Cookies e Sessões

@sergio_caelum sergiolopes.org

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

Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados

REDES DE COMPUTADORES. Prof. Evandro Cantú

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Java, HTTP, CGI e Linguagens de Scripting

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

CEF Pastelaria - 3ºG Curso de Educação e Formação, Tipo II, Nível II

Camada de Aplicação. Prof. Eduardo

Redes - Internet. Sumário Aula 3,4 e 5 9º C } Estrutura baseada em camadas. } Endereços IP. } DNS -Domain Name System

Sistemas Distribuídos na Web. Pedro Ferreira DI - FCUL

Protocolos de Internet (família TCP/IP e WWW) Primeiro Técnico. Prof. Cesar

Como se defender utilizando software livre na era da espionagem

Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca

UFG - Instituto de Informática

Comunicando através da rede

UM NOVO CONCEITO EM AUTOMAÇÃO. Série Ponto

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

O espaço de nomes DNS Registros de recursos de domínio Servidores de nome

Grupo de trabalho sobre a protecção das pessoas singulares no que diz respeito ao tratamento de dados pessoais. Recomendação 1/99

Rede de Computadores (REC)

Web. Professor: Rodrigo Alves Sarmento

A internet é uma gigantesca rede de redes que conecta milhões de computadores globalmente, formando uma rede em que qualquer

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger

2Arquitetura cliente-servidor

1. INTERNET OU NET. Hardware. Computador. Linha telefónica normal, linha RDIS, ligação por cabo ou ADSL. Modem

Eng.ª Informática. Redes de Computadores. Frequência. 4 de Julho de 2006

Ajax Asynchronous JavaScript and Xml

Protocolo de Sinalização SIP

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

Rede de Computadores

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

WEBDESIGN. Professor: Paulo Trentin Escola CDI de Videira

Redes de Computadores (RCOMP 2014/2015)

Introdução à Camada de Aplicação. Prof. Eduardo

Criação de páginas web

Programação II Programação para a Web. Christopher Burrows

Criando e consumindo Web service REST com PHP e JSON. Palestrante: Weiberlan Garcia

UNIVERSIDADE. Sistemas Distribuídos

DWEB. Design para Web. Fundamentos Web I. Curso Superior de Tecnologia em Design Gráfico

CAPÍTULO 2. Este capítulo tratará :

Microsoft Office FrontPage 2003

# # & '% *+,-*+,./01)* 3 +,-3 +,./01)+ % 5

18/04/2006 Micropagamento F2b Web Services Web rev 00

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas)

Teleprocessamento e Redes

É uma rede mundial de computadores ligados entre si. INTERNET

Internet ou Net. É uma rede mundial de computadores ligados entre si através s de linhas telefónicas comuns.

Ferramentas para Internet CST Sistemas para Internet

Internet e seus recursos

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

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

Transcrição:

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

Protocolos Conjunto de regras que define o modo como aplicações informáticas comunicam entre si. Permite que diferentes sistemas sejam desenvolvidos independentemente uns dos outros, no entanto, posteriormente podem comunicar entre si (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 2

Hypertext Transfer Protocol Actualmente na versão 1.1 É o protocolo de rede usado para encaminhar a maior parte dos ficheiros (e outros tipos de informação) que circulam pela World Wide Web. Entre os ficheiros transmitidos encontram-se principalmente ficheiros HTML, imagens, etc. O protocolo HTTP opera geralmente sobre sockets TCP/IP. (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 3

Como muitos outros protocolos de rede, assenta no modelo cliente-servidor Como exemplo de um cliente, temos os browsers (Internet Explorer, por exemplo) A parte servidora fica a cargo dos HTTP servers (Apache, por exemplo) Um servidor de HTTP está, regra geral, à escuta no porto 80, no entanto, outros portos podem ser usados (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 4

A estrutura das transacções Como acontece geralmente em aplicações cliente servidor, o cliente efectua um pedido (request) e posteriormente o servidor enviará a resposta (response). (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 5

A estrutura das transacções O formato das mensagens de request e response têm uma estrutura semelhante: Uma linha inicial (diferente entre request e response) (1) Um ou mais cabeçalhos (2) Uma linha em branco (3) Um corpo de mensagem (opcional) (um ficheiro, dados de input/output)(4) 1 2 3 4 HTTP/1.1 200 OK Date: Tue, 21 Mar 2006 18:55:15 GMT Server: Apache/1.3.33 (Unix) Last-Modified: Thu, 12 May 2005 13:43:54 GMT Content-Type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>... obrigatório opcional (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 6

Os pedidos A linha inicial de um pedido (request) é constituído por três partes separadas por um espaço: O nome de um método (GET, POST, HEAD) O path local do que se pretende transmitir A versão do protocolo HTTP que se está a usar GET /index.html HTTP/1.1 Host: www.google.com GET /index.ht HTTP/1.1 Host: www.google.com (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 7

As respostas A linha inicial (status line) de uma resposta (response) é igualmente constituído por três partes separadas por um espaço: A versão do protocolo HTTP que está a ser usado Um determinado código de resposta (response status code) Uma frase que identifique o resultado HTTP/1.1 200 OK Date: Tue, 21 Mar 2006 18:55:15 GMT <... Código html da página pedida...> HTTP/1.1 404 Not Found Date: Tue, 21 Mar 2006 18:58:24 GMT <... Código html da página de erro...> (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 8

As respostas Ficheiro HTML GET /index.html HTTP/1.1 Host: www.google.com HTTP/1.1 200 OK Date: Tue, 21 Mar 2006 18:55:15 GMT Server: Apache/1.3.33 (Unix) Last-Modified: Thu, 12 May 2005 13:43:54 GMT Content-Type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>... (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 9

As respostas Ficheiro binário (PNG neste caso) GET /logo.png HTTP/1.1 Host: www.google.com HTTP/1.1 200 OK Date: Tue, 21 Mar 2006 19:22:18 GMT Server: Apache/1.3.33 (Unix) Accept-Ranges: bytes Content-Length: 2642 Content-Type: image/png PNG ¼J! K JIZ7ð y ÞÞÞ Þ>sëÐ çûœrª Oh6 ŽaøB4 Ê [ è /œ> 4Ü Ñë Þ ÿ ÛbÝ)... (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 10

As respostas (cont.) Response status codes Classes 1xx mensagens informativas 2xx indicam sucesso na execução da tarefa 3xx redireccionar o cliente para outro URL 4xx indicam um erro na parte do cliente 5xx indicam um erro na parte dos servidor Os mais usuais 200 OK 404 Not Found 500 Server Error Lista completa http://en.wikipedia.org/wiki/list_of_http_status_codes (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 11

Cabeçalhos (headers) Contêm informação sobre o request ou sobre a response, ou sobre o objecto a ser enviado no corpo da mensagem Deverá ser escrito um header por linha A estrutura básica de um header é: Nome-do-header: valor Na versão 1.0 do protocolo estão definidos 16 cabeçalhos diferentes, não sendo nenhum deles obrigatório Na versão 1.1 estão definidos 46 cabeçalhos diferentes, sendo que apenas o cabeçalho Host: é obrigatório (mas apenas nos requests) (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 12

Cabeçalhos (headers) (cont.) Por uma questão de cortesia, é comum incluir nos pedidos: From: geralmente o endereço de email de quem faz o pedido From: nuno@gilito.com User-Agent: - Identifica o programa que faz o request User-Agent: Mozilla/3.0Gold Já nas respostas, é usual incluir: Server: Identifica o web server que está a responder Server: Apache/1.2b3-dev Last-Modified: A data da ultima alteração do recurso que se pretende aceder Last-Modified: Fri, 31 Dec 1999 23:59:59 GMT (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 13

Cabeçalhos (headers) (cont.) Alguns dos headers mais utilizados Accept-Language: permite especificar as linguagem em que preferencialmente se pretende obter a response. Accept-Language: pt, es, it Cache-Control: permite especificar o modo como os mecanismos de caching se deverão comportar. Cache-Control: no-cache Content-Encoding: permite identificar que tipos especiais de codificação foram aplicados sobre os dados transmitidos Content-Encoding: gzip Content-Language: permite especificar a linguagem do texto que segue no corpo da mensagem Content-language: pt (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 14

Cabeçalhos (headers) (cont.) Alguns dos headers mais utilizados (cont.) Content-Location: Poderá ser usado em situações em que se pretenda redireccionar o utilizador para um URI diferente do que foi especificado. Content-Location: http://www.xpto.pt/abc.htm Date: representa a data em que a mensagem foi gerada Date: Tue, 15 Nov 1994 08:12:31 GMT Expires: especifica a data a partir da qual uma response poderá ser considerada expirada Expires: Thu, 01 Dec 1994 16:00:00 GMT From: representa geralmente o endereço de email do utilizador que acede a determinada página From: nuno.fonseca@estgoh.ipc.pt Host: o endereço da máquina a que se pretende aceder Host: www.estgoh.ipc.pt (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 15

Cabeçalhos (headers) (cont.) Alguns dos headers mais utilizados (cont.) Last-Modified: Indica a data em que ocorreu a última modificação ao recurso que se pretende aceder Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT Referer: Indica o endereço da página a partir da qual foi feito o pedido actual Referer: http://www.xpto.pt/index.html Server: Indica informação sobre o software que responde como servidor Server: CERN/3.0 libwww/2.17 User-Agent: fornece informação sobre a aplicação (geralmente um browser) que está a aceder a determinado recurso. User-Agent: CERN-LineMode/2.15 libwww/2.17b3 (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 16

Cabeçalhos (headers) (cont.) Em http://en.wikipedia.org/wiki/list_of_http_header_fields poderá encontrar a lista completa dos cabeçalhos do protocolo HTTP 1.1 (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 17

Corpo da mensagem Por vezes é enviada uma mensagem a seguir aos cabeçalhos Nos request este corpo de mensagem é usado aquando da submissão de informação (uso de formulários, por exemplo) Já no caso dos response é usado acima de tudo para transportar os dados do servidor para o cliente (HTML, imagens, etc.) Geralmente quando uma mensagem inclui corpo de mensagem, é usual incluir cabeçalhos que descrevam o corpo da mensagem em questão: Content-Type: o MIME-type do conteúdo (text/html, image/gif, etc.) Content-Length: o número em bytes do corpo da mensagem (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 18

Outros métodos HEAD É semelhante ao GET, no entanto, é apenas usado para obter o valor dos cabeçalhos. Não deverá existir nunca corpo de mensagem no pedido A resposta também não irá conter corpo de mensagem, apenas cabeçalhos Utilizado principalmente pelos mecanismos de caching HEAD / HTTP/1.1 Host: www.google.com (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 19

Outros métodos POST Usado em situações em que é necessário enviar informação do cliente para o servidor Um request POST é diferente de um request GET nomeadamente no que diz respeito a: É sempre usado o corpo da mensagem O headercontent-type tem geralmente o valor application/x-www-formurlencoded POST /path/script.cgi HTTP/1.1 From: frog@jmarshall.com User-Agent: HTTPTool/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 32 home=cosby&favorite+flavor=flies (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 20

Para falar directamente com um web server, basta fazer telnet www.omeuservidor.com 80 e posteriormente enviar os pedidos HTTP pretendidos (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 21