作为一个产品经理,如果不了解cookie和session很难设计好产品,尤其对于网站产品经理而言,cookie和session是一个必须要懂的知识点。
如果在中大型企业做产品经理,这个cookie和session就非常有用,接下来就讲讲cookie和session到底是什么。
cookie是什么
Cookie是服务器给客户端发的一个「通信证」。
cookie是浏览器访问服务器以后,服务器传给浏览器的一段数据。客户端浏览器把cookie保存起来,不得轻易删除,当浏览器再次向服务器发起请求的时候,浏览器把网址和cookie一起提交给服务器,服务器以此来辨别该用户状态。
cookie的属性
1.name:该Cookie的名称,Cookie一旦创建,名称便不可更改。
2. value:该Cookie的值,cookie中记录的信息内容。
3. expire:Cookie失效时间,单位秒
注:相信大家都遇到这样一种情况,之前浏览器明明记录过账号和密码,过段时间又让你重新登录,这就说明你的cookie过期了。expire为正值,则表示过了expire秒,cookie失效。expire为0的时候,表示关闭浏览器同时删除cookie,expire为负数的时候,表示关闭浏览器的时候cookie即失效,expire的值一般为0。
如果cookie不设置过期时间则表示他的生命周期会随着浏览器关闭而结束,这种cookie被称为会话cookie,一般不会保存在硬盘而是保存在内存中。
如果设置了 过期时间则浏览器会把cookie保存在硬盘中,再次打开浏览器会依然生效,直到它的有效时间超时。
4. path:该Cookie的使用路径。
5.domain:可以访问该Cookie的域名。
6. secure:是否仅使用安全的HTTPS协议传输,默认为0
7. Httponly:是否仅通过HTTP协议传输,默认为0
除了name的参数值是必须的以外,其他值都是可选的,通常使用的是前面三个参数。
应用场景
自动登录:如果不想用户每次登录网站的时候都输入用户名和密码,只要勾选记住登录名和密码,就可以把用户名和密码写入cookie中,下次访问网站的时候,网站页面的脚本可以读取这个信息,自动把用户名和密码填写上去,方便用户。
实现弹窗功能:当用户首次进入一些在线教育网站、理财网站...,一般会给用户弹出新手大礼包的弹窗,当点击取消以后,也许过了三天又会弹出来,这就是因为过了cookie的有效期,需要再重新设置cookie。
定制内容:网站创建用户浏览内容的cookie,然后就可以根据用户的浏览内容定制用户喜欢的内容,当用户下次进入的时候,服务器就可以把用户喜欢的内容推荐给用户,以达到留住用户的目的。
记录PV:cookie中有专门的值记录用户的访问次数,当用户再次访问的时候,cookie会将此值加1并输出。
Session是什么
Session在web技术中非常重要。由于网页是一种无状态的连接程序,因此无法得知用户的浏览状态。在网上购物的时,把很多商品加入了购物车,而在结账时网站却不知道你购物车有哪些物品。为了解决这个问题,服务器端就为特定用户创建了特定的session,用于标示并跟踪这个用户,这样才知道购物车里有哪些商品。
不同于cookie储存在浏览器端,session储存在服务器端
Session和cookie的关系
上面说过可以使用cookie的方式来实现跟踪用户,使用session也同样可以实现,实现跟踪用户利用的是session生成的唯一ID。实现的方法有两种:
1、第一种是基于cookie的方式来传递session。这种方法是有限制的,因为客户端可以禁用cookie。
基于cookie的传递方式就是将当前的Session的名称和ID保存在cookie中,当用户再次请求服务器的时,就会把Session ID发送回来,当脚本中再次使用session时,就会根据cookie中的Session ID返回已经存在的Session。
2、第二种是通过URL参数传递,直接将session ID嵌入到URL中去。
第一种是基于cookie的传递方式,而cookie在客户端是禁用的,那么这种方式就不再行得通,这就需要URL来传递Session。
cookie 是存储在浏览器里的一小段「数据」,而session是一种让服务器能识别某个用户的「机制」,session 在实现的过程中需要使用cookie。
Session应用场景
网上商城中的购物车:例如,一个未登录用户去京东网站买东西,分别在购物车中添加了A、B、C三件物品,这个时候服务器端返回前端一个cookie,cookie中保存着session的名称【zhangsan】,ID=【001】,三件商品的数据保存在session中,这样当张三下次再去查看购物车 的时候,就会把session ID= 001这个字段客户告诉服务器,服务器找到相应的session,从而展示相应的购物车数据。