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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Frederic Jean
March 14, 2012
Technology
2
140
Parlez-Vous HTTP?
Introduction to the HTTP protocol, complete with HTTP Status Cats
Frederic Jean
March 14, 2012
Tweet
Share
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
なぜ今、コスト最適化(倹約)が必要なのか? ~AWSでのコスト最適化の進め方「目的編」~
htan
1
110
~Everything as Codeを諦めない~ 後からCDK
mu7889yoon
3
270
ZOZOにおけるAI活用の現在 ~開発組織全体での取り組みと試行錯誤~
zozotech
PRO
5
4.8k
今日から始めるAmazon Bedrock AgentCore
har1101
4
390
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
3
870
日本の85%が使う公共SaaSは、どう育ったのか
taketakekaho
1
140
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
190
Tebiki Engineering Team Deck
tebiki
0
24k
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.1k
プロポーザルに込める段取り八分
shoheimitani
1
170
AIと新時代を切り拓く。これからのSREとメルカリIBISの挑戦
0gm
0
770
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
150
Featured
See All Featured
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
140
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
Unsuck your backbone
ammeep
671
58k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Code Reviewing Like a Champion
maltzj
527
40k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.3k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
110
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Music & Morning Musume
bryan
47
7.1k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
50
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
Prompt Engineering for Job Search
mfonobong
0
160
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