tópicos de sistemas de informação a

25
Tópicos de Sistemas de Informação A Carlos Oberdan Rolim Ciência da Computação

Upload: brennan-stephenson

Post on 03-Jan-2016

17 views

Category:

Documents


0 download

DESCRIPTION

Tópicos de Sistemas de Informação A. Carlos Oberdan Rolim Ciência da Computação. HTTP (Hypertext Transfer Protocol). Histórico. Panorama do final da década de 80 Grande quantidade de mails Inicio de documentos contendo hyperlinks Versão HTTP/0.9 Em torno de 1990 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Tópicos de Sistemas de Informação A

Tópicos de Sistemas de Informação A

Carlos Oberdan Rolim

Ciência da Computação

Page 2: Tópicos de Sistemas de Informação A

HTTP

(Hypertext Transfer Protocol)

Page 3: Tópicos de Sistemas de Informação A

Histórico

Panorama do final da década de 80

Grande quantidade de mails

Inicio de documentos contendo hyperlinks

Versão HTTP/0.9

Em torno de 1990

Transferencia exclusiva de textos

Somente possuia método GET

Page 4: Tópicos de Sistemas de Informação A

Histórico

Versão HTTP/1.0

Desenvolvida entre 1992-1996

RFC 1945

Supriu a necessidade de transferir apenas texto

Passou a transferir mensagens do tipo MIME44 (Multipurpose Internet Mail Extension)

Implementação dos métodos POST e HEAD

Versão HTTP/1.1

RFC 2616 publicada em 19999

Conexões persistentes

Uso de servidors proxy

Novos métodos

Versão utilizada atualmente

Page 5: Tópicos de Sistemas de Informação A

Arquitetura

Protocolo de aplicação de uso genérico

O pedido é feito em ASCII e a resposta é do tipo MIME (RFC 822 e RFCs 2045, 2046, 2047, 2048, 2049)

O protocolo não necessita de manutenção de estado associado aos pedidos dos clientes (stateless)

Servidor recebe pedidos em TCP/IP no porto 80 (normalmente)

Pedido HTTP (GET …)

Resposta MIME

servidor

Page 6: Tópicos de Sistemas de Informação A

Arquitetura

Papel do cliente

Efetuar as requisições para o servidor seguindo os padrões definidos pelo protocolo

Receber a resposta, interpreta-la e apresentar ao usuário

Pode implementar mecanismos de cache

Page 7: Tópicos de Sistemas de Informação A

Arquitetura

Papel do servidor

Servidor recebe a requisição

A configuração do servidor determina se a requisição é a um documento estático ou gerado dinâmicamente por uma aplicação ( por exemplo um CGI)

Se for um documento gerado dinamicamente servidor executa a aplicação e recebe a resposta da execução

Documentos estáticos podem possuir “server side includes”

Servidor retorna resposta ao cliente juntamente com cabeçalhos de resposta

Pode implementar mecanismos de cache

Page 8: Tópicos de Sistemas de Informação A

Sintaxe do protocolo

Pedido HTTP

Sintaxe

<Request-URI>

Path absoluto relativamente à raiz do servidor Web, ou

URI (URL) absoluto.

Exemplo

<COMMAND> <Request-URI> HTTP/1.X <crlf>{ <Header>: <Value> <crlf>}+<crlf>[<data>]

GET /index.html HTTP/1.1Accept: */* (outros exemplos: text/plain; text/html; image/gif )User-Agent: Mozilla4.0 (compatible; MSIE 5.0; Windows NT 5.0)Host: www.san.uri.brFrom: [email protected] * uma linha em branco *

Page 9: Tópicos de Sistemas de Informação A

Sintaxe do protocolo

Resposta HTTP

Sintaxe

Exemplo

HTTP/1.X <result-code> [<message>] <crlf>{ <Header>: <Value> <crlf>}+<crlf>[<data>]

HTTP/1.1 200 OKDate: Wednesday, 02-Feb-98 15:04:12 GMTServer: Apache1.3.6 (Unix) (Red Hat Linux)MIME-version: 1.0Last-modified: Monday, 15-Nov-93 23:33:16 GMTContent-type: text/htmlContent-length: 2345 * linha em branco *<HTML><HEAD><TITLE> . . . </TITLE> . . .etc.

Page 10: Tópicos de Sistemas de Informação A

Métodos HTTP

GET

obtém dados do recurso especificado

POST

envia dados ao servidor

HEAD

solicita apenas o cabeçalho HTTP

PUT

especifica que o corpo que está sendo enviado é para ser escrito na URL (inverso de GET)

Métodos

mais

utilizados

Page 11: Tópicos de Sistemas de Informação A

Métodos HTTP

DELETE

remove um recurso

TRACE

Usado para testes e diagnósticos

CONNECT:

Reservado para uso por proxies

OPTIONS

retorna quais métodos são suportados para um documento no servidor

Page 12: Tópicos de Sistemas de Informação A

Códigos de resposta do servidor

Códigos de retorno

2XX - códigos de OK

3XX - recolocação/redireccionamento

4XX - Erro no cliente

5XX - Erro no servidor

Exemplos:

200 OK

201 Criado

204 Sem conteúdo

304 Não modificado

400 Pedido mal formado

401 Não tem autorização

501 Comando não implementado

Page 13: Tópicos de Sistemas de Informação A

Cabeçalhos MIME

Geral: informação não relacionada com a entidade a transferir

Date: Tue, 15 Nov 1994 08:12:31 GMT

MIME-Version: 1.0

Opções cliente: permite ao cliente passar informações acerca do pedido

Accept: */* ou text/plain; text/html; image/gif

User-Agent: Lynx/2.2 libwww/2.14

Range: bytes=0-499

