目录
一、http协议无状态问题
http协议没有提供多次请求之间的关联功能,协议的本意也并未考虑到多次请求之间的状态维持,每一次请求都被协议认为是一次性的。但在某些场景下,如一次登录多次访问,我们希望可以保存登录状态,协议并没有直接提供会话跟踪的支持,需要靠其他手段来帮助实现目标。
二、会话跟踪技术--cookie
1、对cookie的理解
-
cookie是一个key-value的数据结构(类似python字典),用于保存需要维护状态的数据,cookie与session最大的区别是cookie的数据保存在客户端,而session把数据保存在服务端。 -
cookie一般由服务器设置,并可以存放在http的请求头和响应头中。 -
cookie由浏览器保存,浏览器已经实现了cookie的保存和发送,而服务器上对cookie的设置和接收则需要我们配置。 -
通过
cookie,可以在多个会话之间共享一些必要的信息如登录状态数据、历史访问记录、个性化定制设置等,以实现会话跟踪,让用户感觉到网站可以'记录'自己的偏好,减少不必要的重复输入,从而提升用户体验。
2、cookie的使用接口
django的服务端发送响应有三种方式:
1. return HttpResponse() 2. return render() 3. return redirect()这三种方法实例化的结果都是HttpResponse类的实例,可以直接用于设置cookie。
在response对象上执行set_cookie(key,value,...)即可设置
