Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
HTTP
Search
Andrew Liu
March 28, 2012
Programming
1.6k
17
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
HTTP
2012 CCSP
Andrew Liu
March 28, 2012
More Decks by Andrew Liu
See All by Andrew Liu
Facebook Graph API
eggegg
7
700
Version Control System - Git
eggegg
4
730
Introduction to Ruby
eggegg
3
660
Defly
eggegg
0
400
Other Decks in Programming
See All in Programming
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
310
Materialが消えた日 〜真っ白なFlutterキャンバスにRenderObjectで絵を描く〜
umigishiaoi
0
150
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
170
クラウドエージェントは、 何がそんなに便利なのか / what makes cloud agents so useful
rkaga
5
800
AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction to IaC in the AI Era
akihisaikeda
6
1.4k
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
290
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
310
Будущее локальных LLM – Алексей Голобурдин, PythoNN
sobolevn
0
110
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.8k
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3.2k
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
3
1.4k
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
1.2k
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Darren the Foodie - Storyboard
khoart
PRO
4
4.1k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
830
Marketing to machines
jonoalderson
1
6k
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Unsuck your backbone
ammeep
672
58k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
520
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
970
Transcript
HTTP Andrew Liu
Hypertext Transfer Protocol
Hypertext Transfer Protocol <a href=”https://www.facebook.com/mikechencom”>Prof. Mike</a>
URL - Uniform Resource Locator https://www.facebook.com/prof.mike.chen
URL - Uniform Resource Locator https://www.facebook.com/prof.mike.chen scheme name http https
spdy
URL - Uniform Resource Locator https://www.facebook.com/prof.mike.chen scheme name http https
spdy authority
URL - Uniform Resource Locator https://www.facebook.com/prof.mike.chen scheme name http https
spdy authority path
Mike
Mike Hi Mike, How are you?
Mike Hi Mike, How are you? #@!@#!#$#@$
Mike
Mike Hi Mike, How are you?
Mike Hi Mike, How are you? Fine
Mike Hi Mike, How are you? Fine english://mike/status
www.facebook.com https://www.facebook.com/prof.mike.chen
www.facebook.com GET /prof.mike.chen HTTP/1.1 https://www.facebook.com/prof.mike.chen
www.facebook.com GET /prof.mike.chen HTTP/1.1 <html>.... https://www.facebook.com/prof.mike.chen
Real case: request GET / HTTP/1.1 Host: www.facebook.com Connection: keep-alive
Cache-Control: max-age=0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.83 Safari/535.11 Accept: text/html,application/xhtml+xml,application/ xml;q=0.9,*/*;q=0.8 Accept-Encoding: gzip,deflate,sdch Accept-Language: zh-TW,zh;q=0.8,en-US;q=0.6,en;q=0.4 Accept-Charset: UTF-8,*;q=0.5 Cookie: ....
www.facebook.com GET / HTTP/1.1 <html>.... https://www.facebook.com/
www.facebook.com GET / HTTP/1.1 <html>.... https://www.facebook.com/ How does it know
I have logged in?
HTTP is Stateless Server doesn’t know what the user did
last time.
www.facebook.com
www.facebook.com Hi, I’m Mike.
www.facebook.com Hi, I’m Mike. Ok, you’re Mike.
www.facebook.com Hi, I’m Mike. Ok, you’re Mike. Everyone can be
Mike now!
www.facebook.com
www.facebook.com Hi, I’m Mike. My password is “lab430”.
www.facebook.com Hi, I’m Mike. My password is “lab430”. Ok, you’re
Mike. Code: a3ad31
www.facebook.com Hi, I’m Mike. My password is “lab430”. Ok, you’re
Mike. Code: a3ad31 My code is a3ad31.
www.facebook.com Hi, I’m Mike. My password is “lab430”. Ok, you’re
Mike. Code: a3ad31 My code is a3ad31. Ok, you’re Mike.
www.facebook.com Hi, I’m Mike. My password is “lab430”. Ok, you’re
Mike. Code: a3ad31 Browser must remember the code! My code is a3ad31. Ok, you’re Mike.
Cookie to Rescue
Cookie to Rescue Key - value pair storage
Cookie to Rescue Key - value pair storage Sent every
time in HTTP request header Cookie: km_dbg=0; heroku_session_v=1; ...
Real case: response HTTP/1.1 200 OK Cache-Control: private, no-cache, no-store,
must-revalidate Expires: Sat, 01 Jan 2000 00:00:00 GMT Pragma: no-cache X-Content-Type-Options: nosniff X-Frame-Options: DENY Set-Cookie: _e_1V7k_5=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/; domain=.facebook.com; httponly Set-Cookie: L=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/; domain=.facebook.com; httponly Set-Cookie: wd=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/; domain=.facebook.com; httponly Content-Encoding: gzip Content-Type: text/html; charset=utf-8 X-FB-Debug: XKkfgkQmkDwO4VsOafKYEhfDbYk9WN8ANLHRCrl/9eU= X-Cnection: close Transfer-Encoding: chunked Date: Tue, 27 Mar 2012 13:16:47 GMT
HTTP Status Code
HTTP Status Code 2XX Success 200 OK
HTTP Status Code 2XX Success 200 OK 3XX Redirection 301
Move Permanently 302 Found (a.k.a. Moved Temporarily) 304 Not Modified
HTTP Status Code 2XX Success 200 OK 3XX Redirection 301
Move Permanently 302 Found (a.k.a. Moved Temporarily) 304 Not Modified 4XX Client Error 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found
HTTP Status Code 2XX Success 200 OK 3XX Redirection 301
Move Permanently 302 Found (a.k.a. Moved Temporarily) 304 Not Modified 4XX Client Error 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 5XX Server Error 500 Internal Server Error
Advanced Topics
mikechen.com
mikechen.com http://mikechen.com/
mikechen.com GET / HTTP/1.1 http://mikechen.com/
mikechen.com GET / HTTP/1.1 <html>... http://mikechen.com/
mikechen.com GET / HTTP/1.1 <html>... http://mikechen.com/
mikechen.com
mikechen.com http://mikechen.com/
mikechen.com Modified? http://mikechen.com/
mikechen.com Modified? No! http://mikechen.com/
mikechen.com Modified? No! http://mikechen.com/
HTTP Request Header
HTTP Request Header Host Host: www.apple.com
HTTP Request Header Host User-Agent Host: www.apple.com User-Agent: Mozilla/5.0 (Windows;
U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
HTTP Request Header Host User-Agent Accept-Language Host: www.apple.com User-Agent: Mozilla/5.0
(Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729) Accept-Language: en-us,en;q=0.5
HTTP Request Header Host User-Agent Accept-Language Accept-Encoding Host: www.apple.com User-Agent:
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729) Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate
HTTP Request Header Host User-Agent Accept-Language Accept-Encoding If-Modified-Since Host: www.apple.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729) Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate If-Modified-Since: Sat, 28 Nov 2009 06:38:19 GMT
HTTP Request Header Host User-Agent Accept-Language Accept-Encoding If-Modified-Since Referer Host:
www.apple.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729) Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate If-Modified-Since: Sat, 28 Nov 2009 06:38:19 GMT Referer: www.google.com
HTTP Response Header
HTTP Response Header Cache-Control Cache-Control: max-age=3600, public
HTTP Response Header Cache-Control Content-Encoding Cache-Control: max-age=3600, public Content-Encoding: gzip
HTTP Response Header Cache-Control Content-Encoding Content-Type Cache-Control: max-age=3600, public Content-Encoding:
gzip Content-Type: text/html; charset=UTF-8
HTTP Response Header Cache-Control Content-Encoding Content-Type Content-Disposition Cache-Control: max-age=3600, public
Content-Encoding: gzip Content-Type: text/html; charset=UTF-8 Content-Disposition: attachment; filename=”ccsp.pdf”
HTTP Response Header Cache-Control Content-Encoding Content-Type Content-Disposition Content-Length Cache-Control: max-age=3600,
public Content-Encoding: gzip Content-Type: text/html; charset=UTF-8 Content-Disposition: attachment; filename=”ccsp.pdf” Content-Length: 79324
HTTP Response Header Cache-Control Content-Encoding Content-Type Content-Disposition Content-Length Location Cache-Control:
max-age=3600, public Content-Encoding: gzip Content-Type: text/html; charset=UTF-8 Content-Disposition: attachment; filename=”ccsp.pdf” Content-Length: 79324 Location: http://ntumobile.org
HTTP Verbs
HTTP Verbs GET GET /books read
HTTP Verbs GET POST GET /books read POST /books create
HTTP Verbs GET POST PUT GET /books read POST /books
create PUT /books/hunger-game update
HTTP Verbs GET POST PUT DELETE GET /books read POST
/books create PUT /books/hunger-game update DELETE /books/hunger-game delete
None
None
<form method=”get” action=”/search”> <input type=”text” name=”q”> </form> or
<form method=”get” action=”/search”> <input type=”text” name=”q”> </form> or GET /search?q=mike+chen
HTTP/1.1 Host: www.google.com.tw User-Agent: Mozilla/4.0
{ :q => “mike chen” } <form method=”get” action=”/search”> <input
type=”text” name=”q”> </form> or GET /search?q=mike+chen HTTP/1.1 Host: www.google.com.tw User-Agent: Mozilla/4.0
None
<form method=”post” action=”/login”> <input type=”text” name=”user”> <input type=”password” name=”password”> <input
type=”submit” value=”Submit”> </form>
<form method=”post” action=”/login”> <input type=”text” name=”user”> <input type=”password” name=”password”> <input
type=”submit” value=”Submit”> </form> POST /login HTTP/1.1 Host: ccsp2012.org User-Agent: Mozilla/4.0 Content-Length: 25 Content-Type: application/x-www-form-urlencoded user=mike&password=lab430
END