If-Modified-Since: Thu, 25 Sep 1997 15:01:26 GMT

Cookie:EGSOFT_ID=193.137.220.2-640807376.29152144; expires=Fri, 31-Dec-1997 0:00:00 GMT;path=/

Page 14: Tópicos de Sistemas de Informação A

Cabeçalhos MIME

Resposta: informação sobre o servidor

Server: Apache/1.2b7

Content-Range: bytes=0-499/2000

Set-Cookie: EGSOFT_ID=193.137.220.2-640807376.29152144; expires=Fri, 31-Dec-1997 0:00:00 GMT;path=/

Entidade: informação sobre os dados entre cliente e servidor

Last-Modified: Thu, 25 Sep 1997 15:01:26 GMT

Content-Length: 6575

Content-Type: text/html

Expires: Thu, 25 Sep 1997 15:01:26 GMT

Page 15: Tópicos de Sistemas de Informação A

Método GET

Solicita um recurso

Corpo sempre vazio

Pedido:Pedido:GET /index.html HTTP/1.1 User-Agent: Mozilla/2.02Gold (WinNT; I...) Host: www.host.com Accept: image/gif, image/x-xbitmap, image/jpeg * a blank line *

Resposta:Resposta:HTTP/1.1 200 Document follows Date: Fri, 20 Sep 1996 08:17:58 GMT Server: NCSA/1.5.2 Last-Modified: Mon, 17 Jun 1996 21:53:08 GMT Content-Type: text/html Content-Length: 2482* a blank line *... corpo do documento ...

Page 16: Tópicos de Sistemas de Informação A

Método POSTO cliente envia dados ao servidor no pedido (no corpo)

O conteúdo do pedido é passado à aplicação que processa os dados

Pedido:Pedido:POST /cgi-bin/post-query HTTP/1.1Accept: */*User-Agent: Lynx/2.2 libwww/2.14From: [email protected]: application/x-www-form-urlencodedContent-length: 150Host: www.isel.pt

org=Academic%20Computing%20Services&users=10000&browsers=lynx&browsers=cello&browsers=mosaic&others=MacMosaic%2C%20WinMosaic&contact=Michael%20Grobe%[email protected]

Resposta: (incompleta)Resposta: (incompleta)Content-Type: text/html

<h1>Query Results</h1>You submitted the following name/value pairs:<ul><li>org = Academic Computing Services </li><li>users = 10000 </li><li>browsers = cello </li><li>browsers = lynx </li><li>browsers = xmosaic </li><li>others = Mac Mosaic, Win Mosaic </li><li>contact = Michael Grobe [email protected] </li></ul>

Page 17: Tópicos de Sistemas de Informação A

Método PUT

Similar ao POST porém PUT pode apontar para um recurso que não existe ainda (será criado ou reescrito)

Usado para publicação de páginas

Page 18: Tópicos de Sistemas de Informação A

Método HEAD

Pede de informações sobre o documento e não o documento em si.

Data da última modificação, dimensão, tipo, etc.

Corpo sempre vazio

PedidoPedido::HEAD /index.html HTTP/1.1Accept: */*Host: www.host.com* a blank line *

Resposta:Resposta:HTTP/1.1 200 OKServer: Microsoft-IIS/4.0Date: Tue, 10 Nov 1998 16:52:11 GMTContent-Type: text/htmlAccept-Ranges: bytesLast-Modified: Mon, 29 Dec 1997 01:55:11 GMTETag: "10e93cccfc13bd1:37f9"Content-Length: 2604

Page 19: Tópicos de Sistemas de Informação A

Cookies HTTP

O que são Cookies?

Mecanismo que permite a aplicações HTTP servidoras guardar e obter

informações sobre o cliente.

Manutenção de informação de estado sobre o cliente.

Que informação contém um Cookie

Informação sobre o estado do cliente na forma de um par nome=valor

‘Range’ de URLs para o qual o estado é válido

Data de validade (para o caso de Cookies persistentes)

Page 20: Tópicos de Sistemas de Informação A

Cookies HTTP

Sintaxe do header set-cookie na resposta HTTP

Exemplo:

Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/; expires=Wednesday, 09-May-1999 23:00:00 GMT

Sintaxe do header cookie no pedido HTTP

Exemplo:

Cookie: CUSTOMER=WILE_E_COYOTE

Set-Cookie: {<NAME>=<VALUE>;}+ [expires=<DATE>;] Set-Cookie: {<NAME>=<VALUE>;}+ [expires=<DATE>;] [path=<PATH>;] [domain=<DOMAIN_NAME>;] [secure][path=<PATH>;] [domain=<DOMAIN_NAME>;] [secure]

<DATE> Wdy, DD-Mon-YYYY HH:MM:SS GMT

Cookie: {<NAME>=<VALUE>;}+Cookie: {<NAME>=<VALUE>;}+

Page 21: Tópicos de Sistemas de Informação A

HTTPS

(Hypertext Transfer Protocol Secure)

Page 22: Tópicos de Sistemas de Informação A

HTTPS

Implementação do HTTP sobre uma camada SSL (Secure Sockets Layer) ou TLS (Transport Layer Security)

Dados transmitidos de forma criptografada através da negociação de uma chave publica gerada aleatóriamente no inicio da sessão

Criptografia ocorre na camada de transporte

Porta padrão TCP/443

URLs do tipo: https://

Page 23: Tópicos de Sistemas de Informação A

HTTPS

HTTPS

SSL

TCP

Page 24: Tópicos de Sistemas de Informação A

Client Browser Web Server

TCPConnect

SSLConnect

HTTPS GETtransaction

HTTPS

Page 25: Tópicos de Sistemas de Informação A

Exercicios

Resolver os exercicios contidos no post na página da disciplina