Slide 1

Slide 1 text

LIFE BEYOND HTTP Anthony Eden @aeden DNSimple Friday, September 14, 12

Slide 2

Slide 2 text

“A SET OF PROCEDURES TO BE FOLLOWED WHEN COMMUNICATING” Friday, September 14, 12

Slide 3

Slide 3 text

HTTP Friday, September 14, 12

Slide 4

Slide 4 text

RFC 1945 (1996) HTTP 1.0 Friday, September 14, 12

Slide 5

Slide 5 text

“THE HYPERTEXT TRANSFER PROTOCOL (HTTP) IS AN APPLICATION-LEVEL PROTOCOL WITH THE LIGHTNESS AND SPEED NECESSARY FOR DISTRIBUTED, COLLABORATIVE, HYPERMEDIA INFORMATION SYSTEMS.” Friday, September 14, 12

Slide 6

Slide 6 text

I <3 HTTP Friday, September 14, 12

Slide 7

Slide 7 text

HTTP IS UBIQUITOUS Friday, September 14, 12

Slide 8

Slide 8 text

HTTP IS SIMPLE Friday, September 14, 12

Slide 9

Slide 9 text

HTTP IS FLEXIBLE Friday, September 14, 12

Slide 10

Slide 10 text

BUT THERE IS LIFE BEYOND HTTP Friday, September 14, 12

Slide 11

Slide 11 text

LET’S MAKE SOME (NOT SO) NEW FRIENDS Friday, September 14, 12

Slide 12

Slide 12 text

SMTP Friday, September 14, 12

Slide 13

Slide 13 text

SIMPLE MAIL TRANSPORT PROTOCOL Friday, September 14, 12

Slide 14

Slide 14 text

RFC 788 (1981) OBSOLETED BY RFC 822 Friday, September 14, 12

Slide 15

Slide 15 text

FUN FACT: MAIL USED TO RELY ON FTP Friday, September 14, 12

Slide 16

Slide 16 text

S: 220 smtp.example.com ESMTP Postfix C: HELO relay.example.org S: 250 Hello relay.example.org, I am glad to meet you C: MAIL FROM: S: 250 Ok C: RCPT TO: S: 250 Ok C: RCPT TO: S: 250 Ok C: DATA S: 354 End data with . C: From: "Bob Example" C: To: "Alice Example" C: Cc: [email protected] C: Date: Tue, 15 January 2008 16:02:43 -0500 C: Subject: Test message C: C: Hello Alice. C: This is a test message with 5 header fields and 4 lines in the message body. C: Your friend, C: Bob C: . S: 250 Ok: queued as 12345 C: QUIT S: 221 Bye Friday, September 14, 12

Slide 17

Slide 17 text

DNS Friday, September 14, 12

Slide 18

Slide 18 text

DOMAIN NAME SYSTEM Friday, September 14, 12

Slide 19

Slide 19 text

RFC 1034, 1034 AND MANY, MANY MORE (1987) Friday, September 14, 12

Slide 20

Slide 20 text

FUN FACT: BEFORE DNS ALL COMPUTERS GRABBED HOSTS.TXT FROM A COMPUTER AT SRI Friday, September 14, 12

Slide 21

Slide 21 text

+---------------------+ | Header | +---------------------+ | Question | the question for the name server +---------------------+ | Answer | RRs answering the question +---------------------+ | Authority | RRs pointing toward an authority +---------------------+ | Additional | RRs holding additional information +---------------------+ Friday, September 14, 12

Slide 22

Slide 22 text

1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | | / / / NAME / | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | TYPE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | CLASS | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | TTL | | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | RDLENGTH | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--| / RDATA / / / +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ Friday, September 14, 12

Slide 23

Slide 23 text

1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ID | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ |QR| Opcode |AA|TC|RD|RA| Z | RCODE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | QDCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ANCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | NSCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ARCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ Friday, September 14, 12

Slide 24

Slide 24 text

DNS: IT’S MORE THAN A PROTOCOL IT’S A WAY OF LIFE! Friday, September 14, 12

Slide 25

Slide 25 text

XMPP Friday, September 14, 12

Slide 26

Slide 26 text

EXTENSIBLE MESSAGING AND PRESENCE PROTOCOL Friday, September 14, 12

Slide 27

Slide 27 text

RFC 3920-3923 (2004) Friday, September 14, 12

Slide 28

Slide 28 text

EXAMPLE OMITTED TO SAVE YOUR EYEBALLS. Friday, September 14, 12

Slide 29

Slide 29 text

IRC Friday, September 14, 12

Slide 30

Slide 30 text

