面试必问:session,cookie与session区别

如何深刻理解JavaWeb中session和cookie?

面试必问:session,cookie与session区别


简单来说一个是把用户数据保存在用户端(电脑、手机等),一个是保留在服务器端(云端) 。本文由齿轮易创原创,未经许可禁止转载 。如有技术开发需求请联系齿轮易创头条号 。Cookie是针对每一个网站的信息,每一个网站只对应一个,其它网站不能访问,这个文件是保存在客户端的,每次你打开相应网站,浏览器会查找这个网站的cookies,如果有就会将这个文件起发送出去 。
cookies文件的内容大致包含这些信息如用户名,密码,设置等 。由服务器发送出来以存储在浏览器上,从而下次这位访客又回到该网络服务器时,可从该浏览器读回此信息 。Session是针对每一个用户的,session机制是一种服务器端的机制 。只有客户机访问,程序就会为这个客户新增一个session 。session里主要保存的是用户的登录信息,操作信息等 。
Session直接翻译成中文比较困难,一般都译成时域 。在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间 。以及如果需要的话,可能还有一定的操作空间 。具体到Web中的Session指的就是用户在浏览某个网站时,从进入网站到关闭浏览器所经过的这段时间,也就是用户浏览这个网站所花费的时间 。
因此从上述的定义中我们可以看到,Session实际上是一个特定的时间概念 。Cookie和Session的关系当客户端请求创建一个session的时候,服务器首先检查客户端请求里是否已包含了一个session标识session id,如果已包含一个session id则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用 。
如果客户端请求不包含session id,则为此服务器创建一个session并且生成一个与此session相关联的session id 。保存这个session id的方式可以采用cookie,Session类似于”云端”存储 。一个Session的概念需要包括特定的客户端,特定的服务器端以及不中断的操作时间 。
优缺点cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗(cooke是透明可见的),考虑到安全应当使用sessionsession会在一定时间内保存在服务器上,当访问增多,会比较占用你服务器的性能 。考虑到减轻服务器性能方面,应当使用COOKIE单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K 。
token、cookie和session的区别与使用场景?
面试必问:session,cookie与session区别


谢谢邀请 。Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码 。Session会话,代表服务器与浏览器的一次会话过程,这个过程是连续的,也可以时断时续 。
cookie中存放着一个sessionID,请求时会发送这个ID;session因为请求(request对象)而产生;session是一个容器,可以存放会话过程中的任何对象;session的创建与使用总是在服务端,浏览器从来都没有得到过session对象;session是一种http存储机制,目的是为武装的http提供持久机制 。
Cookie 技术产生源于 HTTP 协议在互联网上的急速发展 。随着互联网时代的策马奔腾,带宽等限制不存在了,人们需要更复杂的互联网交互活动,就必须同服务器保持活动状态(简称:保活) 。于是,在浏览器发展初期,为了适应用户的需求技术上推出了各种保持 Web 浏览状态的手段,其中就包括了 Cookie 技术 。

推荐阅读