机器学习入门之Django学习笔记(6-6 session和cookie自动登录机制)
小标 2018-12-18 来源 : 阅读 396 评论 0

摘要:本文主要向大家介绍了机器学习入门之Django学习笔记(6-6 session和cookie自动登录机制),通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

本文主要向大家介绍了机器学习入门之Django学习笔记(6-6 session和cookie自动登录机制),通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。


cookie

浏览器中的本地存储以dict方式,相当于python中的dict,键值对形式。在我们浏览器中存储的是一段文本,浏览器会自动对这段文本进行解析。


为什么会有cookie存在

http协议本身是无状态的协议,服务器在接收到浏览器的请求之后,服务器是直接返回内容给我们浏览器,不管浏览器是谁请求的

cookie值在每次存储之后都会给服务器的,所以要想不被服务器跟踪,就要清理cookie

把用户名和密码保存到cookie中就自动登陆了

甚至访问过什么信息都可以放到cookie中来


为什么会有session

问题是有人拿到你的电脑之后就可以通过分析你的cookie,拿到你的用户名、密码等敏感信息

为了解决这个隐患我们就引申出了session.login就是生成session,对应的django在数据库中自动生成了session表用于存放用户的django_session。

session_key就是浏览器中的session_id,session_data是对账号密码等信息做了加密的。expire_date是过期时间。setting中可设置过期时间.

Django还有一个csrftoken.


session转换

这个session_id是怎么做到转换回账号密码等信息的?因为我们在后台是可以直接request.username的。


INSTALLED_APPS = [
    ‘django.contrib.sessions',
]


这个app是会对我们每次request和respone的请求做拦截的。拦截的浏览器过来的时候就会在里面找到我们的session_id。来数据表查询session_data并解密。我们response的时候他也会主动加上session_id。

问题:为什么在数据库里面叫session_key,在浏览器里面就叫session_id了,这个名字在哪里被换掉了?


总结

cookie是浏览器本地存储,存储账号密码,存储所有行为。这些键值对是存储在不同域名下的,他们是不能互相访问的。

由于cookie不安全,服务器在返回账号密码等信息的时候它用到了一种session机制。其实就是根据用户名和密码生成了随机字符串。这段字符串是有过期时间的。这个session是服务器生成的。是存储在服务器端的。浏览器把它存储在cookie中。服务器通过session_id查询这个用户的session_data并解密。

问题:好像也可以拿着用户的session_id去登陆对应网站呀?也就是session_id多了个过期时间

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程