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
Parlez-Vous HTTP?
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Frederic Jean
March 14, 2012
Technology
150
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Parlez-Vous HTTP?
Introduction to the HTTP protocol, complete with HTTP Status Cats
Frederic Jean
March 14, 2012
More Decks by Frederic Jean
See All by Frederic Jean
CleanShaved: See the Mustache Disappear
fredjean
0
160
Parlez-Vous HTTP? (Abbreviated)
fredjean
4
130
Other Decks in Technology
See All in Technology
Bedrock AgentCore RuntimeでAuth0 Changelog調査AIをアップグレードした話
t5u8a5a
1
120
自律型AIエージェントは何を破壊するのか
kojira
0
160
AIっぽい文章を採点して人間らしく直すアプリを作ってみた
yama3133
2
150
プロダクト開発から業務改善コンサルまで。事業全体へ「染み出す」ことで広がるエンジニアの可能性
ham0215
0
120
Snowflakeと仲良くなる第一歩
coco_se
4
460
SONiCの統計情報を取得したい
sonic
0
140
【Cyber-sec+】経営層を"動かす"ための考え方
hssh2_bin
0
180
非定型業務をAI slackbotで自動化する ~ 社内要望を自動壁打ちするbotを作った ~/automating-ad-hoc-work-with-ai-slackbot
shibayu36
0
650
2026TECHFRESH畢業分享會 - 葬送的通靈師:化系統與用戶雜訊成行動訊號
line_developers_tw
PRO
0
970
エンジニアリング戦略の作り方 / Crafting Engineering Strategy
iwashi86
21
6.9k
LLMにもCAP定理があるという話
harukasakihara
0
330
機械学習を「社会実装」するということ 2026年夏版 / Social Implementation of Machine Learning June 2026 Version
moepy_stats
5
2.3k
Featured
See All Featured
Test your architecture with Archunit
thirion
1
2.3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
The Curse of the Amulet
leimatthew05
1
13k
Evolving SEO for Evolving Search Engines
ryanjones
0
220
We Have a Design System, Now What?
morganepeng
55
8.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
380
Skip the Path - Find Your Career Trail
mkilby
1
150
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
330
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
610
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Between Models and Reality
mayunak
4
330
Transcript
Parlez-Vous HTTP? Frédéric Jean Principal Software Engineer Snugg Home LLC
1 Wednesday, March 14, 12
Why talk about HTTP? 2 Wednesday, March 14, 12
A brief history... 3 Wednesday, March 14, 12
1989-1990: Initial WWW prototype developed on NeXT workstation 4 Wednesday,
March 14, 12
5 Wednesday, March 14, 12
1991: HTTP/0.9 released 6 Wednesday, March 14, 12
1996: HTTP/1.0 released as RFC 1945 7 Wednesday, March 14,
12
1996: HTTP/1.1 draft introduced 8 Wednesday, March 14, 12
1997: HTTP/1.1 released as RFC 2068 9 Wednesday, March 14,
12
1999: RFC 2616 Updates and improves HTTP/1.1 10 Wednesday, March
14, 12
What is HTTP? 11 Wednesday, March 14, 12
12 Wednesday, March 14, 12
12 Wednesday, March 14, 12
12 Wednesday, March 14, 12
12 Wednesday, March 14, 12
12 Wednesday, March 14, 12
12 Wednesday, March 14, 12
HTTP Is... 13 Wednesday, March 14, 12
Stateless HTTP Is... 13 Wednesday, March 14, 12
Stateless Insecure HTTP Is... 13 Wednesday, March 14, 12
Stateless Insecure Textual HTTP Is... 13 Wednesday, March 14, 12
<Initial line> <Headers> <Body> Message Format 14 Wednesday, March 14,
12
15 Wednesday, March 14, 12
15 Wednesday, March 14, 12
Request GET / HTTP/1.1 Host: boulderjug.org User-‐Agent: Mozilla/5.0 (Macintosh; Intel
Mac OS X 10.7; rv:8.0.1) Gecko/ 20100101 Firefox/8.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-‐Language: en-‐us,en;q=0.5 Accept-‐Encoding: gzip, deflate Accept-‐Charset: ISO-‐8859-‐1,utf-‐8;q=0.7,*;q=0.7 Cookie: __utma=1.709566692.1315366607.1322835520.1325736840.8; __utmz=1.1325736840.8.8.utmcsr=typepad.com|utmccn=(referral)| utmcmd=referral|utmcct=/site/blogs/6a010536bb2e9f970b010536bb2ea2970b/ posts; __qca=P0-‐138304784-‐1315366608389; __utmc=1 !" 16 Wednesday, March 14, 12
Request Initial Line 17 Wednesday, March 14, 12
GET / HTTP/1.1 18 Wednesday, March 14, 12
GET / HTTP/1.1 19 Wednesday, March 14, 12
HTTP Request Methods Method Safe Idempotent GET X X POST
PUT X DELETE X HEAD X X OPTIONS X X CONNECT PATCH TRACE X X 20 Wednesday, March 14, 12
GET / HTTP/1.1 21 Wednesday, March 14, 12
GET / HTTP/1.1 22 Wednesday, March 14, 12
Request Headers 23 Wednesday, March 14, 12
Host: boulderjug.org 24 Wednesday, March 14, 12
User-‐Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:8.0.1)... 25
Wednesday, March 14, 12
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-‐Language: en-‐us,en;q=0.5 Accept-‐Encoding: gzip, deflate Accept-‐Charset: ISO-‐8859-‐1,utf-‐8;q=0.7,*;q=0.7 26
Wednesday, March 14, 12
Cookie: __utma=1.709566692.1315366607.1322835520.1325736840.8;
__qca=P0-‐138304784-‐1315366608389; __utmc=1 27 Wednesday, March 14, 12
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== 28 Wednesday, March 14, 12
Request Body PUT, POST, PATCH should have a body GET,
HEAD, OPTIONS, TRACE, CONNECT should not 29 Wednesday, March 14, 12
Request GET / HTTP/1.1 Host: boulderjug.org User-‐Agent: Mozilla/5.0 (Macintosh; Intel
Mac OS X 10.7; rv:8.0.1) Gecko/ 20100101 Firefox/8.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-‐Language: en-‐us,en;q=0.5 Accept-‐Encoding: gzip, deflate Accept-‐Charset: ISO-‐8859-‐1,utf-‐8;q=0.7,*;q=0.7 Cookie: __utma=1.709566692.1315366607.1322835520.1325736840.8; __utmz=1.1325736840.8.8.utmcsr=typepad.com|utmccn=(referral)| utmcmd=referral|utmcct=/site/blogs/6a010536bb2e9f970b010536bb2ea2970b/ posts; __qca=P0-‐138304784-‐1315366608389; __utmc=1 !" 30 Wednesday, March 14, 12
31 Wednesday, March 14, 12
31 Wednesday, March 14, 12
Response HTTP/1.1 200 OK Server: Apache X-‐PhApp: oak-‐tp-‐web026 X-‐Webserver: oak-‐tp-‐web026
Vary: cookie,Accept-‐Encoding Content-‐Encoding: gzip Keep-‐Alive: timeout=300, max=100 Content-‐Type: text/html; charset=utf-‐8 Content-‐Length: 12033 Date: Fri, 06 Jan 2012 05:48:59 GMT X-‐Varnish: 3423770493 Age: 0 Via: 1.1 varnish <!DOCTYPE html PUBLIC "-‐//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-‐transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" id="typepad-‐standard" xmlns:fb="http://www.facebook.com/2008/fbml"> ... </html> 32 Wednesday, March 14, 12
Response Initial Line 33 Wednesday, March 14, 12
aka: Status Line 34 Wednesday, March 14, 12
HTTP/1.1 200 OK 35 Wednesday, March 14, 12
HTTP/1.1 200 OK 36 Wednesday, March 14, 12
HTTP/1.1 200 OK 37 Wednesday, March 14, 12
HTTP/1.1 200 OK 38 Wednesday, March 14, 12
39 Wednesday, March 14, 12
40 Wednesday, March 14, 12
41 Wednesday, March 14, 12
HTTP/1.1 202 Accepted Location: http://example.com/asynch/jobs/3332334 42 Wednesday, March 14, 12
43 Wednesday, March 14, 12
HTTP/1.1 301 Moved Permanently Location: http://example.com/new_path 44 Wednesday, March 14,
12
302 Found 45 Wednesday, March 14, 12
HTTP/1.1 302 Found Location: http://example.com/new_path 46 Wednesday, March 14, 12
47 Wednesday, March 14, 12
HTTP/1.1 307 Temporary Redirect Location: http://example.com/maintenance.html 48 Wednesday, March 14,
12
49 Wednesday, March 14, 12
50 Wednesday, March 14, 12
HTTP/1.1 401 Authorization Required Server: HTTPd/1.0 Date: Sat, 27 Nov
2004 10:18:15 GMT WWW-Authenticate: Basic realm="Secure Area" Content-Type: text/html Content-Length: 311 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/ loose.dtd"> <HTML> <HEAD> <TITLE>Error</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> </HEAD> <BODY><H1>401 Unauthorized.</H1></BODY> </HTML> 51 Wednesday, March 14, 12
52 Wednesday, March 14, 12
53 Wednesday, March 14, 12
54 Wednesday, March 14, 12
55 Wednesday, March 14, 12
HTTP Response Headers 56 Wednesday, March 14, 12
Server Information Resource Metadata Caching Hints 57 Wednesday, March 14,
12
Server: Apache X-‐PhApp: oak-‐tp-‐web026 X-‐Webserver: oak-‐tp-‐web026 X-‐Varnish: 3423770493 Via: 1.1
varnish Server Information Headers 58 Wednesday, March 14, 12
Resource Metadata Content-‐Encoding: gzip Content-‐Type: text/html; charset=utf-‐8 Content-‐Length: 12033 Date:
Fri, 06 Jan 2012 05:48:59 GMT 59 Wednesday, March 14, 12
Caching Hints Vary: cookie,Accept-‐Encoding Age: 0 Cache-Control: max-age=600 Expires: Mon
06 Oct 2008 12:43:48 GMT 60 Wednesday, March 14, 12
Connection Headers Connection: close 61 Wednesday, March 14, 12
HTTP Conditional Requests Server Client Last-Modified If-Modified-Since If-Unmodified-Since ETag If-None-Match
62 Wednesday, March 14, 12
Response HTTP/1.1 200 OK Server: Apache X-‐PhApp: oak-‐tp-‐web026 X-‐Webserver: oak-‐tp-‐web026
Vary: cookie,Accept-‐Encoding Content-‐Encoding: gzip Keep-‐Alive: timeout=300, max=100 Content-‐Type: text/html; charset=utf-‐8 Content-‐Length: 12033 Date: Fri, 06 Jan 2012 05:48:59 GMT X-‐Varnish: 3423770493 Age: 0 Via: 1.1 varnish <!DOCTYPE html PUBLIC "-‐//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-‐transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" id="typepad-‐standard" xmlns:fb="http://www.facebook.com/2008/fbml"> ... </html> 63 Wednesday, March 14, 12
64 Wednesday, March 14, 12
64 Wednesday, March 14, 12
64 Wednesday, March 14, 12
64 Wednesday, March 14, 12
64 Wednesday, March 14, 12
64 Wednesday, March 14, 12
Troubleshooting HTTP 65 Wednesday, March 14, 12
Browser Developer Tools 66 Wednesday, March 14, 12
67 Wednesday, March 14, 12
68 Wednesday, March 14, 12
69 Wednesday, March 14, 12
70 Wednesday, March 14, 12
71 Wednesday, March 14, 12
72 Wednesday, March 14, 12
curl 73 Wednesday, March 14, 12
74 Wednesday, March 14, 12
Charles 75 Wednesday, March 14, 12
76 Wednesday, March 14, 12
Fiddler 77 Wednesday, March 14, 12
78 Wednesday, March 14, 12
Network Analysis Tools Wireshark Eavesdrop (Mac OS X) tcpdump snoop
(Solaris) 79 Wednesday, March 14, 12
80 Wednesday, March 14, 12
81 Wednesday, March 14, 12
81 Wednesday, March 14, 12
81 Wednesday, March 14, 12
81 Wednesday, March 14, 12
81 Wednesday, March 14, 12
81 Wednesday, March 14, 12
Connection: close 82 Wednesday, March 14, 12
298158373_a47d6db5cf_b.jpg (flickr: sbisson) HTTP Status Cats: http:/ /httpcats.herokuapp.com/ Images from
GirlieMac Picture Credits 83 Wednesday, March 14, 12