Code前端首页关于Code前端联系我们

Cookie 和 Session 原理及其在 Django 中的作用

terry 2年前 (2023-09-24) 阅读数 50 #后端开发

Cookie 和 Session 一样,是在 Django 中维护视图状态的一种解决方案。由于HTTP被设计为“无状态”,因此每个请求都在同一个空间中。一个请求与下一个请求之间不维护任何状态,我们无法根据请求的任何方面(IP 地址、用户代理等)识别来自同一个人的连续请求。但我们还需要保证用户登录后,登录的用户无需再次登录就可以访问我网站的其他页面,对吗?但是http是无状态的,如何保证呢?此时您需要搜索 cookie 和会话。

1。 cookies和session的原理

cookie的工作原理是:浏览器以空的cookie文件访问服务器,然后服务器生成内容,浏览器收到响应并存储在本地;当浏览器再次访问时,浏览器会自动调出Cookie,这样服务器就可以通过Cookie的内容来判断“谁”了。

Cookie 在浏览器端存储键值对数据,而 session 在服务器端存储键值对数据。 session的使用依赖于cookie:session使用后,每次请求的session ID数据都会存储在Cookie中。浏览器将此数据发送到服务器。服务器收到sessionid后,根据该值判断请求者的会话。

2。如何设置cookie和session

1)如何设置cookie

格式:HttpResponse().set_cookie(keyname,对应值,过期时间)

Cookie和Session的原理及在Django中的作用

2)如何设置session

首先需要在settings.py中设置

①MIDDLEWARE_CLASSES,并确保其中包含以下内容:

'django.contrib.sessions.middleware.SessionMiddleware',

②INSTALLED_APPINSTALLED_APPsession',

然后设置会话格式:

request.session[key] = value

Cookie和Session的原理及在Django中的作用

3。如何搜索 cookie 和会话

1) 如何搜索 cookie

格式:value = request.COOKIES["cookie_key"]Cookie和Session的原理及在Django中的作用

2) 如何查询session

格式:request.session.get(key,default=None)

Cookie和Session的原理及在Django中的作用

4.如何删除 cookie 和会话

1) 如何删除 cookie

格式:response.delete_cookie("cookie_key")

2) 如何删除会话

格式:del request.session[key]

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门