1 / 38

HTTP

HTTP. Hypertext Transfer Protocol. Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães Alves (erma) Marcelo Costa Melo de Andrade (mcma). Roteiro. Visão Geral Conexões Versões Formato de mensagens Métodos

ura
Download Presentation

HTTP

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. HTTP Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães Alves (erma) Marcelo Costa Melo de Andrade (mcma)

  2. Roteiro • Visão Geral • Conexões • Versões • Formato de mensagens • Métodos • Códigos de status • HTTPS

  3. Visão Geral • Protocolo da camada de aplicação • Tipos mensagens • Sintaxe das mensagens • Semântica das mensagens • Regras de quando e como os processos enviam as mensagens

  4. Visão Geral • Web e http • Jargões • Páginas web consistem em objetos • Um objeto é qualquer coisa que tenha uma URL( Universal Resourse Locator) • www.folha.uol.com.br/folha/dinheiro/ult91u448619.shtml host caminho

  5. Visão Geral Modelo Cliente Servidor Cliente http request Servidor http response http request http response user agent

  6. Visão Geral • Usa TCP • Porta 80 • Stateless – o servidor não mantém estado sobre requisições passadas de clientes

  7. Conexões • Não-persistente • Persistente

  8. Não-persistente • No máximo um objeto é enviado pela conexão TCP • HTTP/1.0 usa HTTP não-persistente como padrão • 2 RTT – round trip time - para cada objeto • Abre sempre uma nova conexão para cada objeto

  9. Não persistente RTT Abre conexão RTT Transmissão do objeto OBJETO Abre conexão para cada objeto

  10. Persistente • Varios objetos podem ser enviados em uma mesma conexão TCP entre o cliente e o servidor. • HTTP 1.1 usa como padrão • Implementa pipeline • A conexão fecha quando sinalizada no header “Connection ” das mensagens HTTP

  11. Vantagens • Abremenosconexões TCP. • É possível implementar um pipeline sobre requisições e respostas • O congestionamento da rede é reduzido com a redução do número de pacotes para abrir as conexões • Latencia em requisições seguintes diminui, já que não será necessário abrir novas conexões

  12. Sem pipeline • Só envia próxima requisição quando a anterior tiver sido recebida. • 1 RTT para cada objeto

  13. Sem pipeline RTT OBJETO RTT OBJETO Vários objetos na mesma conexão

  14. Com pipeline • Padrão do HTTP 1.1 • Cliente envia requisições sem esperar pela resposta de cada requisição • Gasta um pouco mais que 1RTT para todos os objetos • Não deve enviar em pipeline métodos que não são idempotentes. Deve esperar pela resposta

  15. Com pipeline RTT OBJETOS Vários objetos solicitados ao mesmo tempo

  16. Versões • HTTP 0.9 – só o GET • HTTP 1.0 – RFC 1945 • HTTP 1.1 – RFC 2616

  17. HTTP 1.0 • 1996 – RFC 1945 • Usa conexão não-persistente • Possibilidade de transmissão de mensagens do tipo MIME44 (Multipurpose Internet Mail Extension) • Implementa os métodos de requisição POST e HEAD • Ainda é um protocolo bastante utilizado

  18. HTTP 1.1 • 1999 – RFC 2616 • Habilita conexão persistente com ou sem pipeline • Implementa os métodos GET, POST, HEAD, PUT, DELETE, TRACE, OPTIONS e CONNECT • Servidores Proxys, entre outras características

  19. Pergunta Há incompatibilidade entre o HTTP1.0 e o HTTP1.1?

  20. Formato das Mensagens • Mensagens do HTTP 1.1 • Especificadas em ASCII • Formato geral de uma request mensage

  21. Formato das Mensagens • Exemplo de request mensage: GET /~if738 HTTP 1.1 Host: www.cin.ufpe.br User-agent: Mozilla/4.0 Connection: close Accept-language: pt-br

  22. Formato das Mensagens • Mensagens do HTTP 1.1 • Formato geral de uma reponse mensage Version code sentence

  23. Formato das Mensagens • Exemplo de response mensage: HTTP/1.1 301 Moved Permanently Date: Thu, 23 Sep 2008 23:27:20 GMT Server: Apache Location: http://www.cin.ufpe.br/~if738/ Content-Length: 303 Connection: close Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <a href="http://www.cin.ufpe.br/~if738/">here</a>.</p> <hr> <address>Apache Ser ver at www.cin.ufpe.br Port 80</address> </body></html>

  24. Métodos • Métodos Seguros: • Get, Head • Métodos idempotentes: • Put, Delete, Options, Trace, Get e Head • Post e Connect não respeitam essas propriedades

  25. Métodos • GET • Qualquer requisição de dados especificada por uma URL • Sempre retorna entidade • conditional GET • partial GET • HEAD • Idêntico ao GET, porém sem corpo. Pode ser usado para validar hyperlink. Retorna metadados

  26. Métodos • POST • Enviar dados a serem processados no servidor. • PUT • Envia dados que serão armazenados no servidor. • Caso a operação não seja realizada o servidor não pode deixar de retorno uma mensagem da causa • HTTP1.1 não define como esse método afeta o estado do servido

  27. Métodos • DELETE • Deleta dados no servidor • As mensagem de resposta podem não ser o que parece. • TRACE • Ecoa o caminho feito pela requisição • OPTIONS • Retorna informação sobre as opções de conexão entre as partes da conexão • CONNECT • Converte a conexão para TCP/Tunnel transparente. Facilita o uso do criptografia SSL

  28. Diferença entre POST e PUT • A principal diferença entre o POST e o PUT está no significado do URI - Identificador Uniforme de Recursos - da requisição. • POST – identifica um recurso que irá manipular o objeto enviado • PUT – identifica o próprio objeto enviado

  29. Códigos de Resposta • Ao responder uma requisição do cliente, o servidor envia um código de resposta • Constituído por numeros • Segue um padrão

  30. Padrão de resposta • 1XX – informativo • 2XX – sucesso • 3XX – redirecionamento • 4XX – erros no cliente • 5XX – erros no servidor

  31. Exemplos • 200 OK • A resposta segue com o objeto requisitado • 302 Found • Cliente pega o campo “Location” do header que informa a URI para o qual o recurso foi direcionado • 301 Moved Permanently • Redirecionamento permanente de URI

  32. Exemplos • 304 Not Modified • Para uso de caching. Informa que não teve alteração desde a ultima requisição • 401 Unauthourized • é possível acessar o recurso apenas por meio de autenticação • 403 Forbidden • Não é possível acessar o recurso, mesmo usando autenticação

  33. Exemplos • 404 Not Found • O recurso está temporariamente indisponível ou realmente não exista • 500 Internal Server Error • Algo inesperado aconteceu no servidor (???) • 503 Service Unavailable • Temporariamente indisponível. Manutenção ou sobrecarga

  34. HTTPS • Implementação de HTTP sobre uma camada SSL • Usado no comércio online/operações bancárias e clientes de email • Permite que os dados sejam transmitidos por uma conexão criptografada • Verifica autenticidade usando certificados digitais

  35. HTTPS

  36. SSL HANDSHAKE

  37. Referencias • Redes De Computadores E A Internet - James F Kurose • http://www.w3.org/Protocols/ • www.UFRJ.br

  38. ?

More Related