1.cookie是什么?

保存在浏览器本地上的一组组键值对

2.session是什么?

保存在服务器上的一组组键值对

3.为什么要有cookie?

HTTP是无协议状态,每次请求都是互相独立的,没有办法保存状态

4.为什么要有session?

cookie的大小和个数受到浏览器的限制

cookie保存在本地浏览器不太安全

5.cookie特性:

由服务让浏览器进行设置返回set-cookie的响应头

浏览器将键值对保存在本地,有权利不保存,下次访问是继续携带

django中操作cookie

# 设置cookie
response = HttpReponse('xxx')
response.set_cookie(key,value) # max_age 超时时间 path 生效的路径
response.set_signed_cookie(key,value,salt='xxx') # 获取cookie
request.COOKIES {} .get(key)
request.get_signed_cookie(key,salt='xxx',default='') # 删除cookie 将值设置为空 超时时间设置为0
response.delete_cookie(key)

6.session的过程

第一个请求,没有cookie,设置键值对,根据浏览器生成一个唯一表是,给一个字典设置键值对

将字典转成字符串(json序列化)进行加密,将唯一标识和字符串保存在数据库中(django-session)返回给浏览器唯一标识(sessionid)的cookie,下次请求携带sessionid,服务器根据session找到对应的数据(session-data)进行解密,进行反序列化,根据key获取对应的值

  

# 设置session
reqeust.session[key] = value # 获取
reqeust.session[key]
reqeust.session.get(key) # 删除
request.session.pop(key) del reqeust.session[key]
request.session.delete() # 删除所有的键值对 不删除cookie
request.session.flush() # 删除所有的键值对 也删除cookie # 其他
默认的超时时间(2周)
request.session.set_expiry(value) # 设置超时时间
request.session.clear_expired() # 清除已经失效的session数据 from django.conf import global_settings SESSION_COOKIE_NAME = 'sessionid'
SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2
SESSION_SAVE_EVERY_REQUEST = True # 每次请求都更新session数据
SESSION_EXPIRE_AT_BROWSER_CLOSE = True # cookie在浏览器关闭时就失效
SESSION_ENGINE = 'django.contrib.sessions.backends.db' # 默认是数据库 文件 缓存 数据库+缓存 加密cookie

  

cookie和session讲解的更多相关文章

  1. Django实现表单验证、CSRF、cookie和session、缓存、数据库多表操作(双下划綫)

    通常验证用户输入是否合法的话,是前端js和后端共同验证的,这是因为前端js是可以被禁用的,假如被禁用了,那就没法用js实现验证合法与否了,也就是即使用户输入的不合法,但是也没提示,用户也不知道怎么输入 ...

  2. 认识cookie与session的区别与应用

    通常我们所说的浏览器自动保存密码,下次不用登陆,网页换皮肤,用户引导,提示一次就不再出现的内容,大部分通过cookie或者session来实现的,在这次制作用户引导中,本人就用到了cookie的内容, ...

  3. Java Web(三) 会话机制,Cookie和Session详解

    很大一部分应该知道什么是会话机制,也能说的出几句,我也大概了解一点,但是学了之后几天不用,立马忘的一干二净,原因可能是没能好好理解这两种会话机制,所以会一直遗忘,一直重新回过头来学习它,今天好好把他总 ...

  4. JavaWeb(二)会话管理之细说cookie与session

    前言 前面花了几篇博客介绍了Servlet,讲的非常的详细.这一篇给大家介绍一下cookie和session. 一.会话概述 1.1.什么是会话? 会话可简单理解为:用户开一个浏览器,点击多个超链接, ...

  5. 第74节:Java中的Cookie和Session

    第74节:第74节:Java中的Cookie和Session ServletContext: 什么是ServletContext,有什么用哦,怎么用呢? 启动服务器后,会给每个应用程序创建一个Serv ...

  6. 自定义分页及Cookie、Session机制

    分页 自定义分页 data = [] , ): tmp = {"id": i, "name": "alex-{}".format(i)} d ...

  7. Java Web(三) 会话机制,Cookie和Session详解(转载)

    https://www.cnblogs.com/whgk/p/6422391.html 很大一部分应该知道什么是会话机制,也能说的出几句,我也大概了解一点,但是学了之后几天不用,立马忘的一干二净,原因 ...

  8. IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

    本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动 ...

  9. Django详解之四、cookie和session

    一.使用背景 思路 简单的后台管理:对人员的管理 1. 登录注册 2. 老师 班级管理 学院管理 3. 增删改查 开发: 1. 定义数据库表结构 a) 表结构关系 i. class classes(m ...

随机推荐

  1. 漫画 | 到底是什么让IT人如此苦逼???

    写在最后 漫画是有点夸张,不过多少还是有点现实开发过程的影子! 老板很乐观,核心就是三个月上线,至于怎么办那是底下人的事. 产品很无奈,心里盘算着,万万不可在他这一环节耽误了进度,时间这么赶,先出个壳 ...

  2. 07 CentOS简单命令与XShell简单使用

    关机 poweroff 重启 init 6 查看ip地址 ifconfig 查看当前目录下的文件与目录 ls ll 判断命令是内部还是外部的类型 type ifconfig 通过file /sbin/ ...

  3. 【Linux】linux history命令执行后显示历史命令执行时间

    vim  ~/.bashrc 或者 ~/.bash_profile  或者 获取root权限修改vim /etc/profile 最后添加 export HISTTIMEFORMAT="%F ...

  4. Linux下C++提示bind:address already in use

    此地址下的此端口被占用,有可能你已经关闭了程序依然如此,因为TCP的TIME_WAIT(不懂的话可以可以查一查).解决方案:1.设置为SO_REUSEADDR 2.查看进程进程号(ps -ef 或者 ...

  5. 剑指Offer顺时针打印矩阵

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...

  6. springboot中RedisTemplate的使用

    springboot中RedisTemplate的使用 参考 了解 Redis 并在 Spring Boot 项目中使用 Redis--以IBM为学习模板 springboot之使用redistemp ...

  7. c# Attribute会不会影响性能

    Attribute很方便,标记一个类,设置这个类的额外信息,而不用另外设计存储这个信息. 那么频繁大量使用Attribute会不会影响类的性能. 为此,简单测试. 代码: 略............. ...

  8. 计算机网络要点---Http

    计算机网络要点---Http 1.工作流程 一次HTTP操作称为一个事务,其工作过程可分为四步: 首先客户机与服务器需要建立 TCP 连接.只要单击某个超级链接,HTTP的工作开始. 建立连接后,客户 ...

  9. Java多线程_生产者消费者模式1

    生产者消费者模型       具体来讲,就是在一个系统中,存在生产者和消费者两种角色,他们通过内存缓冲区进行通信,生产者生产消费者需要的资料,消费者把资料做成产品.生产消费者模式如下图.(图片来自网络 ...

  10. js对象数组新增、修改时的验证是否重复的逻辑

    JS代码: // 定义数据集合 const persons = [ { id: 1, name: '张三' }, { id: 2, name: '李四' } ] console.log('') con ...