码迷,mamicode.com
首页 > Web开发 > 详细

根据HTTP header收集客户端相关信息 --- tornado demo

时间:2014-11-13 10:49:16      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   ar   os   使用   sp   

理解:当客户端访问服务器时,会给服务器发送相关信息。

 

tornado程序中,可在“处理请求类”(继承自tornado.web.RequestHandler)的请求函数中使用self.request.headers获得HTTP header客户端相关信息(包括"User-Agent")

User-Agent说明:HTTP客户端运行的浏览器类型的详细信息。通过该头部信息,web服务器可以判断到当前HTTP请求的客户端浏览器类别。

 

tornado程序:

bubuko.com,布布扣
 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.headers
13 
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程序中输出

bubuko.com,布布扣

 

这是因为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

标签:style   blog   http   io   color   ar   os   使用   sp   

原文地址:http://www.cnblogs.com/mchcylh/p/4094239.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!