cookie基本知识

cookie

什么是cookie
  • 指服务器为了辨别用户身份、进行session跟踪而存储在用户本地终端上的数据,通常经过加密,是一小段的文本信息。
cookie的机制
  • cookie是一种会话跟踪的机制。由于HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。要跟踪该会话,必须引入一种机制。Cookie就是这样的一种机制。它可以弥补HTTP协议无状态的不足。其实本质上cookies就是http的一个扩展。
特点
  • 存储在客户端的
  • 不可跨域名性
  • 可以实现跨页面全局变量
  • 键值对的形式存储
  • 可设置过期时间
  • 大小一般不超过10kb
  • 安全性低
作用
  • 与session进行交互
  • 记住登录状态,实现自动登录
  • 记录用户访问次数
  • 记录用户浏览信息,分析用户爱好习惯
分类
  • 会话cookie

    • 会话cookie是指在不设定它的生命周期expires时的状态,随着客户端的关闭而销毁。
  • 持久cookie

    • 持久cookie则是设定了它的生命周期expires,关闭客户端之后,它不会销毁,直到设定的过期时间。对于持久cookie,可以在同一个客户端中传递数据,因为cookie自动将数据传送到服务器端。
使用cookie记住用户名
	from ... import ...
	...


	class LoginView(View):
		"""登录"""
		def post(self, request):
			"""登录校验"""

			# 接收参数

			# 校验参数

			# 业务处理
			# 登录校验
			user = authenticate(username=username, password=password)
			if user is not None:
				# 用户名密码正确
				if user.is_active:
					# 用户已激活,记住登录状态
					login(request, user)

					response = redirect(reverse('goods:index'))

					# 接收remember的值
					remember = request.POST.get("remember")
					
					# 判断是否需要记住用户名
					if remember == "on":
						response.set_cookie("username", username, max_age=3600*24*7)
					else:
						response.delete_cookie("username")

				else:
					# 用户未激活
					return render(request, "login.html", {"errmsg": "用户未激活"})
			else:
				# 用户名或密码错误
				return render(request, "login.html", {"errmsg": "用户名或密码错误"})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值