session相关

网上关于这块的介绍是挺多的,但是对于新人,尤其是从前端转过来的根本不能了解到本质。
session是服务器端存放在内存或文件或数据库等地方的一块区域。
他可以看做是一个仓库store,要想拿到对应的对象,需要有一个钥匙,即一串唯一的标识,这个标识就是session_id,他由服务器端设置生成,并返回给浏览器,浏览器在每次的请求中,在headers里的cookie里会携带特定名字的字段以及其对应的上面提到的session_id,服务器端判断是否有session_id 名字对不对(cookie里session_id对应的key值,比如sid=asdjajshdjhs121312kasds,这个名字默认是一个值,也可以通过服务器端来设置),对应的session_id在session仓库里是否存在对应的对象,存在的话就返回那个对象,这都是自动的,不用你去比对,然后你可以对这个对象进行添加或删除或销毁。其他自己设置的属性和值,你可以去用,想怎么用怎么用。
**
默认开启session,然后每次请求后,其实都会有session_id了,但是通过用户名密码的验证后,我们可以将用户的id或者其他存入session,只要下次能读到用户的id,就说明他已经通过验证了,也就是说不必每次都验证,以后只要操作其他就可以了。
**

不同的用户访问网站时都会分配不同的SESSIONID,关闭浏览器后,再次打开也会分配不同的SESSIONID。SESSION本来就是与用户相关的,通过来讲只要验证SESSION中的userid是否存在即可。存在SESSION['userid']就代表着这是一个经验验证的用户。因为只有通过验证后,才会把userid写入SESSION。

密码只在一些必须的操作时,要求再次输入进行。SESSION中不存,是不需要存,而不是每次都需要到数据库中去查询对比。

设置了httpOnly为true那么session_id在客户端是打不出来的。否则是可以查看和修改的。

你可能感兴趣的:(session相关)