SlideShare ist ein Scribd-Unternehmen logo
1 von 153
Downloaden Sie, um offline zu lesen
Desconstruindo a web
Willian Molinari (a.k.a PotHix)
Aviso
Willian Molinari
a.k.a PotHix
Plaev
.github.io
Porque dessa talk?
https://www.youtube.com/watch?v=nG1oGfrDiUc
https://www.youtube.com/watch?v=nG1oGfrDiUc
Essa talk se baseia em
Internet
Internet
The dawn of the net
Internet
http://pothix.com
http://pothix.com
http://pothix.com
http://pothix.com
http://pothix.com
É uma URL?
http://pothix.com
“O que significa PotHix”
“O que significa PotHix”
http://pothix.com
É uma URL!
http://pothix.com
http://pothix.com
http://pothix.com
Tem HSTS?
Strict-Transport-Security
http://pothix.com
Tem cache?
Expires Cache-Control
http://pothix.com
Protocolo: http://
Domínio: pothix.com
Path: /
Tem cache de
DNS?
Chrome
Faz cache de DNS
http://aosabook.org/en/posa/high-performance-networking-in-chrome.html
getaddrinfo()
sistema
operacional
glibc
I’m watching you!
n
u
glibc -> /etc/hosts
nss/nss_files/files-hosts.c
glibc -> getaddrinfo()
sysdeps/posix/getaddrinfo.c
2321 getaddrinfo (const char *name, const char *service,
2322 const struct addrinfo *hints, struct addrinfo **pai)
2323 {
getaddrinfo()
Tem nscd para
cache de DNS?
Internet
- glibc
POSIX
Aplicação
Apresentação
Sessão
Transporte
Rede
Enlace
Físico
Modelo
OSI
Aplicação
Apresentação
Sessão
Transporte
Rede
Enlace
Físico
Modelo
OSI
S
R
L
Y
?
Aplicação
Transporte
Rede
Enlace
Físico
Sessão
Apresentação
Aplicação
Transporte
Rede
Enlace
Físico
Aplicação
Transporte
Rede
Enlace
Físico
SO
user
TCP / UDP
DNSAplicação
Transporte
Rede
Enlace
Físico
IP
Ethernet / Wi-Fi
010101001011
DNS
TCP / UDP
Aplicação
Transporte
Rede
Enlace
Físico
IP
Ethernet / Wi-Fi
010101001011
código disponível em: chromium/src/net/dns
getaddrinfo()
__socket() & __connect()
sysdeps/posix/getaddrinfo.c
2515 fd = __socket (af, SOCK_DGRAM, IPPROTO_IP);
[...]
2526 [...] && __connect (fd, q->ai_addr, q->ai_addrlen) == 0
terminal
$ sudo strace -f -e bind,socket,fork,connect -p $(ps aux | grep chromium | grep
-v nacl | awk '{ print $2}' | xargs echo | sed 's/ /,/g')
[...]
[pid 8739] socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 134
[pid 8739] connect(134, {sa_family=AF_INET6, sin6_port=htons(53), inet_pton
(AF_INET6, "2001:4860:4860::8888", &sin6_addr), sin6_flowinfo=0,
sin6_scope_id=0}, 28) = -1 ENETUNREACH (Network is unreachable)
[pid 9010] socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 134
[pid 9010] connect(134, {sa_family=AF_INET, sin_port=htons(0),
sin_addr=inet_addr("192.30.252.154")}, 16) = 0
[pid 8739] socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 134
[pid 8739] connect(134, {sa_family=AF_INET, sin_port=htons(80),
sin_addr=inet_addr("192.30.252.154")}, 16) = -1 EINPROGRESS (Operation now in
progress)
[...]
Syscalls in action! (*stripped)
terminal
$ sudo strace -f -e bind,socket,fork,connect -p $(ps aux | grep chromium | grep
-v nacl | awk '{ print $2}' | xargs echo | sed 's/ /,/g')
[...]
[pid 8739] socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 134
[pid 8739] connect(134, {sa_family=AF_INET6, sin6_port=htons(53), inet_pton
(AF_INET6, "2001:4860:4860::8888", &sin6_addr), sin6_flowinfo=0,
sin6_scope_id=0}, 28) = -1 ENETUNREACH (Network is unreachable)
[pid 9010] socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 134
[pid 9010] connect(134, {sa_family=AF_INET, sin_port=htons(0),
sin_addr=inet_addr("192.30.252.154")}, 16) = 0
[pid 8739] socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 134
[pid 8739] connect(134, {sa_family=AF_INET, sin_port=htons(80),
sin_addr=inet_addr("192.30.252.154")}, 16) = -1 EINPROGRESS (Operation now in
progress)
[...]
Syscalls in action! (*stripped)
UDP para ipv6
nope :(
UDP
ipv4
request
Happy eyebals (rfc6555): https://www.ietf.org/mail-
archive/web/v6ops/current/msg22455.html
AAAA
A
Browser
sitev6
sitev4
de acordo com a rfc6555
AAAA
A
Browser
sitev6
sitev4
de acordo com a rfc6555
AAAA
A
Browser
sitev6
sitev4RST
de acordo com a rfc6555
DNSAplicação
Transporte
Rede
Enlace
Físico
TCP / UDP
IP
Ethernet / Wi-Fi
010101001011
UDP/IP
linux/blob/master/net/ipv4/udp.c
UDP
Conteúdo
Endereço (IP)
?
DNSAplicação
Transporte
Rede
Enlace
Físico
TCP / UDP
IP
Ethernet / Wi-Fi
010101001011
DNSAplicação
Transporte
Rede
Enlace
Físico
TCP / UDP
IP
Mágica, bro!
A visual explanation of how dns lookups work
Via dnstracer: `dnstracer -s . -4 -o pothix.com`
A.ROOT-SERVERS.NET [.] (198.41.0.4)
a.gtld-servers.net [com] (192.5.6.30)
ns1.dreamhost.com [pothix.com]
(66.33.206.206) Got authoritative answer
ns1.dreamhost.com (66.33.206.206)
pothix.com -> 192.30.252.153
ns1.dreamhost.com (66.33.206.206)
pothix.com -> 192.30.252.154
Internet
glibc
DNS
TCP/IP
UDP/IP
POSIX
Internet
glibc
DNS
TCP/IP
UDP/IP
POSIX
HTTP
HTTP/HTTPS
TCP / UDP
IP
Ethernet / Wi-Fi
010101001011
Aplicação
Transporte
Rede
Enlace
Físico
HTTP/HTTPS
TCP / UDP
IP
Ethernet / Wi-Fi
010101001011
Aplicação
Transporte
Rede
Enlace
Físico
TCP
linux/blob/master/net/ipv4/tcp.c
https://en.wikipedia.org/wiki/Transmission_Control_Protocol
ACK
SYN + ACK
ACK
Three way handshake
LISTENINGSYN
LISTENSYNSENT
SYN+ACK
LISTEN
SYN
RECEIVED
SYNSENT
SYN
RECEIVED
SYNSENTESTABLISHED
ACK
ESTABLISHEDSYNSENTESTABLISHED
É NÓIS! É NÓIS!
HTTP/HTTPS
TCP / UDP
IP
Ethernet / Wi-Fi
010101001011
Aplicação
Transporte
Rede
Enlace
Físico
HTTPS
TLS = fork(SSLv3)
SSLv3 is no longer supported in chrome
HTTP/HTTPS
TCP / UDP
IP
Ethernet / Wi-Fi
010101001011
Aplicação
Transporte
Rede
Enlace
Físico
TLS
TLS
conexão estabelecida
client hello
(CIPHERS, URL)
Os primeiros milisegundos de uma conexão HTTPS
https://cc.dcsec.uni-hannover.de/
conexão estabelecida
Server hello
(certificado, CIPHER)
TLS_RSA_WITH_RC4_128_MD5
public
key
crypt hash
conexão estabelecida
Data válida?
CA confiável?
Assinatura válida?
URL esperada?
conexão estabelecida
conexão estabelecida
Gerei uma parada aqui
(pre_master secret)
!^*@#$&!@(#$&!@#)$^$^
TLS_RSA_WITH_RC4_128_MD5
conexão estabelecida
!!@U#$N!Y*@#$*
master secret
TLS_RSA_WITH_RC4_128_MD5
conexão estabelecida
É NÓIS!
TLS_RSA_WITH_RC4_128_MD5
criptografia
dos dados
verificação contra
conteúdo “batizado”
É NÓIS!
TLSHTTP HTTP
Internet
headers
url
cookies
headers
url
cookies
HTTP/HTTP2
chromium - net/http & net/spdy
Rafael Rinaldi
Dissecando o protocolo HTTP/2
HTTP 1x via telnet
$ telnet pothix.com 80
Trying 192.30.252.153...
Connected to pothix.com.
Escape character is '^]'.
GET /index.html HTTP/1.1
Host: pothix.com
HTTP/1.1 200 OK
Server: GitHub.com
...
terminal
HTTP/HTTPS
TCP / UDP
IP
Ethernet / Wi-Fi
010101001011
Aplicação
Transporte
Rede
Enlace
Físico
Aplicação
Transporte
Rede
Enlace
Físico
HTTP/HTTPS
TCP / UDP
IP
Ethernet / Wi-Fi
010101001011
Aplicação
Transporte
Rede
Enlace
Físico
papers/Vipin_Analysis_of_open_source_WLAN_driver_paper.pdf
➔ net/ipv4/tcp.c
➔ include/net/cfg80211.h
➔ net/wireless/nl80211.c
➔ include/net/mac80211.h
➔ drivers/net/wireless/iwlwifi/
Internetglibc
DNS
TCP/IP
UDP/IP
HTTP
POSIX
a/b/g/n/ac
a/b/g/n/ac
Carrier
Sense
Multiple
Access
Collision
Avoidance
G
GB
G
glibc
DNS
TCP/IP
UDP/IP
HTTP
POSIX
Internet
# traceroute -T pothix.com
traceroute to pothix.com (192.30.252.153), 30 hops max, 60 byte packets
1 palantir (192.168.1.1) 8.718 ms 8.769 ms 8.868 ms
2 10.18.128.1 (10.18.128.1) 25.058 ms 25.673 ms 27.189 ms
3 c8bd5001.virtua.com.br (200.189.80.1) 29.071 ms 29.073 ms 29.068 ms
4 embratel-T0-7-2-0-tacc01.spoph.embratel.net.br (200.178.127.57) 32.917 ms
embratel-T0-4-1-0-uacc03.spomb.embratel.net.br (189.42.182.37) 31.734 ms
embratel-T0-1-0-2-uacc04.spoph.embratel.net.br (201.56.189.9) 36.481 ms
5 ebt-H0-1-0-0-tcore01.spolp.embratel.net.br (200.230.1.242) 37.800 ms
200.244.212.73 (200.244.212.73) 37.803 ms
200.244.212.81 (200.244.212.81) 41.446 ms
6 ebt-BP1082-intl02.nyk.embratel.net.br (200.230.220.30) 204.822 ms
ebt-B11121-intl02.nyk.embratel.net.br (200.230.251.254) 192.381 ms
ebt-BP11521-intl02.nyk.embratel.net.br (200.230.220.174) 189.936 ms
7 fa-0-0-0.r23.nycmny01.us.bb.gin.ntt.net (129.250.202.185) 192.297 ms 172.074 ms 172.013 ms
8 ae-9.r22.asbnva02.us.bb.gin.ntt.net (129.250.2.149) 171.973 ms 167.012 ms 166.951 ms
9 ae-44.r06.asbnva02.us.bb.gin.ntt.net (129.250.6.113) 166.888 ms 166.873 ms
ae-45.r05.asbnva02.us.bb.gin.ntt.net (129.250.5.137) 212.669 ms
10 xe-0-3-0-18.r05.asbnva02.us.ce.gin.ntt.net (129.250.197.70) 202.448 ms
xe-0-9-0-16.r06.asbnva02.us.ce.gin.ntt.net (129.250.197.74) 201.593 ms 202.489 ms
11 pages.github.com (192.30.252.153) 171.337 ms * *
TCP meu router
github pages
USA backbone
backbone
embratel
NET
Internet
Nginx conf file
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com:8080;
server unix:/tmp/backend3;
server backup1.example.com:8080 backup;
server backup2.example.com:8080 backup;
}
...
http://nginx.org/en/docs/http/ngx_http_upstream_module.html#server
TCP
Unix Socket
Internet
assets
TCP
http://12factor.net/port-binding
HTTP parsing
ragel vindo lá do velho mongrel*
*de acordo com o documento de design do unicorn
Internet
assets
TCP
Webserver -> Framework
baseado no PEP3333
Internet
assets
TCP
lib/rails/application.rb
Rack -> Rails
mais informações no post do timaro no omniref
É um Rack application
...
# Implements call according to the Rack API. It simply
# dispatches the request to the underlying middleware stack.
def call(env)
env["ORIGINAL_FULLPATH"] = build_original_fullpath(env)
env["ORIGINAL_SCRIPT_NAME"] = env["SCRIPT_NAME"]
super(env)
end
...
mais informações no post do timaro no omniref
Informações do Rack
{"GATEWAY_INTERFACE"=>"CGI/1.1",
"PATH_INFO"=>"/favicon.ico",
"QUERY_STRING"=>"",
"REMOTE_ADDR"=>"127.0.0.1",
"REMOTE_HOST"=>"localhost.localdomain",
"REQUEST_METHOD"=>"GET",
"REQUEST_URI"=>"http://localhost:9292/favicon.
ico",
"SCRIPT_NAME"=>"",
"SERVER_NAME"=>"localhost",
"SERVER_PORT"=>"9292",
"SERVER_PROTOCOL"=>"HTTP/1.1",
"SERVER_SOFTWARE"=>"WEBrick/1.3.1 (Ruby/2.2.3
/2015-08-18)",
"HTTP_HOST"=>"localhost:9292",
"HTTP_CONNECTION"=>"keep-alive",
"HTTP_USER_AGENT"=>"Mozilla/5.0 (X11; Linux
x86_64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/46.0.2490.71 Safari/537.36",
"HTTP_ACCEPT"=>"*/*",
"HTTP_REFERER"=>"http://localhost:9292/",
"HTTP_ACCEPT_ENCODING"=>"gzip, deflate, sdch",
"HTTP_ACCEPT_LANGUAGE"=>"en-US,en;q=0.8,pt-BR;q=0.
6,pt;q=0.4,es;q=0.2,eo;q=0.2", "rack.version"=>[1,
2],
"rack.multithread"=>true, "rack.multiprocess"
=>false, "rack.run_once"=>false, "rack.url_scheme"
=>"http", "HTTP_VERSION"=>"HTTP/1.1",
"REQUEST_PATH"=>"/favicon.ico"}
Rails::Engine
Todas as apps são Engines
mais informações no post do timaro no omniref
mais informações no post do timaro no omniref
Rack middlewares
[
Rack::Sendfile,
ActionDispatch::Static, Rack::Lock,
#<ActiveSupport::Cache::Strategy::LocalCache::
Middleware:0x000000028fa168>,
Rack::Runtime, Rack::MethodOverride,
ActionDispatch::RequestId,
Rails::Rack::Logger,
ActionDispatch::ShowExceptions,
WebConsole::Middleware,
ActionDispatch::DebugExceptions,
ActionDispatch::RemoteIp,
ActionDispatch::Reloader,
ActionDispatch::Callbacks,
ActiveRecord::Migration::CheckPending,
ActiveRecord::ConnectionAdapters::
ConnectionManagement,
ActiveRecord::QueryCache,
ActionDispatch::Cookies,
ActionDispatch::Session::CookieStore,
ActionDispatch::Flash,
ActionDispatch::ParamsParser,
Rack::Head,
Rack::ConditionalGet,
Rack::ETag
]
ActionDispatch
::Journey::Router
a primeira parte do seu código a ser tocada
mais informações no post do timaro no omniref
req.path_parameters
=> {:controller=>"pages", :action=>"home"}
ActionDispatch::Routing
::RouteSet::Dispatcher
achando o controller via rotas
mais informações no post do timaro no omniref
ActiveSupport::Dependencies.constantize("#{params[:controller].camelize}Controller")
=> PagesController
ActionController::Metal
prepara o request e manda processar
mais informações no post do timaro no omniref
def dispatch(name, request) #:nodoc:
[...]
process(name)
AbstractController::Base
encaminha para o seu controller
mais informações no post do timaro no omniref
def process(action, *args)
[...]
process_action(action_name, *args) # que no fim é só um `send`
Internet
assets
TCP
MV
VM
C
Internet
assets
TCP
MV
VM
C
Internet
assets
TCP
MV
VM
C
pega aí Rack -> [status, header, body]
mais informações no post do timaro no omniref
ActionDispatch
::Journey::Router
Internet
assets
TCP
MV
VM
C
Internet
assets
TCP
MV
VM
C
Internet
assets
TCP
MV
VM
C
Internet
assets
TCP
MV
VM
C
glibc
DNS
TCP/IP
UDP/IP
HTTP
POSIX
Internet
glibc
DNS
TCP/IP
UDP/IP
HTTP
POSIX
Internet
glibc
DNS
TCP/IP
UDP/IP
HTTP
POSIX
Internet
glibc
DNS
TCP/IP
UDP/IP
HTTP
POSIX
Internet
glibc
DNS
TCP/IP
UDP/IP
HTTP
POSIX
Internet
c-c-c-combo breaker
HTML
exemplos retirados do post “How browsers work”
algoritmo de parsing
implementado no webkit do chrome
HEAD
exemplos retirados do post “How browsers work”
algoritmo de parsing
implementado no webkit do chrome
HTML syntax error
<img src=”http://pothix.com/avatar.gif”> thread
<img src=”http://pothix.com/esperanto.png”> thread
<img src=”http://pothix.com/fotodasferias.scr”> thread
<script src=”http://pothix.com/marotagem.js”> sincrono
<script src=”http://pothix.com/estiloso.css”> thread
<script src=”http://pothix.com/javaescrito.js”> sincrono
<img src=”http://pothix.com/fotodasferias.jpg”>
<img src=”http://pothix.com/avatar.gif”> thread
<img src=”http://pothix.com/esperanto.png”> thread
<img src=”http://pothix.com/fotodasferias.scr”> thread
<script src=”http://pothix.com/marotagem.js”> sincrono
<script src=”http://pothix.com/estiloso.css”> thread
<script src=”http://pothix.com/javaescrito.js”> sincrono
<img src=”http://pothix.com/fotodasferias.jpg”>
exemplos retirados do post “How browsers work”
exemplos retirados do post “How browsers work”
Diego Eis: DOM, CSSOM e RenderThree - Introdução ao Browser Render Path
Resumindo
essa bagaça
glibc
MV
VM
C
Internet
Internet
Não acredite em mágica
entenda como funciona de verdade
ceeeeerto.
Seja curioso
conhecimento nunca é demais
Perguntas?
Willian Molinari
@PotHix
pothix@pothix.com
Slides: https://goo.gl/cC36RM
S
R
L
Y
?
The browser

