标签:浏览器 卡片 记录 session cookie 购买 服务器 通俗
无状态服务
以到商场买衣服为例。你和你女朋友逛街,到了一件服装店,买了一件衣服送给女朋友。回去发现,这衣服很不错,质量又好,又到那家店去买。结账的时候,你跟收银台的小姐姐套近乎,说我是你们店里的常客,请求打个折。而小姐姐一脸懵逼,你啥时候来过,从来没印象。无奈,最终原价购买。类似这种,没有记录客户信息的服务称为无状态服务。
有状态服务
店长了解到相关问题以后,提出了一个解决方案。顾客购买衣服后,会赠送给用户一张卡片,上面有卡片的id和购买次数。顾客没购买一次,就会标记一次购买次数,满足相应的购买次数后就能享受相应的优惠。顾客结算商品时,将张卡片交给收银员,收银员核对卡片上的信息后,在卡片上更新购买信息,并提供相应的优惠。这种有记录客户信息的服务,我们就称为有状态服务。
引入cookie
上面的例子中,将服装店看作服务端,顾客看作浏览器,那张小卡片就是cookie。
cookie工作过程
1.浏览器首次访问服务器时,服务器此时不知道它的身份,于是创建一个独特的身份标识数据,格式为key=value,放入到set-cookie字段里,随着响应报文发个浏览器。
2.浏览器看到set-cookie字段后就知道这是服务器给的身份标识,就保存起来,下次请求服务器时会自动将此key=value值放入cookie中发给服务器。
3.服务器收到请求报文后,发现cookie字段里有值,于是根据此值识别用户身份进而提供个性化的服务。
引入session
还以上面买衣服为例。引入小卡片后貌似完美解决了问题,其实不然。有一天,这张小卡片被你女朋友看到,上面有5次购买记录,而她只穿过2件,请问另外3件买个谁了?她打发雷霆,对你进行灵魂的拷问。从此你不再去那家店里买衣服了。店长了解情况以后,又提出了一个方案。小卡片上除了卡片编号以外,不再记录向购买次数这样重要又敏感的信息,而是记录sessionid。重要的信息记录在他们店里,并和sessionid关联起来。这样,他女朋友就是拿到了小卡片,也完全不知道代表什么意思。
总结:
cookie的数据是存储在浏览器上的,方便与js交换数据,也方便获取用户信息,但是数据有泄露的风险。
session数据存储在服务器上,为每一个用户分配一个id标识,高效、安全、不依赖浏览器环境。
希望上面的分享对你们有帮助~
标签:浏览器,卡片,记录,session,cookie,购买,服务器,通俗 来源: https://www.cnblogs.com/9527a/p/15120191.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。