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
300
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
56
Getting Into Vue.js
wolfeidau
0
180
AWS Automation With Lambda
wolfeidau
1
85
Ansible and Cloudformation
wolfeidau
1
220
Docker Security
wolfeidau
0
180
Building a Proxy in Go
wolfeidau
2
360
Using JWT to Authenticate Microservices
wolfeidau
1
240
Managing Secrets IN AWS
wolfeidau
0
130
ESPlant Workshop Firmware Overview and Demos
wolfeidau
0
110
Other Decks in Technology
See All in Technology
塩野義製薬様のAWS統合管理戦略:Organizations設計と運用の具体例
tkikuchi
0
330
本番のトラフィック量でHudiを検証して見えてきた課題
joker1007
2
290
外部カンファレンスで登壇しよう! 〜「強い」エンジニアへの一歩を踏み出す〜
logica0419
4
140
Oracle Cloud Infrastructure:2024年10月度サービス・アップデート
oracle4engineer
PRO
0
290
VueとViteで作るUIコンポーネントライブラリ ~デザインシステムとプロダクトの理想的な分離を目指して~ / 20241019_cloudsign_VueFesJapan2024_1
bengo4com
8
4.9k
GPSデバイスを使った簡易位置案内システムの構築をしてみた話。/jawsfesta2024
kwada
0
240
The road to green code (with Sonar)
bluehats
0
190
APIs for AI: Have we failed?
zdne
0
140
Rist_Meetup_Kaggleは業務の役にたつ - ビジネスコンテンツ情報を活用する BtoB 事業編 - / rist-meetup-20241012
taro_masuda
1
370
40代後半で開発エンジニアからクラウドインフラエンジニアにキャリアチェンジし、生き残れる自信がようやく持てた話
iwamot
9
8.3k
AWS Step Functionsのタスク入出力に秩序を与えよう
haku__hime
0
140
実は仲良し?Amplify Gen2と生成AI
mkdev10
1
180
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
229
18k
The Art of Programming - Codeland 2020
erikaheidi
51
13k
KATA
mclloyd
29
13k
Writing Fast Ruby
sferik
626
60k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
A better future with KSS
kneath
237
17k
Measuring & Analyzing Core Web Vitals
bluesmoon
0
9
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.2k
The World Runs on Bad Software
bkeepers
PRO
65
11k
For a Future-Friendly Web
brad_frost
174
9.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
41
9.2k
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