INTERNET RELAY CHAT Friday, September 14, 12

Slide 31

Slide 31 text

RFC 1459 (1993) Friday, September 14, 12

Slide 32

Slide 32 text

SSH Friday, September 14, 12

Slide 33

Slide 33 text

SECURE SHELL Friday, September 14, 12

Slide 34

Slide 34 text

RFC 4250-4256 (2006) Friday, September 14, 12

Slide 35

Slide 35 text

FUN FACT: THE ORIGINAL ANNOUNCEMENT INCLUDED THE FOLLOWING... Friday, September 14, 12

Slide 36

Slide 36 text

PUTTING THIS OPENLY AVAILABLE FOR FTP IN THE US MAY MAKE YOU ELIGIBLE FOR CHARGES ON ITAR VIOLATIONS, WITH PENALTIES UP TO 10 YEARS IN PRISON. Friday, September 14, 12

Slide 37

Slide 37 text

AMERICA, FUCK YEAH! Friday, September 14, 12

Slide 38

Slide 38 text

STOMP Friday, September 14, 12

Slide 39

Slide 39 text

STREAMING TEXT ORIENTED MESSAGING PROTOCOL Friday, September 14, 12

Slide 40

Slide 40 text

RFCS ARE FOR KIDS, SILLY! Friday, September 14, 12

Slide 41

Slide 41 text

CONNECT accept-version:1.1 host:stomp.github.org ^@ CONNECTED version:1.1 ^@ SEND destination:/queue/a content-type:text/plain hello queue a ^@ Friday, September 14, 12

Slide 42

Slide 42 text

SUBSCRIBE ID:0 DESTINATION:/QUEUE/FOO ACK:CLIENT ^@ MESSAGE SUBSCRIPTION:0 MESSAGE-ID:007 DESTINATION:/QUEUE/A CONTENT-TYPE:TEXT/PLAIN HELLO QUEUE A^@ Friday, September 14, 12

Slide 43

Slide 43 text

DISCONNECT receipt:77 ^@ RECEIPT receipt-id:77 ^@ Friday, September 14, 12

Slide 44

Slide 44 text

SPDY Friday, September 14, 12

Slide 45

Slide 45 text

MULTIPLEXED HTTP Friday, September 14, 12

Slide 46

Slide 46 text

CHROMIUM.ORG/SPDY/SPDY-PROTOCOL/SPDY-PROTOCOL-DRAFT2 Friday, September 14, 12

Slide 47

Slide 47 text

REQUEST PRIORITIZATION Friday, September 14, 12

Slide 48

Slide 48 text

COMPRESSED HEADERS Friday, September 14, 12

Slide 49

Slide 49 text

SERVER-PUSHED STREAMS Friday, September 14, 12

Slide 50

Slide 50 text

APPLICATION PROTOCOLS ARE FUN... Friday, September 14, 12

Slide 51

Slide 51 text

BUT WHAT ABOUT TRANSPORT PROTOCOLS? Friday, September 14, 12

Slide 52

Slide 52 text

TCP Friday, September 14, 12

Slide 53

Slide 53 text

TRANSMISSION CONTROL PROTOCOL Friday, September 14, 12

Slide 54

Slide 54 text

RELIABLE, ORDERED STREAM OF OCTETS Friday, September 14, 12

Slide 55

Slide 55 text

UDP Friday, September 14, 12

Slide 56

Slide 56 text

USER DATAGRAM PROTOCOL Friday, September 14, 12

Slide 57

Slide 57 text

NO GUARANTEE OF DELIVERY, ORDERING OR DUPLICATE PROTECTION Friday, September 14, 12

Slide 58

Slide 58 text

AVOIDS OVERHEAD Friday, September 14, 12

Slide 59

Slide 59 text

TO THE CODE! Friday, September 14, 12

Slide 60

Slide 60 text

PROTOCOLS ARE AWESOME Friday, September 14, 12

Slide 61

Slide 61 text

KNOW THEM. Friday, September 14, 12

Slide 62

Slide 62 text

USE THEM. Friday, September 14, 12

Slide 63

Slide 63 text

LOVE THEM. Friday, September 14, 12

Slide 64

Slide 64 text

THREE QUESTIONS Friday, September 14, 12

Slide 65

Slide 65 text

•What APIs do you use that might be better as a protocol? •What are the characteristics of protocols that live long lives? •What APIs have YOU written that might make good protocols? Friday, September 14, 12

Slide 66

Slide 66 text

THANK YOU, BARUCO Friday, September 14, 12

Slide 67

Slide 67 text

LIFE BEYOND HTTP Anthony Eden @aeden DNSimple Friday, September 14, 12