1、什么是session

  Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。

这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存

在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。

当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。

2、cookie与session的关系

  cookie和session的方案虽然分别属于客户端和服务端,但是服务端的session的实现对客户端的cookie有依赖关系的,

服务端执行session机制时候会生成session的id值,这个id值会发送给客户端,客户端每次请求都会把这个id值放到http请

求的头部发送给服务端,而这个id值在客户端会保存下来,保存的容器就是cookie,因此当我们完全禁掉浏览器的cookie

的时候,服务端的session也会不能正常使用

session机制_客户端

 

 3、session的作用

  我们在登录某些网站的时候,输入了用户名密码,登录以后再打开新的页面时,自动显示的是已登录的状态,不需要再次

重新登录。这里就是session功能的一个小小的体现。

session机制_客户端_02

在用户1和用户2登录的时候,我们的服务器在他们登录成功后,在session表中为他们每个用户分配了一个sessionid并且存

下了一个对应的信息。当用户第二次访问该服务器的时候,会将sessionid在request请求中携带者发送过去。这时我们的服

务器就可以根据sessionid确定用户存储的数据,然后进行使用。如图所示:

session机制_应用程序_03