在Web技术中有两个技术术语,分别是Cookie和Session。这两个技术术语在我们日常使用的产品中经常被用到。我们先看两个具体的用户场景,第一个是当我们登录一些网站要输入用户名和密码时,通常都有一个记住用户名和密码的功能,这样下次登录时就可以不重复输入。第二个场景是当我们使用电商类网站购物时,把商品加入购物车后,下次进入购物车或者从其他客户端进入购物车仍然能看到之前加入购物车的商品。
上述两个用户场景的功能实现分别用到了Cookie和Session。记住用户名和密码是通过Cookie实现的,保存购物车记录则是通过Session实现的。无论是Cookie还是Session,实际上都是一种会话存储技术,区别在于Cookie是将信息存储在本地,而Session是将信息存储在服务器端。这也就不难理解为什么当我们换一个客户端时记住密码会失效,但保存的购物车商品仍然能看到。
用户在客户端A发生的操作(例如记住用户名、密码和一些浏览记录或者临时填写的表格信息等)属于无状态的信息,它们会通过Cookie存储,而Cookie在客户端对应的存储方式通常是文件。所以,当用户更换客户端时,对应的Cookie信息不会发生迁移。
Cookie的用途十分广泛,现在一些广告推广系统中常用到Cookie。例如,当我们在一个电商网站浏览过某一类商品,再去另外一个视频网站看视频,就会发现视频网站的广告栏给我们推荐了刚刚我们在电商网站浏览过的商品,而这两个网站是不同公司的产品。实际上,这里用到的就是本地缓存的Cookie信息,通过这种方式就实现了广告的精准展示。
与Cookie不一样,Session是一种存储在服务端的信息,存储的方式可以是文件也可以是数据库。通过Session存储的信息不会随客户端的更换而丢失,例如之前我们提到的购物车商品记录。
网友评论