小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
引言——我们都知道HTTP(超文本传输协议)是一个无状态的协议。 那么客户端和服务器都是怎么记录登录的状态的呢——也就是怎么维持登录的呢? (比如:你在浏览器中登录过了爱奇艺账号,哪怕你网页关闭了,只要时间不长,你再次登录的话会发现不用输入账号就已经是登录状态了!)
什么是cookie:
简单介绍一下什么是cookie,客户端浏览器上的一个文件,以键值对进行保存,类似字典{'k':'v'},与服务器端没有关系,当游览器访问服务器时候,服务器会生成一个随机字符串保存在cookie中返回给客户端,这样当客户端游览器下次访问服务器端时候,会带着这个保存了的cookie访问服务器,服务器端收到请求后,经过检查此cookie已存在此随机字符串,表示此客户端为已通过认证的状态,可以直接登录。
这就使用到了浏览器中的cookie:
比如——登录了CSDN之后,按如图操作你就可以看到CSDN在你本地浏览器中存储的cookie信息!
使用Django在服务器中设置cookie及获取删除cookie:
import datetime
def set(request):
response = HttpResponse('设置cookie')
#response.set_cookie('name', 'xiaoming ') # 默认关闭浏览器则过期
#response.set_cookie('name', 'xiaoming', max_age=100) # 100s后过期
response.set_cookie('name', 'xiaoming', expires=datetime.datetime(2020,10,1)) # 指定过期时间
return response
def get(request):
cookie = request.COOKIES
print(cookie.get('name'))
return HttpResponse('获取cookie')
def delete(request):
rs = HttpResponse('删除cookie')
rs.delete_cookie('name')
return rs
注意:
- 设置cookie值以及删除cookie值都是response对象的操作,而获取cookie是从requeset相应中获得的。
- 虽然cookie可以保存状态但注意不要存储敏感信息。
🔆In The End!
| 从现在做起,坚持下去,一天进步一小点,不久的将来,你会感谢曾经努力的你! |
|---|
本博主会持续更新爬虫基础分栏及爬虫实战分栏,认真仔细看完本文的小伙伴们,可以点赞收藏并评论出你们的读后感。并可关注本博主,在今后的日子里阅读更多爬虫文!
如有错误或者言语不恰当的地方可在评论区指出,谢谢!
如转载此文请联系我征得本人同意,并标注出处及本博主名,谢谢 !