Session和Cookie

Session

保存在服务器端
依赖于cookie

第一次请求 浏览器cookie中没有任何信息
当我们的服务器接受到这个请求之后 进行验证 验证没有问题可以设置session信息
在设置session信息的同时(session信息保存在服务器端)服务器会在响应头中设置一个 sessionid 信息给浏览器 浏览器会把session这个cookie信息保存起来

第二次请求 浏览器携带sessionid信息
当服务器接受到这个请求之后 会获取到sessionid信息 然后进行验证
验证成功 则可以获取 session信息(session信息保存在服务器端)

简言之 服务器在浏览器初次访问时给与浏览器一个叫sessionid的cookie,浏览器每次依据这个访问服务器 服务器由这个id找到服务器上的关于该浏览器的访问数据

Cookie

cookie信息保存在浏览器
cookie是基于域名的

1 第一次浏览器请求头里没有cookie信息
2 服务器发现你没有cookie信息 为了保持浏览的连贯性
3 就给你设置了一个cookie信息 响应头里有set_cookie
4 之后浏览器浏览就会在请求头里携带cookie信息

可以设置过期时间
设置Cookie

可以通过HttpResponse对象中的set_cookie方法来设置cookie。

HttpResponse.set_cookie(cookie名, value=cookie值, max_age=cookie有效期)
max_age单位为秒,默认为None 。如果是临时cookie,可将max_age设置为None。
示例:

def cookie(request):
response = HttpResponse('ok')
response.set_cookie('itcast1', 'python1') # 临时cookie
response.set_cookie('itcast2', 'python2', max_age=3600) # 有效期一小时
return response
2 读取Cookie

可以通过HttpResponse对象的COOKIES属性来读取本次请求携带的cookie值。request.COOKIES为字典类型。

def cookie(request):
cookie1 = request.COOKIES.get('itcast1')
print(cookie1)
return HttpResponse('OK')
3 删除Cookie

可以通过HttpResponse对象中的delete_cookie方法来删除。

response.delete_cookie('itcast2')

原文地址:https://www.cnblogs.com/xujin247/p/11740384.html