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. css 命名规则 BEM!

    随着CSS的发展,使用CSS有语义化的命名约定和CSS层的分离,将有助于它的可扩展性,性能的提高和代码的组织管理.著作权归作者所有. BEM本质应该是一个css命名方案,最流行的命名规则之一就是BEM ...

  2. 【计算机算法设计与分析】——SVM

    一.简介 支持向量机(support vector machines)是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解.由简至繁的 ...

  3. springboot中使用定时器

    springboot使用注解注册定时器 @Configuration @EnableScheduling public class WeatherDataTask implements Schedul ...

  4. 数据结构C++使用邻接表实现图

    定义邻接表存储的图类.[实验要求] (1)创建一个邻接表存储的图:(2)返回图中指定边的权值:(3)插入操作:向图中插入一个顶点,插入一条边:(4)删除操作:从图中删除一个顶点,删除一条边:(5)图的 ...

  5. Vuex mapAction的基本使用

    mapAction-store中的异步方法 import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default new ...

  6. java中三大集合框架

    一.List集合 1.List实现的超级父类接口:Collection 存储一组不唯一(允许重复),有序的对象. 2.了解ArrayList类 A):定义的格式:ArrayList<具体类型&g ...

  7. 浅谈:什么是.NET

    .NET是 Microsoft XML Web services 平台.XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统.设备或编 ...

  8. 题解 BZOJ4709

    题目描述 一道简单DP优化调了好久qwq 首先分析题目,发现每次从一边取贝壳是完全没用的,此题本质就是将区间分成数个区间,使区间价值和最大. 可以发现一个性质,那就是最优解的每个区间的两端点一定相同且 ...

  9. Golang gRPC学习(04): Deadlines超时限制

    为什么要使用Deadlines 当我们使用gRPC时,gRPC库关系的是连接,序列化,反序列化和超时执行.Deadlines 允许gRPC客户端设置自己等待多长时间来完成rpc操作,直到出现这个错误 ...

  10. CVE-2020-0796“永恒之黑”漏洞复现

    0x00 漏洞概述 Microsoft Server Message Block 3.1.1(SMBv3)协议在处理某些请求的方式中存在代码执行漏洞.攻击者可以精心构造数据包发送到SMB服务器,无需经 ...