文章目录
1. Cookie
1.1 Http短链接是什么?
短链接:接收一个请求,返回一个响应就中断连接。Http/1.0默认短链接
长连接:接收多个请求,返回多个响应。Http/1.1之后默认长连接
1.2 状态保持是什么?
保存每个人进入客户端的状态,记录身份
1.3 什么是Cookie?
键值对数据。明文保存在客户端。当进入页面时,服务器给生成cookie并返回给客户端。当客户端再一次进入页面时,可以发送携带cookie信息的请求,服务器辨别身份信息,返回响应。cookie不支持中文。容易被篡改
1.4 框架对于Cookie操作
设置并获取cookie信息
思路:先获取cookie信息。如果有就获取cookie信息;如果没有,就设置cookie信息,并获取。
#设置cookie信息
class CookieView(View):
#没有cookie就设置cookie。有就展示当前cookie
def get(self,request):
# 获取当前cookie
cookie_data = request.COOKIES.get('status')
if cookie_data is None:
# 如果没有cookie,就设置cookie
resp = HttpResponse('设置cookie')
# set设置cookie
resp.set_cookie('status','kejindalao')
# 返回设置的cookie
return resp
else:
# 展示cookie
return HttpResponse(f'当前cookie信息为{cookie_data}')
删除cookie信息
有两种方法,一种是通过浏览器删除,另一种是通过代码删除
第一种:通过浏览器删除
第一步:点击路径前的**圈圈里有!**的符号
第二步:点击“此网站权限”
第三步:NO.1展示cookie文件夹
NO.2展示cookie文件夹里的内容
NO.3展示cookie信息
NO.4点击删除,实现删除
第二种通过代码删除
# 删除cookie信息
class DelCookieView(View):
def get(self,request):
resp = HttpResponse('删除cookie信息')
# delete删除cookie信息
resp.delete_cookie('status')
# 返回响应
return resp
防止篡改cookie
可以对cookie进行加密。使用salt=‘’,俗称:撒盐操作。使用salt加密后,再使用salt解密
2.Session
2.1 Session原理
session称为会话控制,简称会话。数据保存在服务器里边,不容易被篡改,比cookie安全。又离不开cookie
2.2 框架是如何存储管理Session的
session数据会存储在数据库的session表里,默认有效时期为两个星期
session创建的流程
2.3 框架如何操作Session
获取session
思路:先获取session信息,如果有就获取session信息,没有就设置session信息,并获取session信息
class SessionView(View):
# 如果session不存在,就生成session。如果存在,就返回session信息
def get(self,request):
# 获取当前session
session_data = request.session.get('money')
if session_data is None:
# 如果没有就设置session
request.session['money'] = '1000'
# 返回session信息
return HttpResponse('设置session')
else:
# 返回session信息
return HttpResponse(f"session信息为:{session_data}")
删除session信息
# 删除session信息
class DelSessionView(View):
def get(self,request):
# 如果session不存在,就返回session不存在
if request.session.get('money') is None:
return HttpResponse('session不存在')
# 如果有就删除
else:
# 删除session信息
del request.session['money']
return HttpResponse('session已删除')
Session的删除总结
del:删除指定的内容,保留客户端session及未被指定的内容
clear:删除全部内容,保留客户端session
flush:全部删除。
Session 和 Cookie 的对比
对比项 | session | cook |
---|---|---|
存储数据的位置 | 服务器 | 客户端的浏览器 |
安全 | 比cookie安全 | 不安全 |
对浏览器的性能要求 | 当访问增多时会占用浏览器的性能 | 不会占用浏览器性能 |
站点 | 没有限制 | 数据不超过4K,站点不超过20个 |
3.CSRF
3.1 什么是CSRF?
CSRF:跨站请求伪造
3.2 CSRF攻击模拟实现
3.3 如何防止CRSF攻击
因为get只是获得了数据的表面,查很多次是不会发生改变的,所有不需要进行防范。post请求可以获得数据的本质,会发生改变,所以需要防范。可以在页面中加入其他字段来防止CRSF攻击。
总结
session比cookie安全,但有离不开cookie,需要依靠cookie来获得数据,保存。