cookie与session。中间键原理
时间:2019-08-18
本文章向大家介绍cookie与session。中间键原理,主要包括cookie与session。中间键原理使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
cookie 和session
cookie的原理:
第一次:浏览器向服务端发送第一次请求,服务端接收返回一个html页面
第二次:接着浏览器客户端进行登录注册,将用户名密码以post形式传给服务端-请求
这时服务端与数据库进行连接,数据库进行判断---
如果是正确的,渲染一个页面并设了一个cookie,此时cookie的val值是一个随机的字符串
if true: obj=redirect('/xxx/'),obj.set_cookie()
那服务端就给返回来一个cookie值,换句话讲的就是一张小纸条(cookie-key:value)
在客户端就页面访问cookie 可以看到的是一个键值对
第三次请求:客户端就带着一个cookie请求到服务端(进行其他的响应)也就是说那这个小纸条进行验证,如果没有小纸条,或者就是这个cookie过期了,以login为例,请重新进行登录,重新设定一下cookie。
在服务端登记的 (session内容),可以拿到客户端的隐私信息,也就是name值----
cookie 的value值: value的隐私信息 【‘name' :'xxx','age':18】
cookie的val值 作为session的key值
- 设置session
login:
### 向客户端回写一个cookie值
'''
1. 向客户端回写一个 {sessionid : 'lr3gmj3vpt0ytf7locqnb21p0cg63iek'}
2. 将客户的隐私信息保存在了服务端的数据库中, 也就是session保存在了数据库中
默认放在django_session表中
{"dsjnalndjskanjdksa" : {"name":'zekai', 'age':12, 'addr':'dsabdsa'}}
'''
#### 设置session
request.session['name'] = username
request.session['age'] = 13
#### 获取session
request.session.get('name')
### 默认session存在数据库中, django_session表
cookie和session的区别
1cookie 存在客户端,session存在服务端
2cookie中存储的一般是一根身份的id,session存储的都是用户隐私的信息
3描述一下cookie和session的过程
中间键
作用的存在:保卫后台的安全,提前做安全的筛查,以及数据的过滤
middleware:共七个中间键 除了内置的这些,自己也可以自定制的写一些类
本质就是 就是一些类,实现他们的方法,django中子集内置的中间键的一些类
必须实现的是这两个方法
process_request
process_response
这两个做重点
def process_request(self,request)
print('...')
def process_response(self,request,response)
print('....')
执行流程:
一般写需求就是在process_request里面写,写业务逻辑进行需求
另外还有一个process_view,其执行流程如下
def process_view(self,request,view_func,args,kwargs)
print('.....')
#return HttpResponse('////')
原文地址:https://www.cnblogs.com/zhuyuanying123--/p/11372446.html
- 垂直属性
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(二)RESTful API实战笔记(接口设计及Java后端实现)
- 13(02)总结StringBuffer,StringBuilder,数组高级,Arrays,Integer,Character
- Mybatis-Generator生成Mapper文件中<if test="criteria.valid">的问题解答
- Java开源博客My-Blog之mysql容器重复初始化的严重bug修复过程
- 负margin的原理以及应用
- 关于exp/imp的总结学习(r4笔记第26天)
- 除了写烂的手写数据分类,你会不会做自定义图像数据集的识别?!
- shell脚本中字符串的常见操作及"command not found"报错处理(附源码)
- 绝对定位下的盒模型
- 运行shell脚本时报错"[[ : not found"解决方法
- 关于表联结方法(二) (r4笔记第23天)
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(一)设计一套好的RESTful API
- XSS分析及预防
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android实现底部图片选择Dialog
- AndroidImageSlider实现炫酷轮播广告效果
- Android获取手机本机号码的实现方法
- Android中RecyclerView的item宽高问题详解
- Andoroid实现底部图片选择Dialog效果
- Android中ExpandableListView使用示例详解
- Android 高德地图之poi搜索功能的实现代码
- Android实现底部弹出按钮菜单升级版
- Android实现单页面浮层可拖动view的示例代码
- 漫画:最长公共子序列
- RecyclerView的简单使用
- Android Parcelable接口使用方法详解
- 假期结束了,撸一篇技术和大伙分享下吧!
- Android AIDL实现跨进程通信的示例代码
- Android中SharedPreferences简单使用实例