cookie和session讲解
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讲解的更多相关文章
- Django实现表单验证、CSRF、cookie和session、缓存、数据库多表操作(双下划綫)
通常验证用户输入是否合法的话,是前端js和后端共同验证的,这是因为前端js是可以被禁用的,假如被禁用了,那就没法用js实现验证合法与否了,也就是即使用户输入的不合法,但是也没提示,用户也不知道怎么输入 ...
- 认识cookie与session的区别与应用
通常我们所说的浏览器自动保存密码,下次不用登陆,网页换皮肤,用户引导,提示一次就不再出现的内容,大部分通过cookie或者session来实现的,在这次制作用户引导中,本人就用到了cookie的内容, ...
- Java Web(三) 会话机制,Cookie和Session详解
很大一部分应该知道什么是会话机制,也能说的出几句,我也大概了解一点,但是学了之后几天不用,立马忘的一干二净,原因可能是没能好好理解这两种会话机制,所以会一直遗忘,一直重新回过头来学习它,今天好好把他总 ...
- JavaWeb(二)会话管理之细说cookie与session
前言 前面花了几篇博客介绍了Servlet,讲的非常的详细.这一篇给大家介绍一下cookie和session. 一.会话概述 1.1.什么是会话? 会话可简单理解为:用户开一个浏览器,点击多个超链接, ...
- 第74节:Java中的Cookie和Session
第74节:第74节:Java中的Cookie和Session ServletContext: 什么是ServletContext,有什么用哦,怎么用呢? 启动服务器后,会给每个应用程序创建一个Serv ...
- 自定义分页及Cookie、Session机制
分页 自定义分页 data = [] , ): tmp = {"id": i, "name": "alex-{}".format(i)} d ...
- Java Web(三) 会话机制,Cookie和Session详解(转载)
https://www.cnblogs.com/whgk/p/6422391.html 很大一部分应该知道什么是会话机制,也能说的出几句,我也大概了解一点,但是学了之后几天不用,立马忘的一干二净,原因 ...
- IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token
本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动 ...
- Django详解之四、cookie和session
一.使用背景 思路 简单的后台管理:对人员的管理 1. 登录注册 2. 老师 班级管理 学院管理 3. 增删改查 开发: 1. 定义数据库表结构 a) 表结构关系 i. class classes(m ...
随机推荐
- c++之广度优先搜索
广度优先搜索BFS(Breadth First Search)也称为宽度优先搜索,它是一种先生成的结点先扩展的策略. 在广度优先搜索算法中,解答树上结点的扩展是按它们在树中的层次进行的.首先生成第一层 ...
- Visual Studio Code中设置sftp同步代码到服务器
## **前言** - 绝对的大佬才会直接在Linux下用vim写代码,我等小白只能通过IDE来了,所以将代码同步到服务器上就很重要了.使用vs code设置好sftp就可以实现这一功能. - 设置之 ...
- Android 开发学习进程0.11 pageview relativelayout 沉浸式标题栏
fragment与pageView fragment fragment不可以侧滑切换相关界面,但多数代码位于fragment中,易于维护,同时不会受到多个手势滑动的影响 pageView pageVi ...
- oracle正则表达式语法介绍及实现手机号码匹配方法
Oracle10g提供了在查询中使用正则表达的功能,它是通过各种支持正则表达式的函数在where子句中实现的.本文将简单的介绍oracle正则表达式常用语法,并通过一个手机特号匹配的例子演示正则表达式 ...
- 使用halo搭建自己的博客并配置https域名访问
首先进行java配置 # 1. 下载jdk [下载地址](https://www.oracle.com/cn/java/technologies/javase-downloads.html) - 一定 ...
- 轻音少女K-on闹钟,时钟,日历,整点报时
在网上找了很久才找到这个东西, 所以分享出了,方便大家下载 链接: https://pan.baidu.com/s/11wB57F2Td1FPp9RBmTvg 密码: 2xt5
- moonlight不显示鼠标指针
多显示屏导致moonlight不显示鼠标指针, 使用的时候关闭其他显示屏,只使用一个显示屏,就可以正常显示了.
- 【luogu1613】跑路 - 倍增+Floyd
题目描述 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资,小A买了一个十分牛B的空间跑路器,每秒钟 ...
- jraft日志复制
jraft的日志复制是指从leader往follower复制logEntry的过程. 日志复制从节点成为leader开始.在nodeImpl的becomeLeader中 private void be ...
- 《Java从入门到失业》第二章:Java环境(四):IDE集成环境
2.4IDE集成环境 在掌握了编写.编译和运行Java程序的基本步骤以后,你肯定就在想,这太麻烦了,有没有更好的工具?当然有了,那就是IDE.IDE就是专业的集成开发环境(Integrated Dev ...