Weitere ähnliche Inhalte

Was ist angesagt?

PROJETO INTEGRADO - CURSOS DA ÁREA DE TI - A UML (Linguagem de Modelagem Uni...
PROJETO INTEGRADO - CURSOS DA ÁREA DE TI -  A UML (Linguagem de Modelagem Uni...PROJETO INTEGRADO - CURSOS DA ÁREA DE TI -  A UML (Linguagem de Modelagem Uni...
PROJETO INTEGRADO - CURSOS DA ÁREA DE TI - A UML (Linguagem de Modelagem Uni...HELENO FAVACHO
 
Semiologia ortopédica tjmg
Semiologia ortopédica tjmgSemiologia ortopédica tjmg
Semiologia ortopédica tjmgOtavio Melo
 
Padaria piu pane planejamentos de comunicação e mkt
Padaria piu pane    planejamentos de comunicação e mktPadaria piu pane    planejamentos de comunicação e mkt
Padaria piu pane planejamentos de comunicação e mktPâmela Guimarães
 
Historia das redes de computadores
Historia das redes de computadoresHistoria das redes de computadores
Historia das redes de computadoresAlessandro Fazenda
 
5G - Redes Móveis Celular de Quinta Geração
5G - Redes Móveis Celular de Quinta Geração5G - Redes Móveis Celular de Quinta Geração
5G - Redes Móveis Celular de Quinta GeraçãoMiguel_Arcanjo3
 
Anatomia - Sistema Nervoso
Anatomia - Sistema NervosoAnatomia - Sistema Nervoso
Anatomia - Sistema NervosoPedro Miguel
 
A quarta revolução industrial klaus schwab
A quarta revolução industrial   klaus schwabA quarta revolução industrial   klaus schwab
A quarta revolução industrial klaus schwabRita Casiraghi Moschen
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadoresJakson Silva
 
Mapa Conceitual Computador Na EducaçãO
Mapa Conceitual Computador Na EducaçãOMapa Conceitual Computador Na EducaçãO
Mapa Conceitual Computador Na EducaçãOsilsiane
 
Sinais do Raio X de Tórax
Sinais do Raio X de TóraxSinais do Raio X de Tórax
Sinais do Raio X de TóraxBrenda Lahlou
 
Medresumos 2016 anatomia topográfica - pescoço
Medresumos 2016   anatomia topográfica - pescoçoMedresumos 2016   anatomia topográfica - pescoço
Medresumos 2016 anatomia topográfica - pescoçoJucie Vasconcelos
 

Was ist angesagt? (20)

Hérnias abdominais
Hérnias abdominaisHérnias abdominais
Hérnias abdominais
 
Anat top períneo_pg
Anat top períneo_pgAnat top períneo_pg
Anat top períneo_pg
 
Baço e pâncreas
Baço e pâncreasBaço e pâncreas
Baço e pâncreas
 
PROJETO INTEGRADO - CURSOS DA ÁREA DE TI - A UML (Linguagem de Modelagem Uni...
PROJETO INTEGRADO - CURSOS DA ÁREA DE TI -  A UML (Linguagem de Modelagem Uni...PROJETO INTEGRADO - CURSOS DA ÁREA DE TI -  A UML (Linguagem de Modelagem Uni...
PROJETO INTEGRADO - CURSOS DA ÁREA DE TI - A UML (Linguagem de Modelagem Uni...
 
Semiologia ortopédica tjmg
Semiologia ortopédica tjmgSemiologia ortopédica tjmg
Semiologia ortopédica tjmg
 
Padaria piu pane planejamentos de comunicação e mkt
Padaria piu pane    planejamentos de comunicação e mktPadaria piu pane    planejamentos de comunicação e mkt
Padaria piu pane planejamentos de comunicação e mkt
 
Historia das redes de computadores
Historia das redes de computadoresHistoria das redes de computadores
Historia das redes de computadores
 
5G - Redes Móveis Celular de Quinta Geração
5G - Redes Móveis Celular de Quinta Geração5G - Redes Móveis Celular de Quinta Geração
5G - Redes Móveis Celular de Quinta Geração
 
Luxação da Patela
Luxação da PatelaLuxação da Patela
Luxação da Patela
 
Anatomia - Sistema Nervoso
Anatomia - Sistema NervosoAnatomia - Sistema Nervoso
Anatomia - Sistema Nervoso
 
Indústria 4.0
Indústria 4.0Indústria 4.0
Indústria 4.0
 
Endereçamento IPV4
Endereçamento IPV4Endereçamento IPV4
Endereçamento IPV4
 
A quarta revolução industrial klaus schwab
A quarta revolução industrial   klaus schwabA quarta revolução industrial   klaus schwab
A quarta revolução industrial klaus schwab
 
Use a Cabeça - PHP.pdf
Use a Cabeça - PHP.pdfUse a Cabeça - PHP.pdf
Use a Cabeça - PHP.pdf
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
Mapa Conceitual Computador Na EducaçãO
Mapa Conceitual Computador Na EducaçãOMapa Conceitual Computador Na EducaçãO
Mapa Conceitual Computador Na EducaçãO
 
Sinais do Raio X de Tórax
Sinais do Raio X de TóraxSinais do Raio X de Tórax
Sinais do Raio X de Tórax
 
Doenca inflamatória e infecciosa do urotelio
Doenca inflamatória e infecciosa do  urotelio  Doenca inflamatória e infecciosa do  urotelio
Doenca inflamatória e infecciosa do urotelio
 
Hidronefrose na Criança
Hidronefrose na CriançaHidronefrose na Criança
Hidronefrose na Criança
 
Medresumos 2016 anatomia topográfica - pescoço
Medresumos 2016   anatomia topográfica - pescoçoMedresumos 2016   anatomia topográfica - pescoço
Medresumos 2016 anatomia topográfica - pescoço
 

Ähnlich wie Desconstruindo a web

Handy Networking Tools and How to Use Them
Handy Networking Tools and How to Use ThemHandy Networking Tools and How to Use Them
Handy Networking Tools and How to Use ThemSneha Inguva
 
MikroTik & RouterOS
MikroTik & RouterOSMikroTik & RouterOS
MikroTik & RouterOSFaelix Ltd
 
Real-Time Python Web: Gevent and Socket.io
Real-Time Python Web: Gevent and Socket.ioReal-Time Python Web: Gevent and Socket.io
Real-Time Python Web: Gevent and Socket.ioRick Copeland
 
Surf iOS版 中文用户指南
Surf iOS版 中文用户指南Surf iOS版 中文用户指南
Surf iOS版 中文用户指南yarshure Kong
 
Arduino、Web 到 IoT
Arduino、Web 到 IoTArduino、Web 到 IoT
Arduino、Web 到 IoTJustin Lin
 
Grokking Grok: Monitorama PDX 2015
Grokking Grok: Monitorama PDX 2015Grokking Grok: Monitorama PDX 2015
Grokking Grok: Monitorama PDX 2015GregMefford
 
103 Basic network concepts
103 Basic network concepts103 Basic network concepts
103 Basic network conceptsSsendiSamuel
 
MUM Europe 2017 - Traffic Generator Case Study
MUM Europe 2017 - Traffic Generator Case StudyMUM Europe 2017 - Traffic Generator Case Study
MUM Europe 2017 - Traffic Generator Case StudyFajar Nugroho
 
HTTP and 5G (fixed1)
HTTP and 5G (fixed1)HTTP and 5G (fixed1)
HTTP and 5G (fixed1)dynamis
 
DIY Internet: Snappy, Secure Networking with MinimaLT (JSConf EU 2013)
DIY Internet: Snappy, Secure Networking with MinimaLT (JSConf EU 2013)DIY Internet: Snappy, Secure Networking with MinimaLT (JSConf EU 2013)
DIY Internet: Snappy, Secure Networking with MinimaLT (JSConf EU 2013)Igalia
 
FIWARE Wednesday Webinars - How to Secure IoT Devices
FIWARE Wednesday Webinars - How to Secure IoT DevicesFIWARE Wednesday Webinars - How to Secure IoT Devices
FIWARE Wednesday Webinars - How to Secure IoT DevicesFIWARE
 
Internet and world wide web protocol (draft 2)
Internet and world wide web protocol (draft 2)Internet and world wide web protocol (draft 2)
Internet and world wide web protocol (draft 2)meazza_15
 
Swift hardware hacking @ try! Swift
Swift hardware hacking @ try! SwiftSwift hardware hacking @ try! Swift
Swift hardware hacking @ try! SwiftSally Shepard
 
Incident Response: Tunnelling
Incident Response: TunnellingIncident Response: Tunnelling
Incident Response: TunnellingNapier University
 
TDC2016SP - Vamos falar sobre o futuro da web: HTTP/2
TDC2016SP - Vamos falar sobre o futuro da web: HTTP/2TDC2016SP - Vamos falar sobre o futuro da web: HTTP/2
TDC2016SP - Vamos falar sobre o futuro da web: HTTP/2tdc-globalcode
 
Velocity 2011 - Our first DDoS attack
Velocity 2011 - Our first DDoS attackVelocity 2011 - Our first DDoS attack
Velocity 2011 - Our first DDoS attackCosimo Streppone
 

Ähnlich wie Desconstruindo a web (20)

Handy Networking Tools and How to Use Them
Handy Networking Tools and How to Use ThemHandy Networking Tools and How to Use Them
Handy Networking Tools and How to Use Them
 
MikroTik & RouterOS
MikroTik & RouterOSMikroTik & RouterOS
MikroTik & RouterOS
 
Real-Time Python Web: Gevent and Socket.io
Real-Time Python Web: Gevent and Socket.ioReal-Time Python Web: Gevent and Socket.io
Real-Time Python Web: Gevent and Socket.io
 
Surf iOS版 中文用户指南
Surf iOS版 中文用户指南Surf iOS版 中文用户指南
Surf iOS版 中文用户指南
 
Arduino、Web 到 IoT
Arduino、Web 到 IoTArduino、Web 到 IoT
Arduino、Web 到 IoT
 
tit
tittit
tit
 
Grokking Grok: Monitorama PDX 2015
Grokking Grok: Monitorama PDX 2015Grokking Grok: Monitorama PDX 2015
Grokking Grok: Monitorama PDX 2015
 
103 Basic network concepts
103 Basic network concepts103 Basic network concepts
103 Basic network concepts
 
MUM Europe 2017 - Traffic Generator Case Study
MUM Europe 2017 - Traffic Generator Case StudyMUM Europe 2017 - Traffic Generator Case Study
MUM Europe 2017 - Traffic Generator Case Study
 
Deploy your own P2P network
Deploy your own P2P networkDeploy your own P2P network
Deploy your own P2P network
 
HTTP and 5G (fixed1)
HTTP and 5G (fixed1)HTTP and 5G (fixed1)
HTTP and 5G (fixed1)
 
DIY Internet: Snappy, Secure Networking with MinimaLT (JSConf EU 2013)
DIY Internet: Snappy, Secure Networking with MinimaLT (JSConf EU 2013)DIY Internet: Snappy, Secure Networking with MinimaLT (JSConf EU 2013)
DIY Internet: Snappy, Secure Networking with MinimaLT (JSConf EU 2013)
 
FIWARE Wednesday Webinars - How to Secure IoT Devices
FIWARE Wednesday Webinars - How to Secure IoT DevicesFIWARE Wednesday Webinars - How to Secure IoT Devices
FIWARE Wednesday Webinars - How to Secure IoT Devices
 
Internet and world wide web protocol (draft 2)
Internet and world wide web protocol (draft 2)Internet and world wide web protocol (draft 2)
Internet and world wide web protocol (draft 2)
 
MikroTik Firewall : Securing your Router with Port Knocking
MikroTik Firewall : Securing your Router with Port KnockingMikroTik Firewall : Securing your Router with Port Knocking
MikroTik Firewall : Securing your Router with Port Knocking
 
Swift hardware hacking @ try! Swift
Swift hardware hacking @ try! SwiftSwift hardware hacking @ try! Swift
Swift hardware hacking @ try! Swift
 
Incident Response: Tunnelling
Incident Response: TunnellingIncident Response: Tunnelling
Incident Response: Tunnelling
 
TDC2016SP - Vamos falar sobre o futuro da web: HTTP/2
TDC2016SP - Vamos falar sobre o futuro da web: HTTP/2TDC2016SP - Vamos falar sobre o futuro da web: HTTP/2
TDC2016SP - Vamos falar sobre o futuro da web: HTTP/2
 
Velocity 2011 - Our first DDoS attack
Velocity 2011 - Our first DDoS attackVelocity 2011 - Our first DDoS attack
Velocity 2011 - Our first DDoS attack
 
SIP for geeks
SIP for geeksSIP for geeks
SIP for geeks
 

Mehr von Willian Molinari

As escolhas do desenvolvedor
As escolhas do desenvolvedorAs escolhas do desenvolvedor
As escolhas do desenvolvedorWillian Molinari
 
Desenvolvimento de jogos com HTML5 e javascript
Desenvolvimento de jogos com HTML5 e javascriptDesenvolvimento de jogos com HTML5 e javascript
Desenvolvimento de jogos com HTML5 e javascriptWillian Molinari
 
Javascript and browser games
Javascript and browser gamesJavascript and browser games
Javascript and browser gamesWillian Molinari
 
How we used ruby to build locaweb's cloud (http://presentations.pothix.com/ru...
How we used ruby to build locaweb's cloud (http://presentations.pothix.com/ru...How we used ruby to build locaweb's cloud (http://presentations.pothix.com/ru...
How we used ruby to build locaweb's cloud (http://presentations.pothix.com/ru...Willian Molinari
 
Html5, gamedev e o skeleton jigsaw
Html5, gamedev e o skeleton jigsawHtml5, gamedev e o skeleton jigsaw
Html5, gamedev e o skeleton jigsawWillian Molinari
 
Implementações paralelas
Implementações paralelasImplementações paralelas
Implementações paralelasWillian Molinari
 
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5Willian Molinari
 
FLISOL SJC - Desenvolvimento de jogos com javascrit e HTML5
FLISOL SJC - Desenvolvimento de jogos com javascrit e HTML5FLISOL SJC - Desenvolvimento de jogos com javascrit e HTML5
FLISOL SJC - Desenvolvimento de jogos com javascrit e HTML5Willian Molinari
 
Abertura do ruby_rails_no_mundo_real_guru_sp
Abertura do ruby_rails_no_mundo_real_guru_spAbertura do ruby_rails_no_mundo_real_guru_sp
Abertura do ruby_rails_no_mundo_real_guru_spWillian Molinari
 
What is and how does work RubyLearning.org
What is and how does work RubyLearning.orgWhat is and how does work RubyLearning.org
What is and how does work RubyLearning.orgWillian Molinari
 

Mehr von Willian Molinari (16)

Mesos
MesosMesos
Mesos
 
As escolhas do desenvolvedor
As escolhas do desenvolvedorAs escolhas do desenvolvedor
As escolhas do desenvolvedor
 
Desenvolvimento de jogos com HTML5 e javascript
Desenvolvimento de jogos com HTML5 e javascriptDesenvolvimento de jogos com HTML5 e javascript
Desenvolvimento de jogos com HTML5 e javascript
 
Javascript and browser games
Javascript and browser gamesJavascript and browser games
Javascript and browser games
 
How we used ruby to build locaweb's cloud (http://presentations.pothix.com/ru...
How we used ruby to build locaweb's cloud (http://presentations.pothix.com/ru...How we used ruby to build locaweb's cloud (http://presentations.pothix.com/ru...
How we used ruby to build locaweb's cloud (http://presentations.pothix.com/ru...
 
Html5, gamedev e o skeleton jigsaw
Html5, gamedev e o skeleton jigsawHtml5, gamedev e o skeleton jigsaw
Html5, gamedev e o skeleton jigsaw
 
Ruby e xmpp
Ruby e xmppRuby e xmpp
Ruby e xmpp
 
Game network programming
Game network programmingGame network programming
Game network programming
 
Locasberos
LocasberosLocasberos
Locasberos
 
Simplestack
SimplestackSimplestack
Simplestack
 
Implementações paralelas
Implementações paralelasImplementações paralelas
Implementações paralelas
 
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
 
FLISOL SJC - Desenvolvimento de jogos com javascrit e HTML5
FLISOL SJC - Desenvolvimento de jogos com javascrit e HTML5FLISOL SJC - Desenvolvimento de jogos com javascrit e HTML5
FLISOL SJC - Desenvolvimento de jogos com javascrit e HTML5
 
Abertura do ruby_rails_no_mundo_real_guru_sp
Abertura do ruby_rails_no_mundo_real_guru_spAbertura do ruby_rails_no_mundo_real_guru_sp
Abertura do ruby_rails_no_mundo_real_guru_sp
 
Vim
VimVim
Vim
 
What is and how does work RubyLearning.org
What is and how does work RubyLearning.orgWhat is and how does work RubyLearning.org
What is and how does work RubyLearning.org
 

Kürzlich hochgeladen

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMKumar Satyam
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)Samir Dash
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 

Kürzlich hochgeladen (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 

Desconstruindo a web