什么是cookie?
cookie是浏览器访问服务器后,服务器传给浏览器的一段数据,一般是与用户信息相关的数据
浏览器收到cookie之后,会存储在本地硬盘中,但是可能会经过一段时间后删除。
之后浏览器再次访问这个服务器(同个域名下),都会携带这个cookie里面的数据。
cookie可以被用户手动更改,也可以用JS更改,所以后端不能相信浏览器传过来的cookie,必须予以验证
cookie的作用
cookie一般用于服务器识别用户身份以及记录用户的历史操作。
识别用户身份:
当用户在某个网站注册成功并首次登录后,该网站服务器会根据用户注册信息发给用户浏览器一段数据,这就是cookie,里面包含了该用户特有的信息,比如注册时的用户名以及注册ID等(各个网站有所不同,但一般利用这段数据能够在后台服务器数据库中唯一确定一个用户),之后用户再次登录或访问该网站中的其他页面时,都会携带这段cookie数据,这样就免去了用户频繁登录操作,服务器还能根据用户的身份对其展示不同的网页内容,提升用户体验。
记录历史操作
当我们在访问购物网站时,这些网站一般都会有购物车功能,这是如何实现的呢?它还是用到了cookie,当我们将一个商品放入购物车后,网站就会利用js改写我们浏览器本地的cookie,比如添加购物车里的商品数据,这样,当我们关闭网页或者隔几天再来访问时,就会发现我们的购物车中依然保留了之前挑选的商品。这就是cookie记录用户历史操作的一个很好的例子。
发生在登录注册背后的故事
用户在访问一个新的网站时,该网站可能要求用户先注册,在注册页面,用户键入注册必需的信息,比如用户名,密码,邮箱等,当点击确定或提交之后,网页就会携带用户注册的信息向服务器发起一个POST请求,服务器拿到POST请求里的数据之后,首先会校验数据的格式是否正确,比如邮箱的格式,密码的格式等等,如果校验通过,则会比对数据库,如果数据库中不存在相同的注册数据时,会给用户返回注册成功的信息。很多网站在用户注册成功之后就自动跳转到首页,而有的会要求用户用注册好的身份重新登录,所以在用户注册成功或者首次登录之后,服务器会根据用户的注册信息传给用户浏览器一段cookie数据,里面包含可用户身份等一些信息,之后用户再次登录或者访问该网站其他页面时,都会在请求头里面携带这段cookie数据,免去了用户频繁登录的操作。文字介绍就到这里了,接下来给张图示意一下:
网友评论