2011年11月30日 星期三

使用瀏覽器連到 http://www.google.com 發生什麼事情 (python http client test by httplib)

在 chrome 上打 http://www.google.com
很神奇吧!

hc.py
1 #!/usr/bin/env python
2
3 import httplib
4
5 conn = httplib.HTTPConnection(host="www.google.com")
6
7 conn.request("GET", "/")
8 r1 = conn.getresponse()
9 print r1.status, r1.reason
10 print "msg:", r1.msg
11 print "version:", r1.version
12 print "headers:", r1.getheaders()
13 data1 = r1.read()
14 print data1
15
16 data1 = r1.read()
17 print data1

r.txt 是 hc.py 得到的結果。從 r.txt line 2 得到 server 傳回的 header: Location: http://www.google.com.tw/
14.30 Location 的說明可以得知, 這是要做 redirect 到 www.google.com.tw, 所以 chrome 就會在連到 www.google.com.tw。從 wireshark 抓封包可以看到這樣的流程。

r.txt
1 302 Found
2 msg: Location: http://www.google.com.tw/
3 Cache-Control: private
4 Content-Type: text/html; charset=UTF-8
5 Set-Cookie: PREF=ID=8a924e1dbd9c2f9e:FF=0:TM=1322661327:LM=1322661327:S=YKAvttVjJWz8Xb2z; expires=Fri, 29-Nov-2013 13:55:27 GMT; path=/; domain=.google.com
6 Date: Wed, 30 Nov 2011 13:55:27 GMT
7 Server: gws
8 Content-Length: 222
9 X-XSS-Protection: 1; mode=block
10 X-Frame-Options: SAMEORIGIN
11
12 version: 11
13 headers: [('content-length', '222'), ('x-xss-protection', '1; mode=block'), ('set-cookie', 'PREF=ID=8a924e1dbd9c2f9e:FF=0:TM=1322661327:LM=1322661327:S=YKAvttVjJWz8Xb2z; expires=Fri, 29-Nov-2013 13:55:27 GMT; path=/; domain=.google.com'), ('server', 'gws'), ('location', 'http://www.google.com.tw/'), ('cache-control', 'private'), ('date', 'Wed, 30 Nov 2011 13:55:27 GMT'), ('x-frame-options', 'SAMEORIGIN'), ('content-type', 'text/html; charset=UTF-8')]
14 <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
15 <TITLE>302 Moved</TITLE></HEAD><BODY>
16 <H1>302 Moved</H1>
17 The document has moved
18 <A HREF="http://www.google.com.tw/">here</A>.
19 </BODY></HTML>

ref: http://www.cnblogs.com/chenzehe/archive/2010/08/30/1812995.html

沒有留言:

張貼留言

使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。

我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。