1.什么是会话
为了实现某一个功能(比如购物),浏览器和服务器之间可能会产生多次的请求和响应。从浏览器访问服务器开始,到访问服务器结束,浏览器关闭为止,这期间产生的多次请求和响应加在一起,就称之为浏览器和服务器之间的一次会话。
2.如何保存会话中产生的数据
若是使用request域对象,这个域对象作用范围太小了,仅仅是一次请求,一次请求结束之后,request对象就会被销毁。而ServletContext作用域又太大了,所有的用户都可以访问,都可以往其中存取数据,这样的话容器产生混乱。
这里我们推荐使用Cookie和Session来保存会话中产生的数据。
2.1 cookie的工作原理
Cookie是基于Set-Cookie响应头和Cookie请求头进行工作的
Cookie是将会话中产生的数据保存在客户端。
当浏览器访问服务器,需要保存数据时,在服务器端获取需要保存的数据,在通过Set-Cookie响应头将数据发送给浏览器,让浏览器自己保存
浏览器将数据以cookie的形式保存在内部之后,以后再去访问服务器,都会带着Cookie,当服务器端需要数据时,可以通过cookie请求头获取数据,从而实现某些功能。
2.2 session的工作原理