Django 中 cookie的使用,Cookie 与 Session 的区别!

news/2024/5/18 12:01:44 标签: Django cookie, COOKIE

Django 中 cookie的使用,Cookie 与 Session 的区别!

Cookie 与 Session 的区别

  1. cookie机制采用的是在客户端保持状态的方案,而session机制采用的使在服务器端保持状态的方案,由于采用服务器端保持状态的方案在客户端也需要保存一个表示,所以session机制可能需要借助于cookie机制来达到保存标识的目的。

  2. cookie 不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。

  3. session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用COOKIE

  4. 单个cookie保存的数据不能超过4k,很多浏览器都限制一个站点最多保存20个cookie。

  5. 个人建议:

    • 将登录信息等重要信息存放为SESSION
    • 其他信息如果需要保留,可以放在COOKIE
  6. cookie 是浏览器在客户端留下的一段记录,这段记录可以保留在内存或者硬盘上。因为http请求是无状态的,通过读取cookie的记录,服务器或者客户端可以维持会话中的状态。比如一个常见的应用场景就是登陆状态。Django里面,对cookie的读取和设置很简单。Cookie本身的格式类似字典,因此可以通过request的key或者get获取;然后它的设置则是通过response对象的set_cookie设定;如果要取消cookie,把过期时间设置为当前时间就行了。

  7. cookie 的内容主要包括:名字、值、过期时间、路径和域。路径和域一起构成cookie的作用范围。若不设置过期时间,则表示这个cookie的生命周期为浏览器会话期间,关闭浏览器窗口,cookie就消失。这种生命周期为浏览器会话期的cookie被称为会话cookie。

    会话cookie一般不存储在硬盘上而是保存在内存里。

COOKIE_23">获取COOKIE

request.COOKIES[‘key’]

request.get_signed_cookie(key, default=RAISE_ERROR, salt=’’, max_age=None)

​ 参数:

​ default: 默认值

​ salt: 加密盐

​ max_age: 后台控制过期时间

COOKIE_37">设置COOKIE

rep = HttpResponse( ) 或 rep = render(request, … )

rep.set_cookie(key, value, … )

rep.set_signed_cookie(key, value, salt=‘加密盐’, … )

​ 参数:

​ key 键

​ value=’’, 值

​ max_age=None, 超时时间

​ expires=None, 超时时间(IE 浏览器必须要过期时间)

​ path=’/’, COOKIE生效的路径, / 表示根路径,特殊的:根路径的cookie可以被任何URL的页面访问

​ domain=None, cookie生效的域名

​ secure=False, https传输

​ httponly=Fasle 只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖)


http://www.niftyadmin.cn/n/1870722.html

相关文章

Django rest_framework 快速开始

Django rest_framework 快速开始 如果您想更深入地了解REST框架是如何组合在一起的,请参阅我的另一篇博客Django REST framework 简介与中文教程; 我们将创建一个简单的API,允许管理员用户查看和编辑系统中的用户和组。 项目搭建 创建一个名…

用Python做数据商品情感分析(商品评论数据情感分析)

用Python做数据商品情感分析(商品评论数据情感分析) 现在,我们得到了一些关于XX商品的评论信息的数据,我们需要对这些评论信息的数据进行情感分析; 分析步骤 机械压缩去词短句过滤情感分析分词处理(jieb…

Nginx配置SSL证书(申请免费SSL证书)怎样给网站的http加上s,即网站可以通过https访问?

Nginx配置SSL证书(申请免费SSL证书)怎样给网站的"http"加上"s",即网站可以通过"https"访问? 当然,首先得有一个已经购买的域名! 我现在以阿里云为例,进行配置&#xff01…

Django restframework(实战篇)------过滤、搜索、排序、分页

Django restframework(实战篇)------过滤、搜索、排序、分页 本文转载自django-rest-framework(实战篇)——过滤、搜索、排序、分页 一、过滤 官方API向导:official API guide—Filter django-filter 库包括一个DjangoFilterBackend类&…

Django-Haystack 全文检索(Django实现搜索功能)

Django-Haystack 全文检索(Django实现搜索功能) 本文转载自Django Haystack 全文检索与关键词高亮 在此之前我们使用了 Django 内置的一些方法实现了一个简单的搜索功能。但这个搜索功能实在过于简单,没有多大的实用性。对于一个搜索引擎来说…

Django简单全文搜索(Django实现搜索功能)

Django简单全文搜索(Django实现搜索功能) 本文转载自简单全文搜索 搜索是一个复杂的功能,但对于一些简单的搜索任务,我们可以使用Django Model 层提供的一些内置方法来完成。现在我们来为我们的博客提供一个简单的搜索功能。 概述…

Python(Django)页面导出Excel

Python(Django)页面导出Excel表格数据 最近做项目要使用到 导出Excel 的表格,正好有 openpyxl 这个库。 今天给大家分享一下如何使用这个库并在 Django 页面导出Excel表; 首先,安装openpyxl库: pip ins…

Python新式类与经典类的区别

Python新式类与经典类的区别 本文转载自Python新式类与经典类的区别 1.新式类与经典类 在Python 2 及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都术语“新式类”,都会获得所有“新…