Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Beyond HTTP, Breaking Free of The Web
Search
Mark Wolfe
February 09, 2015
Technology
0
280
Beyond HTTP, Breaking Free of The Web
Talk I gave at APIdays in Sydney 2015 and Microservices Meetup
Mark Wolfe
February 09, 2015
Tweet
Share
More Decks by Mark Wolfe
See All by Mark Wolfe
IP Networking in AWS
wolfeidau
0
55
Getting Into Vue.js
wolfeidau
0
170
AWS Automation With Lambda
wolfeidau
1
82
Ansible and Cloudformation
wolfeidau
1
200
Docker Security
wolfeidau
0
180
Building a Proxy in Go
wolfeidau
2
330
Using JWT to Authenticate Microservices
wolfeidau
1
240
Managing Secrets IN AWS
wolfeidau
0
120
ESPlant Workshop Firmware Overview and Demos
wolfeidau
0
110
Other Decks in Technology
See All in Technology
少数チームで挑む: SwiftUI, TCA, KMPを用いた 新規動画配信アプリ 「ABEMA Live」の開発について
tomu28
0
490
ここが嬉しいABAC ここが辛いよABAC #再解説+補足編
masahirokawahara
0
160
Garoon 開発チーム / Garoon development team
cybozuinsideout
PRO
1
2.9k
SPI原点回帰論:事業課題とFour Keysの結節点を見出す実践的ソフトウェアプロセス改善 / DevOpsDays Tokyo 2024
visional_engineering_and_design
4
1.2k
AIQ株式会社 エンジニア向け会社紹介資料
aiqlab
0
350
NLP2024 参加報告LT ~RAGの生成評価と懇親戦略~ / nlp2024_attendee_presentation_LT_masuda
taro_masuda
1
190
HEXA OSINT CTF V3 作戦会議
meow_noisy
0
110
CSSDAY 2024
kevinshallvari
0
180
人間の尊厳、幸福、アクセシビリティ / 第116回「WEB TOUCH MEETING」アクセシビリティSP
nulabinc
PRO
2
180
ユーザーストーリーのレビューを自動化したみたの
bun913
1
270
AWS を使う上で知っておきたいオンプレミス知識/aws-on-premise-essentials
emiki
1
4.1k
クラウドサインにおけるプロダクトマネージャーの役割と開発プロセス / 20240410_cloudsign-PdM
bengo4com
1
670
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
20
1.6k
BBQ
matthewcrist
79
8.7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
39
4.4k
KATA
mclloyd
14
12k
How to name files
jennybc
64
92k
Bootstrapping a Software Product
garrettdimon
PRO
301
110k
Automating Front-end Workflow
addyosmani
1354
200k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
What the flash - Photography Introduction
edds
64
11k
Visualization
eitanlees
135
14k
Statistics for Hackers
jakevdp
789
220k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
24
2.3k
Transcript
Beyond HTTP, Breaking Free of The Web Mark Wolfe
–From http://www.w3.org/DesignIssues/Architecture.html “The most fundamental specification of Web architecture, while
one of the simpler, is that of the Universal Resource Identifier, or URI.”
–From https://tools.ietf.org/html/rfc2616 “The Hypertext Transfer Protocol (HTTP) is an application
protocol for distributed, collaborative, hypermedia information systems.”
– From http://en.wikipedia.org/wiki/Application_programming_interface “In computer programming, an application programming interface
(API) is a set of routines, protocols, and tools for building software applications.”
APIs We Use != http DNS Used to resolve host
names Also used for service discovery MDNS SPDY
Wireshark Network protocol analyser Our window into the wonderful world
of protocols and APIs Available for Windows, OSX and Linux https://www.wireshark.org/ The wire doesn’t lie
DNS? Protocol uses UDP or TCP for transport Consists of
Questions and Answers Includes some information on authority Uses "intelligent retransmission” Small messages
DNS Continued.. Binary protocol Fixed header Payload uses a compact
self describing binary format TLV (type length value)
DNS Question
DNS Answer
DNS Exchange
HTTP Get Request
In Review Compact messages More likely to transit “wireless” networks
Extensible self describing binary payload Established encoding so others can introspect without a definition! Fast
MDNS Uses UDP Over Multicast Designed for resolving names in
adhoc networks Uses the existing DNS message structure, name syntax, and resource record types
Something Simpler? So lets look at something simpler than DNS
What if we just put text in a UDP packet What would that look like?
Problem I want to send 10s of 1000s of metrics
to a server for aggregation with minimal performance impact I want to keep it simple I want the server to be a staging area for data Perform Aggregation Flush to timeseries at regular intervals
statsd Developed by etsy Uses UDP as a transport Data
is encoded using text Metrics are either a Gauge, Counter, Timer or Meter No reply necessary!
statsd protocol Metrics are generally of the form <metric name>:<value>|<type>
outside_temp|12.2|g get_home_request_time|123|ms get_home_request|1|c
In Review Very simple implementation Doesn’t block Fast Loss doesn’t
really matter in the scheme of things Maths happens in the server
None
The End @wolfeidau on twitter https://github.com/wolfeidau
[email protected]
http://wolfe.id.au
Links Good article on DNS message format https://www.wireshark.org/ Read this
book High Performance Browser Networking Etsy Statsd