SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
HTTP
Noções
Fábio Nogueira de Lucena
Instituto de Informática (UFG)
O que é HTTP?
HyperText Transfer Protocol
Comunicação na Web existe como a
conhecemos por meio do uso do protocolo
HTTP.
Ferramentas e serviços
● Chrome (navegador e chrome://net-internals/)
● Efetuar/acompanhar requisição/resposta
○ POSTMAN (https://www.getpostman.com/)
○ curl (http://curl.haxx.se)
○ OWASP Zap (https://goo.gl/Y6oWy)
● Editor
○ Brackets (http://brackets.io/)
○ Plunker (http://plnkr.co)
● Testes
○ https://httpbin.org/
○ http://requestb.in/
● Imagens (http://www.coolclips.com)
● Certificado (https://www.sslchecker.com/csr/self_signed)
Componentes
URL
Método (GET, POST, …)
Requisição (mensagem)
Resposta (mensagem)
Códigos de status
Headers (campos)
MIME Types
URL
Uniform Resource Locator
Sequência de caracteres que identifica um
recurso na internet
Exemplos
http://www.inf.ufg.br
http://www.w3.org
URL (detalhes)
https://www.google.com/search?q=ufg
Protocolo (scheme): https
Domínio (servidor): www.google.com
Path: search
Query String: q=ufg
Métodos
Também conhecidos por “verbos”
Representa a operação que se deseja realizar
com o recurso identificado pela URL
Métodos:
GET, POST, PUT, HEAD, DELETE, OPTIONS,
TRACE e CONNECT.
Métodos
GET recuperar recurso
POST enviar/ocultar dados
HEAD apenas cabeçalho de GET
OPTIONS métodos para um dado recurso
PUT criar um recurso
DELETE remover um recurso
TRACE recebe o que é enviado
Códigos de status
Detalhes em
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
1xx => informações, 100 => Continua
2xx => OK
3xx => redirecionamento
4xx => requisição não autorizada
5xx => erro do servidor
Campos do cabeçalho (header fields)
Accept: text/plain
(conteúdo que é aceitável como resposta)
Content-Type: text/plain
(formato do conteúdo do corpo)
MIME Types
Contenty-Type: text/html; charset=UTF-8
Exemplos de MIME-Types:
application/json
image/png
text/html
...
GET (http://www.inf.ufg.br)
Google Chrome [Control+Shift+I (Network)]
Advanced REST Client
curl (curl.haxx.se) [1/3]
curl --help
curl http://cnn.com
(não é o retorno que é exibido?!)
curl http://cnn.com -i
(me envie os headers)
curl http://www.cnn.com (sem retorno?)
curl http://www.cnn.com -i (mostre headers)
curl http://edition.cnn.com (vem o portal…)
Alguma prática com curl [2/3]
curl http://cnn.com -i
301 Moved => http://www.cnn.com
curl http://www.cnn.com -i
302 Found => http://edition.cnn.com
curl http://edition.cnn.com -i
200 OK
curl http://cnn.com -i --location
Executa os três passos anteriores!
GET (http://www.inf.ufg.br)
Fiddler
Resposta (http://www.inf.ufg.br)
Fiddler
(http://www.telerik.com/download/fiddler)
Considerações finais
HTTP é a base da comunicação na web.
Você agora já deve se sentir mais confiante
para aprofundar em algumas questões!

Mais conteúdo relacionado

Semelhante a HTTP: Um Curso Básico

Desenvolvimento Ágil de Aplicações Web com Python e Django
Desenvolvimento Ágil de Aplicações Web com Python e DjangoDesenvolvimento Ágil de Aplicações Web com Python e Django
Desenvolvimento Ágil de Aplicações Web com Python e DjangoMatheus Pereira
 
Testes de desempenho do WordPress através do uso de ferramentas de software l...
Testes de desempenho do WordPress através do uso de ferramentas de software l...Testes de desempenho do WordPress através do uso de ferramentas de software l...
Testes de desempenho do WordPress através do uso de ferramentas de software l...pichiliani
 
REST - The right way
REST - The right wayREST - The right way
REST - The right waysantosluis87
 
“E agora, qual a extensão do meu problema? O tradutor e as ferramentas"
“E agora, qual a extensão do meu problema? O tradutor e as ferramentas"“E agora, qual a extensão do meu problema? O tradutor e as ferramentas"
“E agora, qual a extensão do meu problema? O tradutor e as ferramentas"Pricila Reis Franz
 
“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web Hacking“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web HackingConviso Application Security
 
Introdução aos Servlets e JSPs
Introdução aos Servlets e JSPsIntrodução aos Servlets e JSPs
Introdução aos Servlets e JSPsLuiz Ricardo Silva
 
Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Ricardo Terra
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScriptCarlos Santos
 
PHP e Ajax com XAJAX
PHP e Ajax com XAJAXPHP e Ajax com XAJAX
PHP e Ajax com XAJAXRafael Dohms
 
PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09Felipe Ribeiro
 
PHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkPHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkRafael Dohms
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonIgor Sobreira
 
Construindo APIs RESTful com Spring
Construindo APIs RESTful com SpringConstruindo APIs RESTful com Spring
Construindo APIs RESTful com SpringMateus Malaquias
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIComunidade NetPonto
 
PHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkPHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkRafael Dohms
 

Semelhante a HTTP: Um Curso Básico (20)

Desenvolvimento Ágil de Aplicações Web com Python e Django
Desenvolvimento Ágil de Aplicações Web com Python e DjangoDesenvolvimento Ágil de Aplicações Web com Python e Django
Desenvolvimento Ágil de Aplicações Web com Python e Django
 
Como funciona a internet
Como funciona a internetComo funciona a internet
Como funciona a internet
 
Testes de desempenho do WordPress através do uso de ferramentas de software l...
Testes de desempenho do WordPress através do uso de ferramentas de software l...Testes de desempenho do WordPress através do uso de ferramentas de software l...
Testes de desempenho do WordPress através do uso de ferramentas de software l...
 
REST - The right way
REST - The right wayREST - The right way
REST - The right way
 
“E agora, qual a extensão do meu problema? O tradutor e as ferramentas"
“E agora, qual a extensão do meu problema? O tradutor e as ferramentas"“E agora, qual a extensão do meu problema? O tradutor e as ferramentas"
“E agora, qual a extensão do meu problema? O tradutor e as ferramentas"
 
“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web Hacking“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web Hacking
 
Introdução aos Servlets e JSPs
Introdução aos Servlets e JSPsIntrodução aos Servlets e JSPs
Introdução aos Servlets e JSPs
 
Mashups: Criando Valor na Web 2.0 (BandTec)
Mashups: Criando Valor na Web 2.0 (BandTec)Mashups: Criando Valor na Web 2.0 (BandTec)
Mashups: Criando Valor na Web 2.0 (BandTec)
 
Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript
 
PHP e Ajax com XAJAX
PHP e Ajax com XAJAXPHP e Ajax com XAJAX
PHP e Ajax com XAJAX
 
PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09
 
Cliente Servidor
Cliente ServidorCliente Servidor
Cliente Servidor
 
PHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkPHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao Framework
 
Protocolo Http
Protocolo HttpProtocolo Http
Protocolo Http
 
Django - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com PythonDjango - Desenvolvimento web ágil com Python
Django - Desenvolvimento web ágil com Python
 
Construindo APIs RESTful com Spring
Construindo APIs RESTful com SpringConstruindo APIs RESTful com Spring
Construindo APIs RESTful com Spring
 
Modern PHP
Modern PHPModern PHP
Modern PHP
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web API
 
PHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkPHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao Framework
 

Mais de Fábio Nogueira de Lucena

Jornada Goiana em Engenharia de Software 2017
Jornada Goiana em Engenharia de Software 2017Jornada Goiana em Engenharia de Software 2017
Jornada Goiana em Engenharia de Software 2017Fábio Nogueira de Lucena
 
Engenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógicoEngenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógicoFábio Nogueira de Lucena
 
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Fábio Nogueira de Lucena
 

Mais de Fábio Nogueira de Lucena (20)

CSS
CSSCSS
CSS
 
Fundamentos de Programação Front-End
Fundamentos de Programação Front-EndFundamentos de Programação Front-End
Fundamentos de Programação Front-End
 
JavaScript: Aprendendo a programar
JavaScript: Aprendendo a programarJavaScript: Aprendendo a programar
JavaScript: Aprendendo a programar
 
HTML5: Primeiros Contatos (visão geral)
HTML5: Primeiros Contatos (visão geral)HTML5: Primeiros Contatos (visão geral)
HTML5: Primeiros Contatos (visão geral)
 
Apresentacao curso-2017-08-08
Apresentacao curso-2017-08-08Apresentacao curso-2017-08-08
Apresentacao curso-2017-08-08
 
Jornada Goiana em Engenharia de Software 2017
Jornada Goiana em Engenharia de Software 2017Jornada Goiana em Engenharia de Software 2017
Jornada Goiana em Engenharia de Software 2017
 
Arquétipos
ArquétiposArquétipos
Arquétipos
 
Introducao integracao
Introducao integracaoIntroducao integracao
Introducao integracao
 
Healthdb Visão Geral
Healthdb Visão GeralHealthdb Visão Geral
Healthdb Visão Geral
 
Engenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógicoEngenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógico
 
Arquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADAArquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADA
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Arquitetura software
Arquitetura softwareArquitetura software
Arquitetura software
 
Prontuário Eletrônico do Paciente
Prontuário Eletrônico do PacienteProntuário Eletrônico do Paciente
Prontuário Eletrônico do Paciente
 
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
 
Introducao
IntroducaoIntroducao
Introducao
 
Uml
UmlUml
Uml
 
Como desenvolver-software
Como desenvolver-softwareComo desenvolver-software
Como desenvolver-software
 
Orientação a Objetos (3)
Orientação a Objetos (3)Orientação a Objetos (3)
Orientação a Objetos (3)
 
Orientação a Objetos (2)
Orientação a Objetos (2)Orientação a Objetos (2)
Orientação a Objetos (2)
 

HTTP: Um Curso Básico