cookie和session

cookie和session是javaweb中非常重要的两个技术,我认为它们是分别在浏览器端和服务器端的两个存储机制。session是服务器端的技术,cookie是浏览器端的技术,相比较而言,因为session的位置关系,所以拥有更安全,容量更大的优点。
图片.png
一、COOKIE:
1)、COOKIE是什么?
cookie可以理解是服务器暂存在客户端的文本信息(.txt文件)。

2)、COOKIE从哪来?
cookie从服务端来,它是由服务端生成的。
客户端可以清除cookie。

3)、COOKIE往哪去?
A、cookie的归宿是客户端,由服务端生成后,发送给客户端;
B、它是存放在客户端的硬盘上的。
在这里插入图片描述
PS:客户端与服务器通信时,服务器首次返回给客户端的set-cookie是包含在响应header中的;同时,客户端向服务器发送请求时,cookie也是包含在请求header里的。
4)、COOKIE干什么用的?
cookie其实可以看成是http协议的一个扩展,因为http协议是无状态的协议,服务器无法识别客户端,cookie可以帮助服务器辨别客户端,以便它们之间更好地通信。
通俗地讲,cookie就类似一个通行证,每次客户端向服务器发送请求时,带上这个通行证,服务器就能通过这个同行证,准确地确认客户。

二、session:
1)、session是什么?
如果把cookie比作是服务器发给客户端的通行证,那么,可以把Session理解为程序在服务器上建立的一份客户档案,记录的是客户的状态等信息。

2)、session从哪来?
A、session是服务端为客户端开辟的,它是服务器端程序运行的过程中创建的,不同语言实现的应用程序有不同创建Session的方法。
B、生成session的同时,也会生成唯一的sessionID与之对应,类似于键值对的形式{sessionID:session}。

3)、session往哪里去?
A、session是存放在服务端的,是服务端开辟的空间存储的,是存在内存中的;
B、当会话关闭时,session会被清除;
C、session的默认失效时间是20分钟,服务器会把长时间没有活动的session从服务器内存中清除。
4)、session有什么用?
还是因为http是无状态的协议,session也是为了保持客户端与服务器更好的连接状态,更好地通信。
通信过程,大致可以理解为:
A、客户端—>服务端:客户端给服务端发送请求,服务端创建session,同时生成sessionID;
B、服务端—>客户端:服务端给客户端发送响应,并告诉客户端对应的sessionID;
C、客户端---->服务端,两者之间发请求,通信时,请求头里就可以带上sessionID,服务端就能更好地识别客户端。

三、总结COOKIE与SESSION的区别:
1)、cookie存储在客户端,SESSION存储在服务器;
2)、cookie机制保持连接,通信时压力在客户端;SESSION机制保持连接,通信时压力在服务器;
3)、SESSION机制更安全,因为cookie存放在客户端,容易被窃取。但是session机制依赖于sessionID,而sessionID保存在cookie中,一旦客户端禁用了cookie,session也将失效;
4)、cookie是以文本的形式存储在客户端,存储量有限(<=4KB);
session可以无限量地往里面添加内容。
5)、Cookie支持跨域名访问,Session不支持跨域名访问;
6)、Cookie可以设置为长期有效,而Session会随会话窗口关闭而失效。


1、本站资源长期持续更新。
2、本资源基本为原创,部分来源其他付费资源平台或互联网收集,如有侵权请联系及时处理。
3、本站大部分文章的截图来源实验测试环境,请不要在生产环境中随意模仿,以免带来灾难性后果。

转载请保留出处:  www.zh-cjh.com珠海陈坚浩博客 » cookie和session

作者: cjh


手机扫一扫,手机上查看此文章:

一切源于价值!

其他 模板文件不存在: ./template/plugins/comment/pc/index.htm

未雨绸缪、居安思危!

数据安全、有备无患!

注意操作、数据无价!

一切源于价值!