Cookie与Session的区别与联系

Cookie和Session是JavaWeb常用的会话跟踪技术。Cookie是HTTP协议规范,数据保存在客户端,可实现记住密码等功能;Session由服务端创建,依赖Cookie实现,数据保存在服务端。二者存在保存位置、安全性、资源占用等方面的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    Cookie和Session都是JavaWeb开发中常用的会话跟踪技术,许多网站的记住密码功能,电商网站的购物车功能都是由Cookie或Session实现的。

    Cookie

    Cookie是HTTP协议的规范之一,用于在服务器与客户端之间传递数据。当服务端收到了客户端的请求进行响应时,服务端通过响应头将Cookie传递给客户端,客户端将Cookie保存起来,当客户端再次访问同一个服务器时,也会将保存的Cookie方法请求头中传递给服务端。可以实现用户记住密码,购物车功能等。

    Cookie是保存在客户端的以key、value形式存在的数据。

    

    这是访问百度文库时的部分Cookie数据。

    Session

    服务端可以在浏览器每次访问服务器时为客户端创建一个Session对象(会话对象),默认情况下每个浏览器独占一个Session对象,当用户需要保存数据时,可以将数据保存在Session中,当浏览器在访问其他程序时,其他程序可以从Session中取出用户数据,提高操作效率。

    Session是依赖于Cookie实现的,当客户端第一次访问服务器时,服务器就会创建一个Session对象,并且同时创建一个Cookie,在Cookie中保存了Session的id,当客户端再次访问服务器时,服务端根据Cookie中的D来识别Session对象,这个Cookie保存在浏览器内存中,当浏览器关闭,这个Cookie就会消失,再次打开浏览器将会重新开启新的Session。

 

Cookie与Session的区别

①:Cookie是保存在客户端的数据,Session是保存在服务端的数据。

②:Session的运行依赖Cookie中的session_id,如果浏览器禁用了Cookie,则也将无法使用Session。(可以通过在url中传session_id来实现)

③:因为Cookie保存在浏览器端,所以Cookie有可能被伪造进行Cookie欺骗,一定程度上不安全,所以需要安全性的数据还是要保存在Session中。(如用户验证)

④:由于Session存在于服务器端,如果都将数据保存在Session中,会大量占用服务器的资源。(可以用单独的Session服务器解决)

⑤:单个Cookie的大小不能超过4K,而且很多浏览器也对Cookie的数量有限制。

 

 

 

 

    

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值