cookie+session
面试
格式:遇到一个问题,自行研究了一下,关于什么是contenttype 。唠个20分钟。。。
体系:是什么,有哪几种,在项目上怎么用
一个好例子: 回答不上,答别的。不尴尬。不紧张。简单问题还能回答10分钟。我们公司怎么怎么。真像。 基础也挺好。 公司需要,即使技术不那么强。表达能力好点,使公司气氛好点。不喜欢闷头的。觉得自己还行的。
form 默认没有 json传输 contype
contenttype : form 表单json
http 协议规定传输信息时的数据格式,请求里面,urlencode , formdata , json
老板不会问你,只会问你什么是contenttype
但是要把有用的相关的都说出来。(什么时候用的)想到什么说什么。别说废话。有一定的思维逻辑,思维体系,处理过这个东西、问题。
json:
回答问题别太干。大道理谁都知道,讲出点实际的东西。
文本之间交互的文本传输协议
把其他格式的转化为
day64
0 今日内容
cookie和session
会话:连续的通信,浏览器和后端时时交互
http协议的 无连接,
无状态的(数据传输了什么,不知道,互相都没保存状态)不足:每次都得持续登录。
所以,就有了cookie: 完成保持会话的,会话跟踪技术。
1 cookie初识
浏览器每次都需要登录。。。有需求,持续对话,记住不重复登录了。
浏览器给了服务器一个空的字典(袋子),服务端给了浏览器一个cookie密钥? (令牌),下次登录,看密钥。不需要登录了。
1.1 cookie规范
浏览器(客户端):存服务端的数据。
cookie大小上限为 4kb
一个服务器最多在客户端上保存20个cookie;(if login == True:)
一个浏览器最多 保存300个cookie(不同浏览器可能变化),因为一个浏览器可以访问多个浏览器
1.11 浏览器对应cookie
一个浏览器对应一个服务端,就是一组cookie (浏览器的内容全缓存在了磁盘上,密码。。也是,否则存内存关了之后就没了)
对一个用户只有一个cookie,所以两个页面登相同的服务器时,覆盖cookie,只能一个。
每个浏览器互不干扰,都是300+ 无痕浏览器就是把cookie给清了
装了两个不同版本的浏览器,当做不同的浏览器
1.12 cookie + csrftoken
因为csrftoken可以在cookie里有一个。 所以可以提交时使用
2 session
cookie不安全,所以引入session
ctrl+shift+delete清除cookie
![img](file:///F:\UserData\My Documents\Tencent Files\1916910438\Image\Group\Image2\CCXEI`7W58QUS5JHE4Z3]U9.png)
2.1 写入随机字符串
request.session['is_login'] = True
# 第一件事情,生成一个随机字符串,sessionid:asdfxdds
# 2 .加密一些用户信息sss,保存到数据库里面da_se表
# session_key session_data
# asdfxdds jjjjsas
# 3 将 sessionid:asdfxcv 放到了cookie里面
2.2 读取数据
is_login = request.session.get('is_login')
# 1 从cookie中找到sessionid的值xxx
# 2 通过xxx找到djs表的记录,将sessiondata 拿出来,并且解密了{‘is_login’:true, 'user':'yang'}
if is_login != True:
2.3 装饰器
def login_auth(f):
def inner(request):
if request.method == "GET":
is_login = request.session.get('is_login')
if is_login != True:
return render('/login')
ret = f(request)
return ret
return inner
2. 4 上网session
多次退出 多次清除缓存 再登录 都会添加Djangosession表里
多个浏览器添加 会都添加到 djangosession表里
2. 5 删除session
request.session.flush()
# 清空 cookie里的并且 Djangosession表里的cookie
return redirect('/login/')
概念和代码
作业
页面不刷新的情况显示页面删除局部刷新
登录认证每个页面都需要认证
session
编辑也是ajax