一次搞明白 Session、Cookie、Token,面试问题全搞定
01
它们分别是什么?
session:
session的中 翻译是“会话”,当 户打开某个web应 时,便与web服务器产 次session。服务器使 session把 户的信息临时保存在了服务器上, 户离开 站后session会被销毁。这种 户信息存储 式相对cookie来说更安全,可是session有 个缺陷:如果web服务器 做了负载均衡,那么下 个操作请求到了另 台服务器的时候session会丢失。
cookie:
cookie是保存在本地终端的数据。cookie由服务器 成,发送给浏览器,浏览器把cookie以kv形式保存到某个 录下的 本 件内,下 次请求同 站时会把该cookie发送给服务器。由于cookie是存在客户端上的,所以浏览器加 了 些限制确保cookie不会被恶意使 ,同 时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。
cookie的组成有:名称(key)、值(value)、有效域(domain)、路径(域的路径, 般设置为全局:"")、失效时间、安全标志(指定后,cookie只有在使 SSL连接时才发送到服务器(https))。
token:
token的意思是“令牌”,是 户 份的验证 式,最简单的token组成:uid( 户唯 的 份标识)、time(当前时间的时间戳)、sign(签名,由token的前 位+盐以哈希算法压缩成 定长的 六进制字符串,可以防 恶意第三 拼接token请求服务器)。还可以把不变的参数也放进token,避免多次查库。
02
它们之间有什么关系?
cookie,session都可以是token存储的一种方式。
cookie为存储在本地的数据,请求时会将该数据提交到服务器验证使用。
session为存储在服务器上的内存数据,只要会话没有中断,那么该数据持续有效。
toke通常上来说属于令牌,cookie,session为一种数据存储和使用方式,令牌可以存储在cookie,session,但是实际上通过url参数或者表单参数一样可以达到同样的效果。但是对于开发和维护来说成本较高,一旦后端要求修改参数,这样的使用方式对于修改来说是很头疼的事情。
03
它们本质上的区别?
session的使用方式是客户端cookie里存id,服务端session存用户数据,客户端访问服务端的时候,根据id找用户数据。
而token的使用方式是客户端里存id(也就是token)、用户信息、密文,服务端什么也不存,服务端只有一段加密代码,用来判断当前加密后的密文是否和客户端传递过来的密文一致,如果不一致,就是客户端的用户数据被篡改了,如果一致,就代表客户端的用户数据正常且正确。
流程:
session,注册登录->服务端将user存入session->将sessioni存入浏览器的cookie->再次访问时根据cookie里的sessionid找到session里的user。
token,注册登录->服务端基于用户信息与密钥生成一个token->将token+user 返回给浏览器->再次访问时传递token+user+密文数据,后台会再次使用user与密钥生成token,与传递过来的token比较,一致则正确。
session、cookie、token 这几个概念在面试中可以说是经常出现的,因为通过这个概念基本上可以了解到你对网络请求或者权限管理这一块是否有过了解和实际的应用。
直接返回前端页面一个url路径,你服务端所要做的工作就是获得服务器的IP地址以及数据库中存的相对路径,拼接好返回给前端页面。拼接前面的地址就是你服务器的IP地址啊,你的存在哪个服务器就写哪个地址,如果是直接存在应用服务器上的,那就是应用服务器的ip,这种服务器地址应该是配置好的,或许是配置文件、或许是配置表。 这个是你应该提前知道的,直接就拿过来用的。
至于你最后说的把直接存在数据库,建议你不要试。每个IT人员都在刚开始的时候被深深的教育过,不要这样做,数据库会爆炸,当然我也没这么做过,所以后果也只是听人说。
返回给用户一个http://xxx/xxxjpg的url,浏览器可以打开。用户可以用浏览器打开,或嵌入你的页面返回给客户
楼上的,楼主要的不是JSP的,他的服务端也是JAVA的程序,都是纯JAVA的,是没有H5语言的。
你说的同步卡就是LED显示屏所需要的发送卡吧!LED显示屏发送卡的信号输入都是DVI接口,只要你的拼接系统信号输出接口可以转换成为DVI接口的,然后连接到发送卡就行。你可以参考这两个。
服务器与各NVR、DVR之间的连接是以网络的方式连接,及网线;
NVR、DVR和解码器之间是以网线或者RS485的方式连接;
解码器与监视器就是以HDMI、VGA、HD等视频线连接了!
0条评论