cookie与session简介

-简介

什么是cookie

cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带这些键值对,以便服务器提取有用信息

cookie的原理

cookie的工作原理是:由服务器产生内容,浏览器收到请求后保存在本地;当浏览器再次访问时,浏览器会自动带上cookie,这样服务器就能通过cookie的内容来判断这个是“谁”了

查看cookie

session的由来

cookie虽然在一定程度上解决了“保持状态”的需求,但是由于cookie本身最大支持4096字节,以及cookie本身保存在客户端,可能被拦截或窃取,因此就需要有一种新的东西,它能支持更多的字节,并且它保存在服务器,有较高的安全性。这就是session

cookie和session其实是共通性的东西,session是基于cookie工作的

-Django操作cookie

cookie即是服务端告诉客户端浏览器需要保存的内容,但客户端也可选择拒绝保存,如edge浏览器中设置关闭“允许站点保存和读取 Cookie 数据(推荐)”,则会导致一些网站访问不进去或每点击一个网页都需登录。

PS: 

Django要想操作cookie,之前Django三板斧(render,HttpResponse,redirect)都是直接return xxx(),但若想操作cookie则需先:
    obj = xxx()
    操作cookie语句 # 必须先用obj对象接收,在中间操作
    return obj

方法:

设置cookie:
	obj.set_cookie(key, value)
获取cookie:
	request.COOKIE.get(key)
设置超时时间(一段时间未登录自动注销):
	obj.set_cookie(key, value, max_age = num)   # 单位为秒  PS: IE浏览器为expires参数
注销功能:
    obj.delete_cookie(key)

-Django操作session

session是保存在服务端的,给客户端返回的是一个随机字符串

客户端浏览器保存格式:                sessionid : 随机字符串

那session产生的随机字符串保存在服务端的哪呢?有多种保存方式:

        1、数据库

                保存在数据库时,是保存在django_session表中的,包含三个字段:

                session_key                   session_data                       expiry_date(超时时间,Django默认是14后)

                执行数据库迁移命令,Django自动创建的表中就有一张django_session表

        2、文件

        3、redis

        4、memcache

        …

设置session
    request.session['key'] = value
获取session:
    request.session.get('key')
设置过期/超时时间:
    request.session.set_expiry()
	括号内有四种参数可选
		1.整数              整数秒
		2.日期对象          指定日期失效
		3.0                浏览器窗口一关闭立刻失效
        4.不写              默认14天
清除session:
	request.session.delete()     # 只清除服务端保存的,客户端浏览器的 不删
    request.session.flush()      # 浏览器和服务端的都删

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weer-wmq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值