COOKIE和SESSION有什么区别?
Cookie是保存在浏览器上的一些数据,一般通过HTTP响应头set cookie来设置,当然也可以通过JS脚本来直接设置,Cookie是按照网站来进行组织和保存的,每一个网站都可以在浏览器中保存一些Cookie,保存好了之后,浏览器向这个网站发出的请求都会携带这些Cookie,然后后台就可以分析这些Cookie。Session这个单词在不同的语境下可以有不同的含义。它可以理解为一个抽象概念,即会话,会话用于记录一个用户在我们网站上的一些行为、一些状态,可以理解为一个上下文,Context。这些用户状态可以利用Cookie直接保存在前端,也可以保存在后台,然后利用Cookie中的Session ID来标识。在另外的一些语境下,Session又可以指在后台保存用户状态来实现会话的方式,它把用户状态存储在后台的内存、数据库等介质中,然后我们利用请求的Cookie中保存的Session ID来为这个请求找到它对应的会话。Session在一些语境下还可能专指后台保存的用户状态。
1,session 在服务器端,cookie 在客户端(浏览器)
2,session 默认被存在在服务器的一个文件里(不是内存)
3,session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 session_id)
4,session 可以放在 文件、数据库、或内存中都可以。
5,用户验证这种场合一般会用 session
作者:冯特罗
链接:https://www.zhihu.com/question/19786827/answer/21643186
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。