本文已参与「新人创作礼」活动,一起开启掘金创作之路。
因为Http连接的无状态性,无法记录历史状态,就是每一次进行http请求web站点都不认识用户,比如再购入车里加入商品时,服务器并不知道之前用户加入了什么,只知道当前加入的东西。为了解决这个问题,发明了会话跟踪技术。
cookie和session是常用的会话跟踪技术,cookie通过在客户端记录信息确定用户身份,session通过在服务器端记录信息确定用户身份。
-
cookie:
-
cookie机制
客户端发送一个http请求到服务器端,服务器端发送一个http响应到客户端,其中包含Set-Cookie头部,客户端发送一个http请求到服务器端,其中包含Cookie头部,服务器端发送一个http响应到客户端。
-
什么是cookie?
cookie是由服务端生成的,发送给客户端的一小段文本信息 ,一直保存在客户端中,可分为内存cookie(非持久cookie)和硬盘cookie(持久cookie)。内存cookie,浏览器关闭后就消失了;硬盘cookie,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除。
-
-
sesion:
-
session机制
在创建session的同时,服务器会生成一个唯一的session id,在之后的请求中会重新获得这个已经被创建好的session id,从而找到对应的session所存放是的数据。
-
什么是session?
储存在服务器端。在服务器端保存session并生成唯一的sessionID,浏览器每次通过访问服务器时传输sessionID就能找到保持连接的状态。
-
-
cookie和session的区别
-
存放位置不同
- cookie:客户端
- session:服务端
-
存放数据大小不同
- cookie:4KB
- session:5M
-
存取方式不同
- cookie:字符串
- session:任何数据类型
-
隐私策略不同:
- cookie:储存在浏览器中,可能会被劫持和修改
- session:储存在服务器中,很难泄露
-
对跨域支持的不同
- cookie:支持跨域名访问
- session:不支持跨域名访问
-