Protocolo HTTP

Protocolo HTTP

Apresentação para o mini-curso de protocolo HTTP ministrado na Faculdade Evangélica de Brasília

054d9fa364a9f7db6985df0645b21b42?s=128

Gilson Filho

June 06, 2017
Tweet

Transcript

  1. PROTOCOLO

  2. COMO NOS COMUNICAMOS?

  3. None
  4. COMO ENTENDER O QUE ESTÁ SENDO COMUNICADO?

  5. asdlkj) (*KJH*&HGF% &ḦGhgf ?

  6. AMBOS PRECISAM USAR O MESMO TIPO DE COMUNICAÇÃO

  7. Olá! Tudo bem? Estou bem Obrigado!

  8. HTTP HYPERTEXT TRANSFER PROTOCOL

  9. “ Um utilizado para sistemas de informação de , distribuídos

    e colaborativos. Ele é a base para a comunicação de dados da . protocolo de comunicação hipermídia World Wide Web Fonte: Wikipedia
  10. Um protocolo de comunicação por hipertexto usando arquitetura cliente/servidor

  11. Hipertexto é um texto que agrega outras informações como outros

    textos, imagens, etc.
  12. Usado para comunicação entre navegadores e servidores

  13. No caso da web ele é representado por um .

    hiperlink
  14. TODA COMUNICAÇÃO NO HTTP É POR MEIO DE MENSAGENS

  15. Quero a página do Google CLIENTE ENVIA A MENSAGEM

  16. Entendi. Tome a página SERVIDOR RECEBE A MENSAGEM E RESPONDE

  17. Requisição é o que o cliente envia para o servidor

  18. Resposta é o que o servidor envia ao cliente

  19. None
  20. None
  21. HTTP É STATELESS

  22. None
  23. Quando faz uma requisição você solicita um recurso

  24. URI UNIVERSAL RESOURCE IDENTIFIER

  25. Não é URL que você quis dizer?

  26. Não é URL que você quis dizer? Não, é URI

    mesmo?
  27. URI = URL + URN URL = Universal Resource Locator

    URN = Universal Resource Name
  28. None
  29. HTTP ESTRUTURA DAS MENSAGENS

  30. REQUISIÇÃO

  31. RESPOSTA

  32. None
  33. HEADERS INFORMACOES DA MENSAGEM

  34. ACESSANDO O GOOGLE curl -v http://google.com

  35. * Connected to google.com (200.175.224.80) port 80 (#0) GET /

    HTTP/1.1 Host: google.com User-Agent: curl/7.47.1 Accept: */*
  36. HTTP/1.1 302 Found Cache-Control: private Content-Type: text/html; charset=UTF-8 Location: http://www.google.com.br/?gfe_rd=cr&ei=DZnaV9TcIMmm8wf22o3ABA

    Content-Length: 262 Date: Thu, 15 Sep 2016 12:50:21 GMT <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>302 Moved</TITLE></HEAD><BODY> <H1>302 Moved</H1> The document has moved <A HREF="http://www.google.com.br/?gfe_rd=cr&ei=DZnaV9TcIMmm8wf22o3ABA">here</A>. </BODY></HTML>
  37. Existem headers para uso na requisição e na resposta

  38. http://bit.ly/1B1ZAdN Request Headers

  39. http://bit.ly/1yySXwu​ Response Headers

  40. HEADERS CUSTOMIZADOS NÃO PRECISA SE LIMITAR AOS PADRÕES

  41. * Connected to google.com.br (191.33.177.34) port 80 GET / HTTP/1.1

    Host: google.com.br User-Agent: curl/7.47.1 Accept: */*
  42. HTTP/1.1 301 Moved Permanently Location: http://www.google.com.br/ Content-Type: text/html; charset=UTF-8 Date:

    Thu, 15 Sep 2016 12:59:12 GMT Expires: Sat, 15 Oct 2016 12:59:12 GMT Cache-Control: public, max-age=2592000 Server: gws Content-Length: 222 X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN // Corpo da resposta
  43. Headers precedidos de X são customizados

  44. HTTP/1.1 301 Moved Permanently // Outros headers... X-XSS-Protection: 1; mode=block

    X-Frame-Options: SAMEORIGIN
  45. HTTP/1.1 200 OK Location: http://exemplo.com Content-Type: text/html; charset=UTF-8 Content-Length: 67

    X-Server-Version: 1.0.0 <h1>Corpo HTML da mensagem</h1>
  46. Por ser fora do padrão, usem com responsabilidade nas suas

    aplicações
  47. http://bit.ly/1B235Rh​ Siga a errata dos custom headers

  48. HTTP MÉTODOS

  49. GET POST DELETE PUT TRACE HEAD OPTIONS CONNECT

  50. GET POST DELETE PUT

  51. GET SOLICITA UM RECURSO

  52. GET / HTTP/1.1 Host: google.com User-Agent: curl/7.47.1 Accept: */*

  53. POST ENVIA DADOS PARA CRIAR RECURSO

  54. POST /httptutorial/methods HTTP/1.1 User-Agent: curl/7.30.0 Host: localhost:8080 Accept: */* If-modified-since:

    Tue, 07 May 2014 18:12:00 GMT Content-Type: application/x-www-form-urlencoded Content-Length: 41 Nome=Carlos&Idade=28&Curso=Administracao
  55. PUT ATUALIZA O RECURSO SOLICITADO

  56. PUT /httptutorial/methods/12 HTTP/1.1 User-Agent: curl/7.30.0 Host: localhost:8080 Accept: */* If-modified-since:

    Tue, 07 May 2014 18:12:00 GMT Content-Type: application/x-www-form-urlencoded Content-Length: 41 Nome=Carlos&Idade=28&Curso=Administracao
  57. DELETE REMOVE O RECURSO SOLICITADO

  58. DELETE /httptutorial/methods/12 HTTP/1.1 User-Agent: curl/7.30.0 Host: localhost:8080 Accept: */*

  59. http://bit.ly/1ugUXbc​ Explicação resumida sobre os métodos

  60. HTTP STATUS CODE

  61. HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Content-Length: 28 Date: Tue, 02

    Dec 2014 19:17:21 GMT <h1>Request Recebido!</h1>
  62. HTTP/1.1 200 OK

  63. HTTP/1.1 200 OK Status Code

  64. HTTP/1.1 200 OK Rease Phrase

  65. Status Code 00 OK 2 O primeiro dígito define uma

    classe de resposta
  66. Existem cinco classes

  67. Indica uma resposta provisória 1xx - Informativa http://bit.ly/1D3FggM

  68. Indica que a ação solicita foi aceita e processada pelo

    servidor 2xx - Sucesso http://bit.ly/1wWZC85​
  69. Indica que a ação deve ser levado ao cliente 3xx

    - Redirecionamento http://bit.ly/12npUmx​
  70. Indica que ocorreu um erro na ação do cliente 4xx

    - Erro do Cliente http://bit.ly/1Ga6JeZ​
  71. Indica outros tipos de erros encontrados no servidor 5xx -

    Outros erros http://bit.ly/1Ga6JeZ​
  72. STATUS CODE CÓDIGOS DE STATUS MAIS CONHECIDOS

  73. None
  74. None
  75. None
  76. None
  77. None
  78. None
  79. None
  80. None
  81. None
  82. None
  83. None
  84. None
  85. HTTP COOKIES

  86. São dados enviados pelo website para o browser do cliente

    no momento do seu acesso.
  87. None
  88. None
  89. Chave Valor

  90. VAMOS VER TUDO ISSO NA PRÁTICA?

  91. HTTP ESPECIFICAÇÕES

  92. (Alterado em Junho/2014) HTTP - RFC 2656 7230-7237 até http://tools.ietf.org/html/7230

    http://tools.ietf.org/html/7237
  93. URI - RFC 1738 e 3986 e http://tools.ietf.org/html/1738 http://tools.ietf.org/html/3986​

  94. COOKIES - RFC 2965 http://tools.ietf.org/html/2965

  95. MAIS INFORMAÇÕES https://pt.wikipedia.org/wiki/Hypertext_Transfer_Protocol​

  96. DÚVIDAS?

  97. Obrigado!