Cookie是什么?

cookie说的直白点就是保存在用户浏览器端的一个键值对,举个例子,你现在登录了京东商城,你把浏览器关闭之后,你再打开京东,你还是可以对你的账户继续操作,已经购买的商品,订单都是可以看到的,这个就是cookie起了作用。那为什么你再次打开的时候,就直接是已经登录状态了,京东的服务端是怎么知道你已经登录的哪,其实就是cookie起了作用,就是你在登录的时候京东对你的浏览器设置了cookie,你登录的时候它把你的账号密码写到了你浏览器的cookie里面,你下次打开京东的时候,它就默认把你浏览器里面的cookie,也就是你的账号密码发送到了京东的服务端,这样的话,京东就知道你已经登录,所以你再打开jd的时候就是已经登录的状态了,很多网站上面的记住我、30天不需要登录就是用的cookie,前面也说了cookie是存在本地的,如果你清理了浏览器的cookie,那么cookie就没有了,你就是未登录的状态了。

Session是什么?

上面说了cookie,提到cookie肯定不能少了session,什么是session呢,说直白点,就是保存在服务端的一个键值对。举个例子,还是京东,登录的时候已经把账号密码写到cookie里面了,咱们再去打开京东页面的时候,浏览器会自动把京东这个网站下面的cookie发给京东的服务端,也就是cookie里面存的东西,账号密码发到京东的服务端了,那发过去了,京东的服务端肯定是要验证一下,你发的账号密码对不对,要不然你知道谁的账号了,你随便伪造一个cookie发给京东那就直接能操作别人的账号了,那就不安全了。那怎么办呢,服务端就也保存一个键值对不就行了,那你把cookie发过来的时候,和我这保存的这个键值对一样不就ok了,这个就是session,其实就是保存在服务端的一个键值对。

有的人可能会问了,那你的账号密码肯定都是存在数据库里面的,完全不用session啊,cookie发过来的时候,我直接从数据库里面查到这个用户的账号密码做比较就好了,这样当然是可以的,但是我想说你太年轻了,你想如果打开一个网站,里面很多页面都是要验证一下你的登录状态的,那你每次验证登录状态都要去操作数据库,我们都知道计算机在处理数据的时候,都是先从硬盘上取数据然后放到内存里面,内存再给cpu,cpu来进行处理(看下面的图),CPU的处理速度是很快的,就像火箭一样,内存的存取的速度就像高铁的速度一样,而硬盘的读取速度就像普通的汽车一样,而数据库里面的数据都是存在硬盘上的,每次去校验一下账号密码从数据库里面取数据,那效率就很低了。一般session都是存在缓存里面,因为要经常用到,要提升性能,直接把seesion放到内存里面,这样子的话,查的时候直接在内存里面取数据了,就很快了,像一些缓存数据库,redis、memcached这些都是把数据直接存到内存里面的。

cookie管理器:
可以登录后进行cookie存储和获取。
也可以存好了cookie进行使用,最好区分线上和线下。各种场景下使用哪套cookie。excel维护
获取时支持各种策略获取,比如唯一获取使一次少一个,也可以根据手机号或者uid获取cookie

也可以顺便存下手机号uid之类的信息
也可以大气点做个帐号管理器

 1、业务方不调登录接口获取cookie,直接从cookie服务获取cookie
2、业务方获取cookie后,cookie服务标注该cookie被使用
3、业务方使用完cookie后,cookie服务提供一个归还cookie的接口,把cookie还回去

最新文章

  1. IOS 关键字self,super,copy, retain, assign , readonly , readwrite, nonatomic、 @synthesize、@property、@dynamic
  2. leetcode-【hard】273. Integer to English Words
  3. S2 第二章数据库的实现
  4. MySQL中Group By,distinct使用注意事项
  5. c++ linux 下的调试工具及用法
  6. linux常用命令[持续更新]
  7. 简单3d RPG游戏 之 005 选择敌人
  8. C#.net时间戳转换
  9. Spring AOP (下)
  10. Introduction to the Build Lifecycle
  11. Ajax Post提交事例及SpringMVC注解@RequestMapping取不到参数值解决办法
  12. 查询出各个学科的前3名的同学信息的Sql
  13. 让浏览器全面兼容WebP图片格式
  14. Android APP开发入门教程-Button
  15. Python进阶8---面向对象基础1
  16. jpa 联合查询方法
  17. Http数据协商
  18. Spider-four
  19. 课程一(Neural Networks and Deep Learning),第三周(Shallow neural networks)—— 3.Programming Assignment : Planar data classification with a hidden layer
  20. python 回溯法 子集树模板 系列 —— 19、野人与传教士问题

热门文章

  1. Vue中ajax返回的结果赋值
  2. 基于XML搭建SpringMVC项目
  3. C++入门篇十三
  4. 初学ASP.NET 知识点
  5. Django Rest framework Swagger生成api文档
  6. python基础--absl.flags
  7. Django-ORM-单表操作
  8. 启动Eclipse发生错误:An internal error occurred during: "Initializing Java Tooling".
  9. C# 高级编程04----类
  10. 1024 Python 要诀