一、会话定义
从打开浏览器访问一个网站,到关闭浏览器结束此次访问,称之为一次绘画
HTTP协议是无状态的,导致绘画状态难以保持
Cookies和session就是为了保持会话状态而诞生的两个存储技术
 
二、Cookies-定义
cookies是保存在客户端浏览器上的存储空间
 
cookies在浏览器上是以键-值对的形式进行存储的,键和值都是以ASCLL字符串的形式存储(不能是中文字符串)
存储的数据带有生命周期
cookies中的数据是按域存储隔离的,不同的域之间无法访问
cookies的内部数据会在每次访问此网址时都会携带到服务器端,如果cookies过大会降低响应速度
 
三、cookies的使用-存储
HttpResponse.set_cookie(key,value='',max_age=None,expiires=None)

key:cookie的名字

valie:cookie的值

max_age:cookie存活时间,秒为单位

expires:具体过期时间

当不指定max_age和expires时,关闭浏览器时此数据失效
 
示例:
删除cookies
HttpResponse.delete_cookie(key) 删除指定key的cookie,如果key不存在则什么也不发生
获取cookies
通过request.COOKIES绑定的字典获取客户端的COOKIES shuj value = request.COOKIES.get(‘key’,‘默认值’)
 
 
四、会话保持-登陆流程
用户在登录页面,点击登录后会把用户名和密码传至后端
服务器拿到账号密码之后,如果验证成功,set cookie
服务器将此次需要存储的cookie发送给前端,接到指令之后浏览器将执行cookie存储
登之后的所有请求,浏览器自动把当前域名下的cookie都发送至服务器
 
五、session
session是在服务器上开辟一段空间用于保留浏览器和服务器交互时的重要数据
针对不同的浏览器,生成不同的存储空间
将不同存储空间的sessionID返给浏览器
然后浏览器将sessionID放在cookie存储
 
使用session需要在浏览器客户端启动cookie,且在cookie中存储session
不同的请求者之间不会共享这个数据,与请求者一一对应
 
 
六、session配置
# 默认配置
1. INSTALLED_APPS列表中添加 django.contrib.session,启用session应用
2. 向MIDDLEWARE列表中添加django.contrib.sessions.middleware.SessionMiddleware,启用session中间件 #可选配置
1.SESSION_COOKIE_AGE
指定sessionID在cookies中保存的时长(默认两周),例如:SESSION_COOKIE_AGE = 60*60*24*7*2 2.SESSION_EXPIRE_BROWSER_CLOSE
浏览器关闭时,session是否失效 默认为False,设置为True浏览器关闭session会失效
PS:Django中的session数据存储在数据库中,所以使用session前确定已执行过migrate
 
七、session的使用
session对象是一个类似于字典的SessionStore类型的对象,可以用类似于字典的方式进行操作
session能够存储如字符串、整型、字典、列表等
1.保存session的值到服务器
request.session['key'] = value
2.获取session的值
request.session['key']
request.session.gey('key',默认值)
3.删除session
del request.sessionp['key']
 
八、Django session的问题
django_session表是单表设计,且该表数据量持续增加【浏览器故意删掉sessionID&过期数据未删除】
可以固定时间执行 python3 manage.py clearsessions【可删除过去的session数据】
 
九、cookies和session对比
cookies存储浏览器,相对不安全
session存储在服务区,相对安全

