http协议本身 是无状态的,那么 服务端是如何区分不同用户的呢?比如用户点选购商品添加到购物车中,就必须知道是哪个用户,即他之前的状态是什么?
实际上http使用cookie与session来确定状态。当用户客户端进行连接后,网站服务器就会生成cookie并返回给客户端(set-cookie header字段),客户端会在本地生成cookie,那么之后此cookie就可以当做此用户在此网站的身份码,这样其以后一系列的用户行为就会被记录。
那么cookie 与session有什么联系呢?
我之前看过一个小故事:顾客与店家存在消费与被消费的关系,店家想出一个促销手段,消费满10次赠送商品。那么不同的顾客如何区分,每个顾客的状态如何记录?一种解决方案:店家保存客户的所有信息,只是给你一个id,你每次来消费报id就好,到时候满足条件自动给你送。另一种解决方案:客户自己记录 ,然后每次消费前都说出消费多少次,然后店家根据次数决定是否赠与商品。
session 意为会话,就是在一段时间内的多次请求应答,session是在服务端记录用户行为的方法,cookie是其一种实现手段。