一道面试题,请教大家,关于cookie和session

关于cookie和session,它们之间的区别,网上比较多的回答是类似于这样的:
1)cookie保存在客户端,session保存在服务器端,
2)cookie目的可以跟踪会话,也可以保存用户喜好或者保存用户名密码
3)session用来跟踪会话

或者是这样的:

1,session 在服务器端,cookie 在客户端(浏览器)
2,session 默认被存在在服务器的一个文件里(不是内存)
3,session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 session_id)
4,session 可以放在 文件、数据库、或内存中都可以。
5,用户验证这种场合一般会用 session

因此,维持一个会话的核心就是客户端的唯一标识,即 session id



意思都差不多,我的问题是:既然session的实现需要借助于cookie,那服务器直接根据cookie来实现会话跟踪,不是能达到一样的效果吗?那么为什么要搞那么复杂,直接用cookie不就行了吗?弄个session还需要借助cookie,不是多此一举吗?

面试被问到cookie和session的区别,我balala一堆类似上面的答案之后,被这样问,直接问傻了,该怎么回答?还请大神赐教啊
全部评论
session存储在服务端,安全性高;session支持更多数据类型;
2 回复 分享
发布于 2017-08-28 12:07
cookie太多了,会十分浪费带宽,你想想,服务器是为成千上万甚至亿级别用户服务的,如果所有信息都存在cookie里,每个用户访问都带来小量cookie,那么数据量也是可怕的,另外有些重要信息存cookie十分不安全!这是我的理解~不知道对不对
点赞 回复 分享
发布于 2017-08-28 12:08
cookie:存储量小,只有4KB,每次请求的时候都会带着,影响获取资源的效率,而且cookie不安全,也就是XSS跨站请求攻击。 存储在浏览器的方法:cookie,(HTML5)localStorage,(HTML5)sessionStorage 这三个的差别可从:存储的大小,存储的时间长短等方面。 session放在服务器,一般的用户账户信息都存在session中,不会被别人盗取。
点赞 回复 分享
发布于 2017-08-28 13:10
那会话时间怎么用cookie控制?
点赞 回复 分享
发布于 2017-08-28 12:06
cookie保存在本地不安全,而且传输cookie对带宽有开销
点赞 回复 分享
发布于 2017-08-28 12:09
在浏览器里是可以直接修改cookie的,如果只用cookie,那不就***了在跑吗?
点赞 回复 分享
发布于 2017-08-28 12:25
终端不只是浏览器
点赞 回复 分享
发布于 2017-08-28 12:40
session优势在于: 1.可以直接存储类对象,如PersonObject;相对的cookie存的是字符串,cookie(“key”,“##”); 2.session存储在服务端,只需本地传递一个JSSIONID就可以判断会话,进行跟踪,比较安全;cookie明文保存,容易泄露。
点赞 回复 分享
发布于 2017-08-28 17:06
一般session放在cookie,如果cookie被禁止了,可以使用url回写。
点赞 回复 分享
发布于 2017-08-28 17:14

相关推荐

点赞 28 评论
分享
牛客网
牛客企业服务