美文网首页
Session详解

Session详解

作者: loserStar | 来源:发表于2018-06-28 16:46 被阅读63次

    首先跟大家道个歉,最近比较忙,更新的比较慢,大家见谅。(特喵的读者数又少了,心碎呀!,大家赶紧帮我推荐一波吧)

    好了,废话不多说,今天我们主要是说一说Session的一些知识,我在前面的文章中曾经说过,Cookie和Session的出现,很大程度上弥补了HTTP无状态连接带来的一些不方便。上一篇文章我们已经比较细致的讲解了Cookie的·一些知识,Cookie有一个特点就是Cookie存在于客户端中,而今天说的Session则是存在于服务器中!

    首先,我们先看一下Session是什么。

    [图片上传失败...(image-1609c8-1530173992145)]

    Session是如何工作的?

    我们知道,Session信息是存储到服务器端的,但是不同的浏览器可能在服务器上都存储了属于自己的Session信息,但是浏览器怎么去寻找属于自己的Session呢。

    就如同,我们去公安局查信息,我们只需要输入自己的身份证号就可以匹配到唯一的身份证信息。Session机制也是这样的,浏览器在访问服务器的时候,将自己的sessionid给服务器,服务器就可以根据这个ID去匹配查找Session信息。由此,我们推断出在服务器端,Session的存储机制是key=value的形式,我们可以保证key一定是sessionid,但是value的存储方式可能有很多种,在这里我们不做过多的讨论。

    我以实际操作为例,我们来看一下Session的工作机制。

    [图片上传失败...(image-7654f1-1530173992145)]

    [图片上传失败...(image-935097-1530173992145)]

    [图片上传失败...(image-70baf4-1530173992145)]

    关于Session的工作机制,我想大家应该有一个初步的认识了吧。

    说完了Session是什么,Session如何工作,我们接下来看一下,我们常用的Session实现方式有哪几种。

    第一种:就是依赖于Cookie的实现,就是上面我们所说的那种,在这里我就不赘述了。

    第二种:URL重写。这种实现方式,是通过在请求的URL后面后缀JESSIONID=xxx这种方式将JESSIONID传递给客户端。

    第三种:隐藏的表单域。就是在FORM表单中,设置一个隐藏域,将JESSIONID放置其中,一并发送给服务器端。

    当然,第一种方式是目前的主流,但是浏览器必须要支持Cookie,如果浏览器禁用Cookie,那么可以考虑第二种或第三种实现方式!

    Session的缺点:

    没有任何一种技术是完美无瑕的,任何一种技术都有它的优缺点,Session也不例外。据我所了解的,Session的缺点就一下几点,欢迎大家补充:

    1、如果Session的实现是依赖于Cookie的话,那么浏览器必须要支持Cookie,否则歇菜。

    2、过多的浏览器请求,会在服务器端创建很多的Session信息,会对浏览器造成一定的内存压力,而且不易于维护。

    目前,我知道的就这两点!

    好了,今天我们主要说了一下Session的一些东西,总结起来以下几点:

    1、Session存在于服务器端,不同于Cookie.

    2、如果Session的实现是依赖于Cookie的实现,浏览器在多次访问服务器端时,会在请求报文中的Cookie属性中添加JESSIONID=123,作为到服务器端检索属于自己的Session信息的唯一ID.

    3、SESSION的实现方式有很多:有依赖与Cookie实现、URL重写实现、隐藏表单域实现!

    相关文章

      网友评论

          本文标题:Session详解

          本文链接:https://www.haomeiwen.com/subject/ovzgyftx.html