首页 > 代码库 > Django框架基础之COOKIE

Django框架基础之COOKIE

cookie:
a. 保存在浏览器端“键值对”
b. 服务端可以向用户浏览器端写cookie
c. 客户端每次方请求时,会携带cookie去

服务端给浏览器发送cookie:
obj=redirect(‘‘)
obj.set_cookie()
obj.set_signed_cookie(key,value,salt=‘‘,)

服务端从浏览器获取cookie:
request.COOKIE.get(‘key‘)
request.get_signed_cookie()

cookie: key, 键
value=http://www.mamicode.com/‘‘, 值
max_age=None, 超时时间 以秒为单位
expires=None, 超时时间
path=‘/‘, cookie生效的路径,/表示根路径,根路径的cookie可以被任何url的页面访问
domain=None, cookie生效的域名
secure=False, https传输
httponly=False 只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以覆盖)

应用: a 投票
b 用户登录

技术分享
1 在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。2 Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。3 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的,... 4 HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议5 要比http协议安全
https

 

利用cookie做用户验证:

技术分享
 1 def login(request): 2     if request.method==GET: 3         return render(request,login.html) 4     else: 5         username=request.POST.get(username) 6         passwd=request.POST.get(passwd) 7         if username==alex and passwd==123: 8             obj=redirect(/classes/) 9             # obj.set_cookie(‘ticket‘,‘dfsgtrhfgtd‘,max_age=‘10‘)  #最大时效    ‘一个月免登陆’10             obj.set_signed_cookie(ticket,123,salt=666,max_age=10)    #ticket=123:1dNbYh:Y3vofyscBVHMEOmld_Y7k-_iTjg11             return obj12         else:13             return render(request,login.html)
View Code
技术分享
 1 #cookie验证装饰器函数 2 def login_later(func): 3     def wrapper(*args): 4  5         print(args[0])   #<WSGIRequest: GET ‘/classes/‘> 6  7         # ticket = args[0].COOKIES.get(‘ticket‘) 8         ticket=args[0].get_signed_cookie(ticket,salt=666) 9         if not ticket:10             return redirect(/login/)11         else:12             return func(*args)13     return wrapper
View Code

 

Django框架基础之COOKIE