tornado 3.0.1 中关于cookie和secure cookie的那点事儿

        cookie是附加在http请求中的,tornado默认的set_cookie和get_cookie方法是明文不加密传输的,而set_secure_cookie和get_secure_cookie是明文加密传输的。代码见下:

import tornado.web
import tornado.ioloop

from tornado.options import define,options,parse_command_line
define('port',default=8888,help='run on the port',type=int)

class MainHandler(tornado.web.RequestHandler):
	def get(self):
		if not self.get_secure_cookie('username'):
			self.set_secure_cookie('username','littlethunder')
			self.write('just set your cookie')
		else:
			a=self.get_secure_cookie('username')
			print(a)
			self.write('you have cookie before')

def main():
	parse_command_line()
	app=tornado.web.Application(
			[(r'/',MainHandler)],
				cookie_secret='abcde'
			)
	app.listen(options.port)
	tornado.ioloop.IOLoop.instance().start()

if __name__=='__main__':
	main()


        通过浏览器可以看到效果如下:


        如果使用set_secure_cookie和get_secure_cookie方法,那么必须在tornado.web.Application中设置cookie_secret参数,’abcd'只是我测试写的,生产环境下可以用uuid生成一个随机字符串来用,但使用过程中要保证这个字符串恒定。 如果要用set_cookie和get_cookie方法,则只需把上面secure去掉,把cookie_secret参数也去掉即可,cookie就不截图了,是明文的。

        最后总结一些cookie和secure_cookie的区别:cookie是基于session的,即打开浏览器设置cookie后,只要不关闭浏览器cookie会一直保存,关闭浏览器后cookie删除,其实就是保存在浏览器运行进程的那块内存中。secure_cookie是保存在硬盘中的cookie,过期时间为一个月,所以一旦设置secure_cookie后,不论浏览器关闭与否,只要不清空cookie,这个值就一直保存直到cookie过期失效。


转载请注明:转自 http://blog.csdn.net/littlethunder/article/details/8933618

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值