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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Frederic Jean
March 14, 2012
Technology
150
2
Share
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
120
Other Decks in Technology
See All in Technology
Microsoft 365 / Microsoft 365 Copilot : 自分の状態を確認する「ラベル」について
taichinakamura
0
430
小さいVue.jsを30分で作る
hal_spidernight
0
110
AIでAIをテストする - 音声AIエージェントの品質保証戦略
morix1500
1
160
AIが盛んな時代に 技術記事を書き始めて起きた私の中での小さな変化
peintangos
0
340
生成AIが変える SaaS の競争原理と弁護士ドットコムのプロダクト戦略
bengo4com
1
3.1k
Building Production-Ready Agents Microsoft Agent Framework
_mertmetin
0
130
ServiceNow Knowledge 26 の歩き方
manarobot
0
270
音声言語モデル手法に関する発表の紹介
kzinmr
0
150
Chasing Real-Time Observability for CRuby
whitegreen
0
620
Angular Architecture Revisited Modernizing Angular Architectural Patterns
rainerhahnekamp
0
110
AI時代に越境し、 組織を変えるQAスキルの正体 / QA Skills for Transforming an Organization
mii3king
0
250
「QA=テスト」「シフトレフト=スクラムイベントの参加者の一員」の呪縛を解く。アジャイルな開発を止めないために、10Xで挑んだ「右側のしわ寄せ」解消記 #scrumniigata
nihonbuson
PRO
1
240
Featured
See All Featured
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
190
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
480
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
550
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Unsuck your backbone
ammeep
672
58k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
760
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.4k
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