python笔记(web后端,Django,Session和Cookie)

本文深入探讨了CSRF攻击原理,详细解释了Cookie与Session的工作机制及其在登录、用户习惯记录及投票限制等场景的应用。同时,对比了Cookie与Session在数据存储、安全性和资源占用方面的优缺点。
摘要由CSDN通过智能技术生成

1、CSRF
在这里插入图片描述
2、Cookie

  1. Cookie:的由来:

    因为HTTP请求没有状态,每一次请求都是独立的

  2. Cookie是什么?

    就是保存在浏览器上的键值对
    服务端控制着响应,在响应里可以让浏览器在本地保存(键值对)Cookie
    下一次请求在发送的时候就会自动携带这个Cookie值

  3. Cookie应用

    1、登陆,七天免登陆
    2、记录用户的浏览习惯
    3、简单的投票限制

  4. Cookie是服务端设置的,我们浏览器可以不让服务端设置Cookie

  5. Cookie默认关闭浏览器就失效

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可将设置Cookie封装成装饰器(类似于以下写法)

from functools import wraps
def login_wraps(f):
    @wraps(f)
    def inner(request,*args,**kwargs):
        ret = request
        ret1 = f(request,*args,**kwargs)
        if ret == '1':
            return ret1
        else:

            return 0
    return inner

@login_wraps
def func(request):

    print(request)
    return str(request) + 'k'
print(func('2'))

3、session

  1. Session是什么?

    是保存在服务端的键值对
    Session必须依赖于Cookie

     gjhfgjhdfgd;{'is_login':1,'user':'li'}
     dfsfdhshhsd;{'is_login':1,'user':'long'}
    

    django-session 存放位置

  2. 存session具体做的事儿:

    1、在服务端生成随机字符串
    2、生成一个和上面随机字符串对应的大字典,用来保存用户数据
    3、随机字符串当成cookie返回给浏览器

  3. 取session:

    1、从请求携带的Cookie里面找到随机字符串
    2、拿到随机字符串去session中找到对应大字典
    3、从大字典中根据key取值

  4. 优缺点

    优点:
    存数据多、安全性高
    缺点:
    数据量大,占资源

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
python中cookie和session的使用方法

	class Userinfo(views.View):
	    类的方法加装饰器
	    method_decorator('自己的装饰器')
	    def get(self,request):
	        ret = render(request,'test_test.html')
	        session请求
	        request.session['1'] = {'hame':1,'dd':2}
	        ret.set_signed_cookie('li','youxiu')
	        print(request.session.get('1')['dd'])
	        print(request.get_signed_cookie('li'))
	        return ret
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值