什么是会话和会话状态
会话是指一个客户端与web服务器之间连续发生的一系列请求和响应的过程。就像是从拨通电话到挂断电话之间聊天的过程就是一个会话。
web应用的会话状态是指服务器与浏览器在会话过程中产生的状态信息,借助会话状态,web服务器能够把属于同一会话中的一系列请求和响应过程关联起来,使得他们之间可以相互依赖和传递信息。例如在一个购物网站购买东西,结算时必须知道登录请求表单的结果,以便知道是哪个账户在操作。还必须知道已选商品的信息。其中的用户登录的账户信息和已选商品信息就是会话的状态信息。
cookie和session的区别
在请求中,http是无状态请求协议。http是无法记录用户的请求状态,比如不知道你是第几次请求,是在什么情况下,在之前或之后访问过哪里?但是在一个web项目中有时是需要记录一些状态的,比如是否登录,是否查看过什么页面,获取记录用户的一些喜好等等。
可以使用一些技术手段去记录一些信息:
- cookie
- cookie是在浏览器中记录一些数据,并且浏览器在访问相同服务器时会主动携带该数据
- 如果cookie丢失,或者换了一个浏览器再访问,那么cookie就不存在了。
- 如果一些敏感数据,存储在浏览器中,就很危险。
- session
– session是在服务器中记录相关状态数据(文件,数据库),并且每个数据生成一个唯一的id,叫做sessionID - 把这个sessionID作为cookie存储在用户的浏览器中。
- 相对来说,可记录的数据量比较大,数据相对安全。
- session是依赖cookie的。