1 / 25

Tópicos de Sistemas de Informação A

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

Download Presentation

Tópicos de Sistemas de Informação A

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. HTTP (Hypertext Transfer Protocol)

  3. 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

  4. 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

  5. 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) servidor Cliente http Servidor Http Pedido HTTP (GET …) Resposta MIME

  6. 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

  7. 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

  8. 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.1 Accept: */* (outros exemplos: text/plain; text/html; image/gif ) User-Agent: Mozilla4.0 (compatible; MSIE 5.0; Windows NT 5.0) Host: www.san.uri.br From: ober@san.uri.br * uma linha em branco *

  9. Sintaxe do protocolo • Resposta HTTP • Sintaxe • Exemplo HTTP/1.X <result-code> [<message>] <crlf> { <Header>: <Value> <crlf>}+ <crlf> [<data>] HTTP/1.1 200 OK Date: Wednesday, 02-Feb-98 15:04:12 GMT Server: Apache1.3.6 (Unix) (Red Hat Linux) MIME-version: 1.0 Last-modified: Monday, 15-Nov-93 23:33:16 GMT Content-type: text/html Content-length: 2345 * linha em branco * <HTML><HEAD><TITLE> . . . </TITLE> . . .etc.

  10. Métodos HTTP Métodos mais utilizados • 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)

  11. 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

  12. 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

  13. 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=/

  14. 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

  15. Método GET • Solicita um recurso • Corpo sempre vazio 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 ... 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 *

  16. Método POST • O cliente envia dados ao servidor no pedido (no corpo) • O conteúdo do pedido é passado à aplicação que processa os dados Pedido: POST /cgi-bin/post-query HTTP/1.1 Accept: */* User-Agent: Lynx/2.2 libwww/2.14 From: grobe@www.cc.ukans.edu Content-type: application/x-www-form-urlencoded Content-length: 150 Host: www.isel.pt org=Academic%20Computing%20Services &users=10000 &browsers=lynx &browsers=cello &browsers=mosaic &others=MacMosaic%2C%20WinMosaic &contact=Michael%20Grobe%20grobe@kuhub.cc.ukans.edu 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 grobe@kuhub.cc.ukans.edu </li> </ul>

  17. 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

  18. 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 Resposta: HTTP/1.1 200 OK Server: Microsoft-IIS/4.0 Date: Tue, 10 Nov 1998 16:52:11 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Mon, 29 Dec 1997 01:55:11 GMT ETag: "10e93cccfc13bd1:37f9" Content-Length: 2604 Pedido: HEAD /index.html HTTP/1.1 Accept: */* Host: www.host.com * a blank line *

  19. 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)

  20. 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>;] [path=<PATH>;] [domain=<DOMAIN_NAME>;] [secure] <DATE>  Wdy, DD-Mon-YYYY HH:MM:SS GMT Cookie: {<NAME>=<VALUE>;}+

  21. HTTPS (Hypertext Transfer Protocol Secure)

  22. 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://

  23. HTTPS HTTPS SSL TCP

  24. HTTPS Client Browser Web Server TCP Connect SSL Connect HTTPS GET transaction

  25. Exercicios • Resolver os exercicios contidos no post na página da disciplina

More Related