標籤:style blog http io color ar os 使用 sp
理解:當Client Access Server時,會給伺服器發送相關資訊。
tornado程式中,可在“處理請求類”(繼承自tornado.web.RequestHandler)的請求函數中使用self.request.headers獲得HTTP header用戶端相關資訊(包括"User-Agent")
User-Agent說明:HTTP用戶端啟動並執行瀏覽器類型的詳細資料。通過該頭部資訊,web伺服器可以判斷到當前HTTP請求的用戶端瀏覽器類別。
tornado程式:
1 import tornado.httpserver 2 import tornado.ioloop 3 import tornado.options 4 import tornado.web 5 6 from tornado.options import define, options 7 define("port", default=8000, help="run on the given port", type=int) 8 9 class IndexHandler(tornado.web.RequestHandler):10 def get(self):11 self.write("hello world")12 print self.request.headers13 14 15 if __name__ == "__main__":16 tornado.options.parse_command_line()17 app = tornado.web.Application(handlers=[(r"/", IndexHandler)], debug=True)18 http_server = tornado.httpserver.HTTPServer(app)19 http_server.listen(options.port)20 tornado.ioloop.IOLoop.instance().start()View Code
運行上面的程式後可以在瀏覽器中輸入:http://localhost:8000訪問
訪問成功後,會在tornado程式中輸出
這是因為self.request.headers返回的是一個字典類型,用索引值對的方式儲存用戶端的資訊。
例如:
分析其中的‘User-Agent’:
Mozilla/5.0 : 先前用以指示與Mozilla排版引擎的相容性
(Windows NT 6.3; WOW64) : 瀏覽器所運行於的系統的詳細資料
AppleWebKit/537.36 : 瀏覽器所使用的平台
(KHTML, like Gecko) : 瀏覽器平台的細節
Chrome/38.0.2125.111 Safari/537.36 : 被瀏覽器用於指示特定的直接由瀏覽器提供或者通過第三方提供的可用的增強功能。
參考資料:http://en.wikipedia.org/wiki/User_agent 英文版
http://zh.wikipedia.org/wiki/%E7%94%A8%E6%88%B7%E4%BB%A3%E7%90%86 中文版
根據HTTP header收集用戶端相關資訊 --- tornado demo