最近学习了用 tornado 编写一段小程序,根据 HTTP header 收集客户端相关信息:是否手机、操作系统、浏览器等信息。
先上代码,简单实用
import tornado.ioloop
import tornado.httpserver
import tornado.options
import tornado.web
class IndexHandle(tornado.web.RequestHandler):
uid = property(lambda self: (self.get_secure_cookie("__UID__") or '').decode())
username = property(lambda self: (self.get_secure_cookie("__USERNAME__") or '').decode())
def get(self):
self.write("-------method:\n")
self.write(self.request.method)
self.write("\n-------uri:\n")
self.write(self.request.uri)
self.write("\n-------path:\n")
self.write(self.request.path)
self.write("\n-------query:\n")
self.write(self.request.query)
self.write("\n-------version:\n")
self.write(self.request.version)
self.write("\n-------headers:\n")
self.write(self.request.headers)
self.write("\n-------body:\n")
self.write(self.request.body)
self.write("\n-------remote_ip:\n")
self.write(self.request.remote_ip)
self.write("\n-------protocol:\n")
self.write(self.request.protocol)
self.write("\n-------host:\n")
self.write(self.request.host)
self.write("\n-------arguments:\n")
self.write(self.request.arguments)
self.write("\n-------query_arguments:\n")
self.write(self.request.query_arguments)
self.write("\n-------body_arguments:\n")
self.write(self.request.body_arguments)
self.write("\n-------files:\n")
self.write(self.request.files)
self.write("\n-------cookies:\n")
self.write(self.request.cookies)
self.write("\n")
if __name__ == "__main__":
tornado.options.parse_command_line()
__app__=tornado.web.Application(handlers=[(r'/', IndexHandle)], debug=True)
__http_server__=tornado.httpserver.HTTPServer(__app__)
__http_server__.listen(8000)
参考文档:http://www.tornadoweb.org/en/stable/httputil.html#tornado.httputil.HTTPHeaders.get_list