18.-cookies和session的更多相关文章

  1. 18、cookies与session学习笔记

    本文记录学习 cookies 和 session 的一些小练习和知识点   知识点1    cookies 和 session 的由来   HTTP协议是无状态的协议,因为一旦浏览器和服务器之间的请求 ...

  2. day58_9_24多对多建表手动,form组件(判断类型),cookies和session

    一.多对多建表关系之手动添加. 1.全自动 像之前讲过的一样,我们可以通过manytomanyField的字段来建立多对多关系: class Book(models.Model): title = m ...

  3. django之cookies,session 、中间件及跨站请求伪造

    cookies 和session 为什么会有cookie? ​ 由于http协议是无状态的,即用户访问过后,不留痕迹(状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被 ...

  4. Cookies和Session的区别

    原文:http://www.cnblogs.com/lijihong/p/4743818.html 今天主要学习了Cookies和Session,网络上关于这方面的知识可谓很多,让人眼花缭乱,在此作一 ...

  5. Cookies和Session理论总结

    今天主要学习了Cookies和Session,网络上关于这方面的知识可谓很多,让人眼花缭乱,在此作一个小结.本文不讲多,不讲什么高大上的,只是抛出一块砖,讲三个问题:①什么是Cookies和Sessi ...

  6. Cookies 和session

    一 会话跟踪 在一个会话的多个请求中共享数据,这就是会话跟踪技术 请求登录(请求参数是用户名和密码): 请求转账(请求参数与转账相关的数据): 请求信誉卡还款(请求参数与还款相关的数据). 登录信息在 ...

  7. cookies和session

      基于cookies做用户验证时,敏感信息不适合放在cookies中 cookies保存在客户浏览器端的键值对 session保存在服务器端的键值对(依赖于cookies),把用户浏览器中的cook ...

  8. django cookies与session

    1. cookiies # cookies def login(request): print('COOKIES',request.COOKIES) print('SESSION',request.s ...

  9. 有关cookies与session的详细信息

    COOKIES与SESSION 详细信息参考:https://www.cnblogs.com/linguoguo/p/5106618.html 会话(Session)跟踪是Web程序中常用的技术,用来 ...

随机推荐

  1. 一分钟安装DolphinScheduler并上手体验

    一分钟安装Apache DolphinScheduler并上手体验 1 一分钟安装DolphinScheduler并上手体验 本教程基于DolphinScheduler1.3.2 2 需要准备: 一台 ...

  2. 跟我学Python图像处理丨基于灰度三维图的图像顶帽运算和黑帽运算

    摘要:本篇文章结合灰度三维图像讲解图像顶帽运算和图像黑猫运算,通过Python调用OpenCV函数实现. 本文分享自华为云社区<[Python图像处理] 十三.基于灰度三维图的图像顶帽运算和黑帽 ...

  3. postgresql使用group by进行数据去重-2022新项目

    一.业务场景 数据去重是web开发中经常会遇到的方式之一,数据库操作中有一个关键字distinct主要就是用来做这件事,用来进行去重. 比如进行统计查询的时候,可以这样写 select count(d ...

  4. 【Java】学习路径54-使用UDP协议开发发送、接收端

    UDP协议,简单的说就是,发信息. 不管对方有没有收到. 发送端: import java.net.*; public class UDP_Send { public static void main ...

  5. 【unity游戏入门】1 环境安装

    作者 罗芭Remoo 2021年9月24日 这一个系列随笔记录如何使用unity引擎从零开始开发游戏,软件版本均使用最新版本 有关unity的背景介绍可以通过unity官网https://unity. ...

  6. 流媒体协议扫盲(rtp/rtcp/rtsp/rtmp/mms/hls)

    RTP           参考文档 RFC3550/RFC3551 Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细 ...

  7. CDH6.2.0安装并使用基于HBase的Geomesa

    1. 查看CDH 安装的hadoop 和 hbase 对应的版本 具体可以参考以下博客: https://www.cxyzjd.com/article/spark_Streaming/10876290 ...

  8. FileInputStream字节输入流

    FileInputStream字节输入流 编码思想:首相顶一个FileInputStream字节输入流对象,fis设置为nul,在try/catch里面放入FileInputStream字节输入流对象 ...

  9. Python 第三次实验

    一如既往地简单,不到半个小时即可完成 [1] (程序设计)输入一个正整数,输出它的因子分解式.如输入132,则输出132=122311 n=int(input()) print(1,end='') f ...

  10. vue方法同步(顺序)执行:async/await使用

    https://blog.csdn.net/qq_38591756/article/details/90173323 项目中有一个地方需要获取到接口返回值之后根据返回值确定之后执行的步骤,使用asyn ...