明明知道是什么,却解释不清楚,面试时不就傻了吗?
一、cookie
为了识别用户身份信息,存储与用户本地终端的文本文件。
1.为什么要有cookie
HTTP每次连接都是独立存在的,且是无状态的,所以每次都需要重新校验身份,耗费性能。那么cookie就可以作为一个状态机来存储登录状态,第一次验证通过后,服务器通过set-cookie将cookie保存起来,下一次请求时直接带上cookie就行,只有检测到客户端发送的cookie与服务端自己保存的cookie相同时,才可建立连接,不再进行验证。
二、token
token,一般在登录时,由服务端根据提交信息来生成一个加密的字符串,前端之后的每次请求中都要携带这个token,由服务端进行鉴权。
三、两者的区别
cookie:会受到跨域的限制,默认存储发送的机制存在安全问题;大小只有4kb
token:前端自己存储,自己发送,不存在跨域的问题,比较灵活;没有大小限制
cookie只要存储的是用户的id,其他信息都存储在服务器的session中,那就造成所有用户都需要在服务器的session中存储一套信息,如果用户量比较大的话,对服务器会产生性能影响。
自己敲一遍,加深印象,原文章:面试官:说说 Cookie 和 Token 的区别?