一、网站发展史
1、无需甄别来访问的用户:早期的网站都没有保存用户记录的需求,任何用户何时何地访问网站是没有任何区别的,如现代一些网站,新闻,纯公告,等等。
2、需要甄别不同的用户:后来有些网站需要甄别用户信息返回对应结果,如,淘宝,收费视频,等等。
二、cookie与session的由来与原理:以登录功能为例,如果不保存客户的登录状态,也就意味着每当客户离开前页面时,登录状态即消失,无论是再次访问同样页面,还是跳转同站其他页面时,都需要再次进行登录,可想而知,如此非常不人性化。
1、优化方式一:
①当用户首次登录成功后,服务端就把用户的登录信息返回给客户端浏览器,使之在本地保存。
②后续访问同站任何页面时,由浏览器自动将本地的用户登录信息发给服务端校验,服务端返回校验结果,浏览器则展示为已登录的状态,给客户一种自动登录的体验。
③但是,这种方式存在较大的信息泄露隐患。
④这就是cookie的基本原理。
⑤所有的服务端保存于客户端浏览器的用户信息,不只限于登录信息,都可以称为cookie,表现形式为若干个kv键值对。
2、优化方式二:
①当用户首次登录成功后,服务端则会产生一个随机字符串,然后将该字符串作为键,对应用户信息这个值,保存于服务端的数据库中,只把这个随机字符串交于客户端浏览器保存。
②后续访问同站任何页面时,由浏览器自动将本地的随机字符串发给服务端,服务端以该字符串为键查找校验用户信息,然后返回校验结果,浏览器则展示为已登录的状态,同样给客户一种自动登录的体验。
③该方式较方式一在信息安全上有了一定的提升,但也并非无懈可击。
④这就是session的基本原理。
⑤所有的服务端需要保存于客户端浏览器的用户信息,都可以转化为对应的随机字符串,不只限于登录信息,这些都称为session。
3、小结:
①cookie:真正的用户信息保存在本地客户端浏览器。
②session:真正的用户信息保存在服务端数据库。
③session本质上还是基于cookie的原理工作的。
三、cookie的具体操作
1、选择性保存:客户端浏览器可以通过设置,来拒绝保存服务端返回的用户信息,如此任何通过该浏览器产生的用户信息都无法保存。
2、实例:
原文:https://www.cnblogs.com/caoyu080202201/p/13054331.html