Cookie,有时候也用复数形式Cookies,这种是指某些网站为了辨别用户身份,简单来说就是当您输入一次网站的用户名和密码之后,下一次就可以不需要输入。Cookie,有时候也用复数形式Cookies,这种是指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密);简单来说就是它能够把你在访问网站时的产生的一些行为信息给读取保存下来,常用的是我们在访问某些网页时提示我们是否需要保存用户名和密码,下次登录的时候能够自动登录,无需重新登录;
Cookie 应用场景
场景一:避免重复登录
当我们打开一个网站时,如果这个网站我们曾经登录过,那么当我们再次打开网站时,发现就不需要再次登录了,而是直接进入了首页。
场景二:权限验证
由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。
session在网络应用中称为“会话控制”,是服务器为了保存用户状态而创建的一个特殊的对象。简而言之,session就是一个对象,用于存储信息。 我们先来想一个问题,这个问题就是我们在游览购物网站时,我们并没有登录,但是我们任然可以将商品加入购物车,并且进行查看,当我们退出游览器后再打开游览器进行查看时,购物车中依然有我们选择的商品,这该怎么实现呢?
当然,我们可以使用cookie,但是cookie能存放大量数据吗?这时,我们就需要一种新的技术,Session。session是存储于服务器端的特殊对象,服务器会为每一个游览器(客户端)创建一个唯一的session。这个session是服务器端共享,每个游览器(客户端)独享的。我们可以在session存储数据,实现数据共享。
session的工作原理
用户第一次请求服务器时,服务器端会生成一个sessionid
服务器端将生成的sessionid返回给客户端,通过set-cookie
客户端收到sessionid会将它保存在cookie中,当客户端再次访问服务端时会带上这个sessionid
当服务端再次接收到来自客户端的请求时,会先去检查是否存在sessionid,不存在就新建一个sessionid1,2的流程,如果存在就去遍历服务端的session文件,找到与这个sessionid相对应的文件,文件中的键值便sessionid,值为当前用户的一些信息
此后的请求都会交换这个 Session ID,进行有状态的会话。