【网络安全】web状态维持 存储会话机制cookie和session

web对话中,由于Http协议是无状态的,(无状态是指:协议本身不知道此次client请求和上次是否为同一个),为了维持临时会话状态,使得短期内刷新不重登录。

提供解决方案:保存状态给client,再次访问的时候client发送状态给server。

解决方法:1、隐藏字段  2、cookie  => session。

[分析]

1、何为隐藏字段?

隐藏字段是将重要的信息用一个随机的极大数代替发送给client,将重要信息的真实值存在server端,client发送请求的时候携带极大随机数,server收到后用client发来的极大随机数比对找到存在server上的真实值,从而恢复会话即session。

需要注意在实现的时候,server对每个会话session都设置有一个唯一标识sessionID,在client发起第一次访问请求的时候就会保存sessionID到client本地上,往后访问该server的时候都会加上这个ID 从而解决了HTTP无状态带来的不便。

上述前提是没有关掉cookies、或者没有清掉cookies。

2、cookies是什么?

简而言之,cookies是保存在client端记录client访问数据的文本文件,文件中用户信息是以键值对的形式存储的。

3、为何有cookies?(cookies的作用)

①用户跟踪:第三方就可以根据cookies获取用户信息,做广告推广等。

②个性化定制:保存某一用户的个性化设置。

③保存sessionID、用户信息:短期内再次连接的时候,无需登录,无需重新设置某些属性。

4、session是什么?

session和cookies很相似,都是为了维持会话状态,方便读取全局信息。但是cookies是存储在client端的,用户可以修改,且存储的大小也有限。因此开始使用session这一个存储会话机制。

session是一种在server端保存的数据结构(散列表),是一种存储数据的方式。实现两次页面之间的关联登录(跟踪用户状态)。

session是以cookies为基础的(cookies是实现session的一种方式)。

5、session的作用?

①保存用户信息、识别用户;

②实现用户在web页面之间跳转的连贯性;


6、cookies和session的区别

①cookies的数据是存在client端的,session的数据是存在server端的。

②cookies的数据可以被用户修改,不安全。session的数据在server不会被轻易修改。

③cookies可存数据量小,session可存数据量大但是占用服务器资源。

7、cookies和session的联系

session的信息是通过sessionID获取的,但是sessionID是存在cookies的;

进而可得结论为session是以cookies为基础的。

猜你喜欢

转载自blog.csdn.net/qq_34519492/article/details/80623214