1 / 31

HTTP ( HyperText Transfer Protocol )

Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia em Redes de Computadores Unidade curricular Redes de Computadores III. HTTP ( HyperText Transfer Protocol ). Professor Eduardo Maroñas Monks. SUMÁRIO. Histórico Funcionalidades Protocolo Aplicações Segurança

violet
Download Presentation

HTTP ( HyperText Transfer Protocol )

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. Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia em Redes de Computadores Unidade curricular Redes de Computadores III HTTP (HyperText Transfer Protocol) Professor Eduardo Maroñas Monks

  2. SUMÁRIO • Histórico • Funcionalidades • Protocolo • Aplicações • Segurança • Referências Bibliográficas Prof. Eduardo M. Monks - Redes de Computadores III 2

  3. Histórico • Décadas de 70 e 80 • A Internet era usada somente para pesquisas acadêmicas • Basicamente, a rede era usada para acesso remoto, transferência de arquivos e troca de e-mails • Final dos anos 80 e início da década de 90 • Propostas iniciais da arquitetura do WWW (World Wide Web) por Tim Berners-Lee em 1989 • Sistemas existentes para acesso e procura de documentos disponíveis na época: Gopher, Archie, WAIS (Wide Area Information Servers) e outros • Todos estes sistemas foram substituídos pelo WWW • Crescimento exponencial do WWW nos anos 90 • 1991: primeiro navegador Web e servidor de páginas • 1993: primeira versão do navegador Mosaic (Pai do Netscape e avô do Firefox...) Exemplo de uso de serviços com o protocolo Gopher http://www.quux.org:70/Software/Gopher/servers Prof. Eduardo M. Monks - Redes de Computadores III 3

  4. Histórico • WWW (World Wide Web) • É uma arquitetura que envolve protocolos, linguagens de apresentação e serviços para acesso universal a informações. • Definição do W3C (World Wide Web Consortium) para o WWW: • “O WWW é o universo de informações acessíveis pela rede, uma representação concreta do conhecimento humano”. • As características do WWW são: • Hypertexto • Interface gráfica • Dados Multímidia • Rapidez na divulgação das informações • Acesso imediato e universal a informação • Democracia na autoria do conteúdo (Blogs, Wiki...) • Facilidade na procura das informações (Google) Prof. Eduardo M. Monks - Redes de Computadores III 4

  5. Histórico • Componentes do WWW (World Wide Web) • Protocolo HTTP (Hypertext Transfer Protocol) • Responsável pelas mensagens de requisição e resposta entre clientes e servidores • RFC: http://www.w3.org/Protocols/rfc2616/rfc2616.html • Clientes • Responsáveis pela interação do usuário para acesso aos dados disponibilizados • Servidores • Responsáveis por disponibilizar os arquivos e por gerar conteúdo dinâmico por meio de linguagens de programação • Linguagem HTML (Hypertext Markup Language) • Linguagem interpretada e renderizada nos clientes gráficos que possibilita conteúdo multimídia Prof. Eduardo M. Monks - Redes de Computadores III 5

  6. Histórico • Evolução do Protocolo HTTP • HTTP/0.9 (http://www.w3.org/Protocols/HTTP/AsImplemented.html) • Definido em 1991 • Versão inicial (protótipo) com falhas no projeto do protocolo • Suporte somente para o método GET • Sem suporte ao MIME • Projetado para interagir com arquivos HTML • HTTP/1.0 (http://www.ietf.org/rfc/rfc1945.txt) • Primeira versão amplamente utilizada • Suporte a objetos multimídia, métodos adicionais e cabeçalhos HTTP • Possibilitou o uso de formulários interativos (métodos POST e PUT) • Não havia uma especificação formal do protocolo, somente melhores práticas para desenvolvê-lo, a RFC 1945 só veio em 1996! • Uso acadêmico e comercial Prof. Eduardo M. Monks - Redes de Computadores III 6

  7. Histórico • HTTP/1.0+ • Foram “gambiarras” criadas durante a década de 90 por desenvolvedores de clientes e servidores de HTTP para melhorar o protocolo • As melhorias foram extra-oficiais: conexões persistentes, suporte a hosts virtuais e conexões a proxies • HTTP/1.1 (http://www.faqs.org/rfcs/rfc2616.html) • Versão atual do protocolo (RFC 2616) • Melhorias no projeto do protocolo • Introdução de melhorias em desempenho e otimizações de funcionalidades • Suporte a aplicações mais sofisticadas Key Differences between HTTP/1.0 and HTTP/1.1 - http://www8.org/w8-papers/5c-protocols/key/key.html Prof. Eduardo M. Monks - Redes de Computadores III 7

  8. Funcionalidades • URL • Sintaxe: • <scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag> • Exemplos: http://www.joes-hardware.com:80/index.html http://161.58.228.45:80/index.html ftp://anonymous:my_passwd@ftp.prep.ai.mit.edu/pub/gnu http://joe:joespasswd@www.joes-hardware.com/sales_info.txt http://www.joes-hardware.com/tools.html#drills http://www.diariopopular.com.br/site/content/esporte/index.php?id=4 Prof. Eduardo M. Monks - Redes de Computadores III 8

  9. Funcionalidades • Códigos de Estado Prof. Eduardo M. Monks - Redes de Computadores III 9

  10. Funcionalidades • Transação HTTP • Baseada em requisições (Request) e respostas (Response) • Na versão 1.1 do protocolo foi padronizada a conexão persistente para aumento de desempenho Prof. Eduardo M. Monks - Redes de Computadores III 10

  11. Funcionalidades • Servidor HTTP • Estabelece a conexão TCP com o cliente • 2.  Recebe a requisição – Lê a requisição na mensagem HTTP • 3.  Processa a requisição – interpreta a requisição e realiza a ação correspondente • 4.  Acessa o recurso – Busca o recurso solicitado na mensagem • 5.  Constrói a resposta – cria uma mensagem com os cabeçalhos HTTP de resposta     • 6.   Envia a resposta – envia a resposta para o cliente • 7.  Registra a transação – guarda em arquivo de log o registro da transação Prof. Eduardo M. Monks - Redes de Computadores III 11

  12. Funcionalidades • Cliente HTTP • São os responsáveis pela solicitação de recursos ao servidor • Método HTTP básico é o GET • Dois tipos básicos: • Modo texto (Lynx, Links, Wget, ...) • Modo gráfico (Mozilla Firefox, MS IE, Google Chrome, ...) • Um browser (navegador) é um cliente HTTP com recursos de navegação, interpretação de HTML e recursos multimídia! Componentes de um navegador Prof. Eduardo M. Monks - Redes de Computadores III 12

  13. Funcionalidades • Proxy Prof. Eduardo M. Monks - Redes de Computadores III 13

  14. Funcionalidades • Caching Prof. Eduardo M. Monks - Redes de Computadores III 14

  15. Funcionalidades • Indexadores (Crawlers) http://en.wikipedia.org/wiki/List_of_search_engines Prof. Eduardo M. Monks - Redes de Computadores III 15

  16. Protocolo • HTTP (HyperText Transfer Protocol) • Baseado em cliente/servidor • Trabalha na porta 80 e 443 utilizando o protocolo TCP como transporte • Utiliza mensagens de requisição e resposta para transferência de recursos • Mensagem em texto plano (em HTTPS as mensagens são criptografadas) • O protocolo não guarda estado (o acesso de uma URL para outra não é mantido) • Versão atual é a 1.1 (RFC 2616) Prof. Eduardo M. Monks - Redes de Computadores III 16

  17. Protocolo • Componentes  • Clientes • Enviam requisições e recebem respostas • Navegadores, Spiders e Agentes • Servidores • Recebem requisições e enviam respostas • Web servers • Proxies • Atuam com servidores para o cliente e como cliente para o servidor • Desempenha outras funções tais como registros e bloqueios de acessos, armazenamento em cache, autenticação e etc. Prof. Eduardo M. Monks - Redes de Computadores III 17

  18. Protocolo • Recursos • São quaisquer tipo de arquivo: texto, HTML, binário, PDF, vídeo (AVI, MPEG, …), Flash, Imagens, Java Script e etc… • Isto é possível devido ao MIME (Multipurpose Internet Mail Extensions) • O MIME é uma extensão que possibilita a representação de qualquer tipo de arquivo • Criado originalmente para permitir anexos em e-mail • MIME Media Types (http://www.iana.org/assignments/media-types/index.html) Prof. Eduardo M. Monks - Redes de Computadores III 18

  19. Protocolo • Alguns Métodos HTTP • GET • É o método mais comum. • Normalmente, é utilizado para solicitar ao servidor que envie um recurso. • POST • Envia dados do cliente para uma aplicação no servidor • PUT • Escreve documentos no servidor, faz o papel inverso do método GET • Normalmentre, usado para o envio de arquivos ao servidor (upload) • DELETE • Apaga um recurso no servidor • Requer autenticação. • HEAD • Semelhante ao método GET, mas o servidor responde apenas com o cabeçalho Prof. Eduardo M. Monks - Redes de Computadores III 19

  20. linha de pedido (comandos GET , POST,HEAD ) GET /somedir/page.html HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr (extra carriage return, line feed) linhas de cabeçalho Carriage return, line feed indica fim da mensagem Protocolo • Formato das mensagens • Requisição Prof. Eduardo M. Monks - Redes de Computadores III 20

  21. linha de status (protocolo código de status frase de status) HTTP/1.0 200 OK 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 ... linhas de cabeçalho dados, e.x., arquivo html Protocolo • Formato das mensagens • Resposta Prof. Eduardo M. Monks - Redes de Computadores III 21

  22. 1 4 2 Protocolo • Captura no Wireshark • Solicitação de um página HTML (1) • Solicitação de um arquivo (2) • Envio de dados em um formulário para o servidor (3) • Requisição usando o HTTPS (4) 3 Prof. Eduardo M. Monks - Redes de Computadores III 22

  23. Protocolo • HTTPS • É a forma mais comum de segurança do HTTP • Criado em 1994 pela Netscape Communications Corporation é suportado pelos mais importantes navegadores e servidores atuais • Todas as requisições e respostas de dados HTTP são criptografadas antes de serem enviadas na rede • O HTTPS provê segurança na camada de sessão por meio do SSL (Secure Sockets Layer ) ou TLS (Transport Layer Security ) que é o padrão atual • Utiliza a porta 443 e a URL com https:// Prof. Eduardo M. Monks - Redes de Computadores III 23

  24. Protocolo • HTTPS • Utiliza certificados que fornecem: • autenticidade para o servidor (o certificado deve ser válido!) • confidencialidade a comunicação • integridade aos dados Prof. Eduardo M. Monks - Redes de Computadores III 24

  25. Protocolo HTTPS x HTTP Prof. Eduardo M. Monks - Redes de Computadores III 25

  26. Fonte: http://www.netcraft.com Aplicações • Clientes e servidores de HTTP existem para a maioria dos sistemas operacionais. • É o metodo mais utilizado para acesso a informações e a serviços na Internet atual. • Versões comerciais, freeware ou de código-fonte aberto: • Clientes HTTP (Navegadores, Web Browsers) • Mozilla Firefox • MS Internet Explorer • Opera • Google Chrome • Apple Safari • Konqueror • ... • Servidores HTTP (Servidores de páginas, Web Servers) • Apache • MS IIS • Lighttpd • Nginx • ... Prof. Eduardo M. Monks - Redes de Computadores III 26

  27. servidor original Proxy server http request http request cliente http response http response http request http response cliente servidor original Aplicações • Proxy • O acesso a um servidor web é feito por meio do servidor proxy • O proxy funciona como servidor para o cliente que originou a requisição e como cliente para o servidor de destino • O endereço do proxy é configurado no cliente (navegador) • Vantagem: • Possibilita a filtragem de conteúdo • “Esconde” os hosts internos (só o endereço do proxy será visível as redes externas) Prof. Eduardo M. Monks - Redes de Computadores III 27

  28. Servidores originais Internet pública enlace de acesso 1.5 Mbps rede institucional 10 Mbps LAN cache institucional Aplicações • Web Caching • armazenamento está “perto” do cliente (ex., na mesma rede) • menor tempo de resposta • reduz o tráfego gerado Prof. Eduardo M. Monks - Redes de Computadores III 28

  29. Aplicações • Proxy/Web Caching • O mais comum é o SQUID Proxy Cache (http://www.squid-cache.org/) • Disponível para Linux, FreeBSD e até mesmo Windows (http://squid.acmeconsulting.it/) • Existem soluções comercias tais como: MS ISA Server, Websense (http://www.websense.com/) • Existem proxies abertos para burlar filtragens e possibilitar o acesso a Orkut, Twitter, Pornografia, Jogos e etc. Prof. Eduardo M. Monks - Redes de Computadores III 29

  30. Segurança • Ataques mais comuns ao WWW : • Captura de tráfego sem criptografia • Usuário e senhas de webmail são os alvos preferidos • Negação de serviço (Denial of Service) • Gerar um grande número de requisições, causando sobrecarga no servidor • Internet Denial-of-Service Considerations (http://tools.ietf.org/html/rfc4732) • Exploração de vulnerabilidades nas aplicações • Falhas nas aplicações dinâmicas que interagem com banco de dados e com o sistema operacional • Principalmente, nas aplicações que utilizam a linguagem PHP • O problema está no desenvolvedor, não na linguagem! http://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project Prof. Eduardo M. Monks - Redes de Computadores III 30

  31. Referências Bibliográficas • HTTP (W3C) - http://www.w3.org/Protocols/ • Protocolo Gopher - http://en.wikipedia.org/wiki/Gopher_%28protocol%29 • TLS - http://en.wikipedia.org/wiki/Transport_Layer_Security • MIME - http://en.wikipedia.org/wiki/MIME • GOURLEY, David et. al. HTTP: The Definitive Guide. O´Reilly, 2002 Prof. Eduardo M. Monks - Redes de Computadores III 31

More Related