对于cookie和session的总结

作者: 前端的搬运工 | 来源:发表于2019-05-21 12:25 被阅读17次

    对于cookie和session的总结

    最近项目在调试性能问题,关于cookie和session的问题进行了讨论,所以在这里分别解释一下他们各自的用途以及他们的一些区别

    一、cookie

    1.什么是cookie?

    cookie是服务器发给客户端的特殊信息,是储存在用户本地终端上的数据,每次请求都会带有cookie信息。简单来说,cookie就是服务器暂时存放在你的电脑里的资料(.txt格式的文本文件),好让服务器用来辨认你的计算机。

    2.cookie机制:

    客户端请求服务器时,如果服务器需要记录用户状态,就在用户请求时发送一段cookie信息。客户端浏览器保存改cookie信息,当用户再次再次访问该网站时,浏览器会把cookie作为请求信息的一部分提交给服务器。服务器检查cookie内容,以此来判断用户状态,服务器还会对cookie信息进行维护,必要时会对cookie内容进行修改。

    3.cookie的类型:

    cookie总时由用户客户端进行保存的(一般是浏览器),按其存储位置可分为:内存式cookie和硬盘式cookie。

    内存式cookie存储在内存中,浏览器关闭后就会消失,由于其存储时间较短,因此也被称为非持久cookie或会话cookie。

    硬盘式cookie保存在硬盘中,其不会随浏览器的关闭而消失,除非用户手工清理或到了过期时间。由于硬盘式cookie存储时间是长期的,因此也被称为持久cookie。

    二、session(解释一下其中的几点,更多详细的内容大家可以自行百度

    1.什么是session

    简单来讲,session是另一种记录客户状态的机制,session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是session。客户端浏览器再次访问时只需要从该session中查找该客户的状态就可以了。

    2.session机制:

    不同语言实现的应用程序有不同创建session的方法,而在Java中是通过调用HttpRequest的getSession方法(使用true作为参数)创建的。在创建了session的同时,服务器会为该session生成唯一的session id,而这个session id在随后的请求中会被用来重新获得已经创建的session;在session被创建之后,就可以调用session相关的方法往session中增加内容了,而这些内容只会保存在服务器中,发到客户端的只有session id;当客户端再次发送请求的时候,会将这个session id带上,服务器接受到请求之后就会依据session id找到相应的session,从而再次使用之。正式这样一个过程,用户的状态也就得以保持了。

    3.bizjsession是什么?(在讨论中发现有bizjsession这个字段,所以做一下说明)

    每一个session都有一个id来作为标识,这个id会传到客户端,每次客户端请求都会把这个id传到服务器,服务器根据id来匹配这次请求应该使用哪个session。bizjsessionid就是客户端用来保存sessionid的变量,主要是针对java实现的web容器,没有研究过其他语言是用什么变量来保存的。一般对于web应用来说,客户端变量都会保存在cookie 中,bizjsessionid也不例外。不过与一般的cookie变量不同,bizjsessionid是保存在内存cookie中的,在一般的cookie文件中是看不到它的影子的。

    三、cookie和session的区别

    1.session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务端可以知道其中的信息,所以session的安全性要高于cookie。

    2.session中保存的是对象,cookie中保存的是字符串。

    3.session是保管在服务器端的,每个用户都会产生一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存。因而像Google、Baidu、Sina这样并发访问量极高的网站,是不太可能运用session来追踪客户会话的。而cookie保管在客户端,不占用服务器资源。假如并发阅读的用户十分多,cookie是很好的选择。关于Google、Baidu、Sina来说,cookie或许是唯一的选择。

    4.cookie支持跨域名访问,而session则不会支持跨域名访问。

    相关文章

      网友评论

        本文标题:对于cookie和session的总结

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