Django 用户认证 用户 邮箱登录 邮箱注册 ORM or,and,not form.py FORM ModelForm Paginator 分页 HTMl JQuery 定位元素 ajax django切片 restfulapi 跨域 Ubantu Python Mysql Scrapy 爬虫 导出 Python读写 Pycharm 破解 session re sqlit3 生成式 其他 Prism 富文本 CSS Nginx 部署 请求头 抓包 协议 selenium Ubuntu 宝塔 AI Comfy-ui ollama dify open-webui Git docker
cookie&session
张建行 2019年6月15日 08:47 31 文章标签: Django session

cookie&session

1.cookie

Cookie;浏览器(客户端)进行本地数据存储的本地机制,它是以键值对的形式来存储数据的,当客户端对服务器发起请求的时候,会自动的对浏览器中保存的cookie信息进行解析解读,方便浏览器来辨别用户身份,识别用户记录等一系列操作的本地数据存储方式。

1.为什么要使用cookie

  1. http协议本身对于每一次请求都是无状态的,比如说你在百度贴吧首页进行登录账号,对于http协议来说当访问贴吧里面的内容时,是不会记录你在首页的登录状态,服务器也不会标记每一次请求之间的联系,使用cookie就可以解决http协议无法标识老用户状态的弊端。

  2. cookie也可以用于安全验证,有一些服务器会将一些重要的字段以加密的形式返回到浏览器的cookie中,用于登录的时候,也就是说登录的时候必须携带这个加密后的数据,否则,只有用户名和密码也是无法登录成功的。

2.使用cookie进行自动登录

  1. 用户在浏览器端进行账号密码登录之后,后台服务器就会验证账号,密码的正确性,然后返回一些字段给浏览器,服务器通过set-cookie字段来向浏览器(客户端)返回cookie信息。

  2. 当用户在浏览器中进行第二次登录的时候,浏览器会将这些cookie信息都添加到请求头中,发送给服务器

  3. 服务器会从客户端上传的cookie字段中读取cookie信息,从而识别用户是否属于登陆了状态,如果已经登录则返回相关页面,否则重定向到登录页面进行登录

2.session

session:是服务器端用于存储数据的一种机制,主要用于保存一些重要的数据,比如用户名,密码,在服务器,用户名和密码对应的有sessionID,这个字段的数据是有用户名,密码,登录时间等各种用户信息整体生成的一个随机字符串。等用户第一次访问网站,并登录成功的时候,服务器会将sessionID的值返回给浏览器并保存在cookie当中。下次访问的时候,服务器就可以直接通过读取cookie中的session来标识是哪一个用户来进行访问的,session是基于cookie来实现的。

1.为什么要使用session

http协议本事对于每一次请求都是无状态的,比如:使用淘宝进行购物的时候,由于http是无状态的,无法知道点击购物车的时候是哪一个用户将物品添加至购物车的,但是使用session就可以解决这个问题,一个用户对应一个sessionID,当用户点击添加购物车的时候,就会根据sessionID来识别是哪一个用户添加的购物车,这样就可以将对应的物品添加到对应的用户购物车里面使用session就可以解决http协议无法标记用户状态的弊端

2.cookie 和 session的区别

  1. cookie是在浏览器端进行数据存储,session是存放在服务端

  2. cookie是用来保存用户名,密码等常用信息,session是用来跟踪会话的

  3. session的安全性比cookie高