Session和Cookie
Posted xujin247
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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‘)
以上是关于Session和Cookie的主要内容,如果未能解决你的问题,请参考以下文章