java中session的工作原理是什么?和Cookies有何区别?

BSO 2020-11-24 14:39:33 java常见问答 8630

现在大家学习的东西和以前大不相同了,越来越多的人倾向于去学习高新技术以获得更好的发展。java是很多人的第一选择。java中的知识还是很多的,今天就来为大家介绍一下。

首先来说一下java中session的工作原理是什么?

session的工作原理是客户端登录完成之后,服务器会创建对应的session,session创建完之后,会把session的id发送给客户端,客户端再存储到浏览器中。这样客户端每次访问服务器时,都会带着sessionid,服务器拿到sessionid之后,在内存找到与之对应的session这样就可以正常工作了。

然后简述一下,Cookies和session有什么区别?

Cookie和Session都是客户端与服务器之间保持状态的解决方案

一、存储的位置不同,cookie:存放在客户端,session:存放在服务端。Session存储的数据比较安全

二、存储的数据类型不同

两者都是key-value的结构,但针对value的类型是有差异的

cookie:value只能是字符串类型,session:value是Object类型

三、存储的数据大小限制不同

cookie:大小受浏览器的限制,很多是是4K的大小, session:理论上受当前内存的限制,

四、生命周期的控制

cookie的生命周期当浏览器关闭的时候,就消亡了

(1)cookie的生命周期是累计的,从创建时,就开始计时,20分钟后,cookie生命周期结束,

(2)session的生命周期是间隔的,从创建时,开始计时如在20分钟,没有访问session,那么session生命周期被销毁

最后为大家补充一下,一次完整的HTTP请求过程,如下所示:

域名解析-->发起TCP的3次握手-->建立TCP连接后发起http请求-->服务器响应http请求,浏览器得到html代码-->浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)-->浏览器对页面进行渲染呈现给用户。

以上就是关于java中session的工作原理是什么以及它和Cookies有何区别的主要内容了。具体的知识还是比较好理解的。如果你对java知识感兴趣,想要了解更多java基础知识,敬请关注奇Q工具网。

推荐阅读:

java中TCP与UDP区别是什么?GET与POST有何区别?

java中synchronized锁和ReentrantLock锁的区别是什么?详细解析

java中同步与异步的区别是什么?表现在哪里?