当前位置: 移动技术网 > IT编程>脚本编程>vue.js > session运行机制

session运行机制

2020年07月24日  | 移动技术网IT编程  | 我要评论

什么是session:

首先了解一下Session的中文意思:一次会话,什么是一次会话呢?我举个例子:就我们现在上网,打开浏览器浏览网站当时开始到你关闭浏览器,就称之为一次会话;

也可以这么理解,当你在网上购物,浏览、选择商品、付款、退出,这个就可以理解成一次会话;

一次开始到一次结束;

快速理解Session的执行机制:

比如我现在客户端向服务端发送一个请求,这个时候服务端就用会一个Session来跟你一一对应,下面我画一张图来解释:

就类似于我们每个人的身份证,每个人的身份证号都是不同的,Session就相当于这样的体制。

当张三用浏览器向服务器发送一个请求的时候,服务器会给它创建并分配一个Session,同时,李四也访问服务器,这个时候服务器同时也会给李四创建并分配一个Session,两个人一个一个相互独立互不干扰。

分配给你的Session就是用来保存信息的,比如这个时候又来一个王五,王五给服务端发一个请求,这个时候我服务端又产生了一个Session用于保存王五的信息。

Session机制详解:

1、用户(浏览器)向Web应用服务器发送第一次请求时,请求头部中不包含sessionID(session唯一标识),则服务器会为该客户端创建一个新的session,并生成一个与此session对应的sessionID,然后将sessionID随着本次响应返回给客户端;

2、用户(浏览器)再次向Web应用服务器发送请求时,请求头部包含sessionID,则服务器首先会通过sessionID找到对应的session,以确定是这个客户端访问服务器,此时sessionID不会再次随着本次响应返回给客户端;如果该session因超出时长而被Web服务器删除,则重新创建一个新的session,并生成一个与此session对应的sessionID,然后将sessionID随着本次响应返回给客户端;

客户端没有禁用cookie的情况下,客户端使用cookie保存sessionID。如果cookie禁用,则会自动转化为用URL-rewriting(URL重写,URL中包含sessionID)技术实现。

简而言之:

当用户(浏览器)向Wed应用第一次发送请求时,服务器会创建一个session对象并分配给该用户;该session对象中包含着一个唯一标识符sessionId,并且服务器会在第一次响应用户时,将此sessionId作为jsessionId保存在浏览器的Cookie对象中;这个session将一直延续到用户访问结束(用户长时间不访问Wed应用)。

当Wed应用接收到用户的请求时,首先会检查服务器是否已经为这个用户(浏览器)创建过了session对象,具体是判断用户的请求是否包含了一个sessionId,如果包含sessionId,则服务器就会通过这个sessionId找到对应的session,以确定是这个用户在访问服务器。而如果用户的请求中没有sessionId,则服务器会为该用户创建一个新的session,并生成一个与此session对应的sessionId,然后将sessionId随着本次响应返回给用户(浏览器的Cookie对象中)。

注意:

浏览器关闭只是中断了和Web服务器的联系,但是session对象依然存在服务器端,如果时间超时,则Web服务器将其删除,如果服务器关闭,则将对象序列化到SESSIONS.ser文件内,服务器重新启动,则将该文件中session对象重新反序列化。

本文地址:https://blog.csdn.net/bravery__/article/details/107526134

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网