cookie和session的区别是面试经常被问的话题,下面详解6大cookie和session的区别@mikechen
存储位置的区别
Cookie是存储在客户端,比如:浏览器,通常以键值对的形式保存在用户的计算机上。
Session数据存储在服务器上,通常存储在服务器的内存中,尽管也可以将其存储在数据库或文件系统中。
数据安全性的区别
Cookie中的数据在客户端是可见的,虽然可以对其进行加密,但仍然可能被用户查看和修改,因此,不应将敏感信息存储在Cookie中。
Session数据存储在服务器上,客户端无法直接访问或修改,这使得Session更适合存储敏感信息。
容量限制的区别
一般,浏览器通常限制单个Cookie的大小,一般在4KB左右,不同浏览器可能有所不同。
但是,Session没有与Cookie相同的容量限制,因为数据存储在服务器上,但需要考虑服务器内存的限制。
生命周期的区别
可以设置Cookie的生命周期,可以是会话级别的,比如:浏览器关闭时失效,或在一段时间内有效,比如:30天。
Session通常在客户端关闭时,或超过一定的空闲时间后,由服务器配置决定被删除。
跨跨设备的区别
Cookie通常可以跨浏览器和跨设备使用,因为它们存储在客户端。
Session:Session通常依赖于浏览器的会话,不容易跨浏览器或跨设备使用。
性能的区别
由于Cookie存储在客户端,它们不会占用服务器资源,但随着Cookie数量的增加,HTTP请求中的Cookie数据会变得更大,可能会影响网络性能。
Session数据存储在服务器上,因此可能会占用服务器内存和处理能力。
综上所述,Cookie和Session都用于维护用户状态,Cookie适用于存储小型、不敏感的数据,而Session适用于存储大型、敏感和安全的数据。
mikechen
mikechen睿哥,10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!

后台回复【架构】即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》