Upgrade to Pro — share decks privately, control downloads, hide ads and more …

HTTP

 HTTP

2012 CCSP

Andrew Liu

March 28, 2012
Tweet

More Decks by Andrew Liu

Other Decks in Programming

Transcript

  1. 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: ....
  2. 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.
  3. 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.
  4. Cookie to Rescue Key - value pair storage Sent every

    time in HTTP request header Cookie: km_dbg=0; heroku_session_v=1; ...
  5. 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
  6. HTTP Status Code 2XX Success 200 OK 3XX Redirection 301

    Move Permanently 302 Found (a.k.a. Moved Temporarily) 304 Not Modified
  7. 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
  8. 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
  9. 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)  
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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”
  15. 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
  16. 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
  17. HTTP Verbs GET POST PUT GET /books read POST /books

    create PUT /books/hunger-game update
  18. HTTP Verbs GET POST PUT DELETE GET /books read POST

    /books create PUT /books/hunger-game update DELETE /books/hunger-game delete
  19. { :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
  20. <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
  21. END