❶ 视频监控系统前端设备包括哪些
视频监控系统产品包含光端机,光缆终端盒,云台,云台解码器,视频矩阵,硬盘录像机,监控摄像机,镜头,支架。视频监控系统组成部分包括监控前端、管理中心、监控中心、PC客户端及无线网桥。组成部分的说明如下:
1、监控前端:用于采集被监控点的监控信息,并可以配备报警设备。①普通摄像头+视频服务器。普通摄像头可以是模拟摄像头,也可以是数字摄像头。原始视频信号传到视频服务器,经视频服务器编码后,以TCP/IP协议通过网络传至其他设备。
网络摄像头。网络摄像头是融摄像、视频编码、Web服务于一体的高级摄像设备,内嵌了TCP/IP协议栈。可以直接连接到网络。
2、管理中心:承担所有前端设备的管理、控制、报警处理、录像、录像回放、用户管理等工作。各部分功能分别由专门的服务器各司其职。
3、监控中心:用于集中对所辖区域进行监控,包括电视墙、监控客户终端群组成。系统中可以有一个或多个监控中心。
4、PC客户端:在监控中心之外,也可以由PC机接到网络上进行远程监控。
5、无线网桥:无线网桥用于接入无线数据网络,并访问互联网。通过无线网桥,可以将IP网上的监控信息传至无线终端,也可以将无线终端的控制指令传给IP网上的视频监控管理系统。常用的无线网络为CDMA网络。
❷ 前端本地数据存储localStorage
场景1、 调用登录接口,当后端放回登录成功后,此时需要把用户令牌token存储
场景2、当用户操作时检测当前的时间,如果当前的时间超过拟定的时间 就把登录信息清空,并返回登录页面
❸ 鉴权必须了解的 5 个兄弟:cookie、session、token、jwt、单点登录
本文你将看到:
**「前端存储」**这就涉及到一发、一存、一带,发好办,登陆接口直接返回给前端,存储就需要前端想办法了。
前端的存储方式有很多。
有,cookie。cookie 也是前端存储的一种,但相比于 localStorage 等其他方式,借助 HTTP 头、浏览器能力,cookie 可以做到前端无感知。一般过程是这样的:
「配置:Domain / Path」
cookie 是要限制::「空间范围」::的,通过 Domain(域)/ Path(路径)两级。
「配置:Expires / Max-Age」
cookie 还可以限制::「时间范围」::,通过 Expires、Max-Age 中的一种。
「配置:Secure / HttpOnly」
cookie 可以限制::「使用方式」::。
**「HTTP 头对 cookie 的读写」**回过头来,HTTP 是如何写入和传递 cookie 及其配置的呢?HTTP 返回的一个 Set-Cookie 头用于向浏览器写入「一条(且只能是一条)」cookie,格式为 cookie 键值 + 配置键值。例如:
那我想一次多 set 几个 cookie 怎么办?多给几个 Set-Cookie 头(一次 HTTP 请求中允许重复)
HTTP 请求的 Cookie 头用于浏览器把符合当前「空间、时间、使用方式」配置的所有 cookie 一并发给服务端。因为由浏览器做了筛选判断,就不需要归还配置内容了,只要发送键值就可以。
**「前端对 cookie 的读写」**前端可以自己创建 cookie,如果服务端创建的 cookie 没加HttpOnly,那恭喜你也可以修改他给的 cookie。调用document.cookie可以创建、修改 cookie,和 HTTP 一样,一次document.cookie能且只能操作一个 cookie。
调用document.cookie也可以读到 cookie,也和 HTTP 一样,能读到所有的非HttpOnly cookie。
现在回想下,你刷卡的时候发生了什么?
这种操作,在前后端鉴权系统中,叫 session。典型的 session 登陆/验证流程:
**「Session 的存储方式」**显然,服务端只是给 cookie 一个 sessionId,而 session 的具体内容(可能包含用户信息、session 状态等),要自己存一下。存储的方式有几种:
「Session 的过期和销毁」**很简单,只要把存储的 session 数据销毁就可以。****「Session 的分布式问题」**通常服务端是集群,而用户请求过来会走一次负载均衡,不一定打到哪台机器上。那一旦用户后续接口请求到的机器和他登录请求的机器不一致,或者登录请求的机器宕机了,session 不就失效了吗?这个问题现在有几种解决方式。
但通常还是采用第一种方式,因为第二种相当于阉割了负载均衡,且仍没有解决「用户请求的机器宕机」的问题。**「node.js 下的 session 处理」**前面的图很清楚了,服务端要实现对 cookie 和 session 的存取,实现起来要做的事还是很多的。在npm中,已经有封装好的中间件,比如 express-session - npm,用法就不贴了。这是它种的 cookie:
express-session - npm 主要实现了:
session 的维护给服务端造成很大困扰,我们必须找地方存放它,又要考虑分布式的问题,甚至要单独为了它启用一套 Redis 集群。有没有更好的办法?
回过头来想想,一个登录场景,也不必往 session 存太多东西,那为什么不直接打包到 cookie 中呢?这样服务端不用存了,每次只要核验 cookie 带的「证件」有效性就可以了,也可以携带一些轻量的信息。这种方式通常被叫做 token。
token 的流程是这样的:
**「客户端 token 的存储方式」 在前面 cookie 说过,cookie 并不是客户端存储凭证的唯一方式。token 因为它的「无状态性」,有效期、使用限制都包在 token 内容里,对 cookie 的管理能力依赖较小,客户端存起来就显得更自由。但 web 应用的主流方式仍是放在 cookie 里,毕竟少操心。 「token 的过期」**那我们如何控制 token 的有效期呢?很简单,把「过期时间」和数据一起塞进去,验证时判断就好。
编码的方式丰俭由人。**「base64」**比如 node 端的 cookie-session - npm 库
默认配置下,当我给他一个 userid,他会存成这样:
这里的 eyJ1c2VyaWQiOiJhIn0=,就是 {"userid":"abb”} 的 base64 而已。 「防篡改」
是的。所以看情况,如果 token 涉及到敏感权限,就要想办法避免 token 被篡改。解决方案就是给 token 加签名,来识别 token 是否被篡改过。例如在 cookie-session - npm 库中,增加两项配置:
这样会多种一个 .sig cookie,里面的值就是 {"userid":"abb”} 和 iAmSecret通过加密算法计算出来的,常见的比如HMACSHA256 类 (System.Security.Cryptography) | Microsoft Docs。
好了,现在 cdd 虽然能伪造出eyJ1c2VyaWQiOiJhIn0=,但伪造不出 sig 的内容,因为他不知道 secret。**「JWT」**但上面的做法额外增加了 cookie 数量,数据本身也没有规范的格式,所以 JSON Web Token Introction - jwt.io 横空出世了。
它是一种成熟的 token 字符串生成方案,包含了我们前面提到的数据、签名。不如直接看一下一个 JWT token 长什么样:
这串东西是怎么生成的呢?看图:
类型、加密算法的选项,以及 JWT 标准数据字段,可以参考 RFC 7519 - JSON Web Token (JWT)node 上同样有相关的库实现:express-jwt - npm koa-jwt - npm
token,作为权限守护者,最重要的就是「安全」。业务接口用来鉴权的 token,我们称之为 access token。越是权限敏感的业务,我们越希望 access token 有效期足够短,以避免被盗用。但过短的有效期会造成 access token 经常过期,过期后怎么办呢?一种办法是,让用户重新登录获取新 token,显然不够友好,要知道有的 access token 过期时间可能只有几分钟。另外一种办法是,再来一个 token,一个专门生成 access token 的 token,我们称为 refresh token。
有了 refresh token 后,几种情况的请求流程变成这样:
如果 refresh token 也过期了,就只能重新登录了。
session 和 token 都是边界很模糊的概念,就像前面说的,refresh token 也可能以 session 的形式组织维护。狭义上,我们通常认为 session 是「种在 cookie 上、数据存在服务端」的认证方案,token 是「客户端存哪都行、数据存在 token 里」的认证方案。对 session 和 token 的对比本质上是「客户端存 cookie / 存别地儿」、「服务端存数据 / 不存数据」的对比。**「客户端存 cookie / 存别地儿」**存 cookie 固然方便不操心,但问题也很明显:
存别的地方,可以解决没有 cookie 的场景;通过参数等方式手动带,可以避免 CSRF 攻击。 「服务端存数据 / 不存数据」
前面我们已经知道了,在同域下的客户端/服务端认证系统中,通过客户端携带凭证,维持一段时间内的登录状态。但当我们业务线越来越多,就会有更多业务系统分散到不同域名下,就需要「一次登录,全线通用」的能力,叫做「单点登录」。
简单的,如果业务系统都在同一主域名下,比如wenku..com tieba..com,就好办了。可以直接把 cookie domain 设置为主域名 .com,网络也就是这么干的。
比如滴滴这么潮的公司,同时拥有didichuxing.com xiaojukeji.com didiglobal.com等域名,种 cookie 是完全绕不开的。这要能实现「一次登录,全线通用」,才是真正的单点登录。这种场景下,我们需要独立的认证服务,通常被称为 SSO。 「一次「从 A 系统引发登录,到 B 系统不用登录」的完整流程」
**「完整版本:考虑浏览器的场景」**上面的过程看起来没问题,实际上很多 APP 等端上这样就够了。但在浏览器下不见得好用。看这里:
对浏览器来说,SSO 域下返回的数据要怎么存,才能在访问 A 的时候带上?浏览器对跨域有严格限制,cookie、localStorage 等方式都是有域限制的。这就需要也只能由 A 提供 A 域下存储凭证的能力。一般我们是这么做的:
图中我们通过颜色把浏览器当前所处的域名标记出来。注意图中灰底文字说明部分的变化。
谢谢大家哦
❹ 说一下前端数据存储方式(cookies,localstorage,sessionstorage,indexedDB)的区别
Cookie最初是在客户端用于存储会话信息的,其要求服务器对任意HTTP请求发送Set-CookieHTTP头作为响应的一部分。cookie
以name为名称,以value为值,名和值在传送时都必须是URL编码的。浏览器会存储这样的会话信息,在这之后,通过为每个请求添加Cookie
HTTP头将信息发送回服务器。
localstorage
存储方式:
以键值对(Key-Value)的方式存储,永久存储,永不失效,除非手动删除。
sessionstorage
HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 localStorage 则会一直保存。
IndexedDB
索引数据库(IndexedDB) API(作为 HTML5 的一部分)对创建具有丰富本地存储数据的数据密集型的离线 HTML5 Web 应用程序很有用。同时它还有助于本地缓存数据,使传统在线 Web 应用程序(比如移动 Web 应用程序)能够更快地运行和响应。
❺ 谁能简述三大网络存储
三大网络存储:
1、前端存储
所谓前端存储,是在网络视频监控系统的前端设备(如网络视频编码器或网络摄像机)中内置存储部件,由前端设备直接完成监控图像的本地录制和保存。
前端存储具有几个方面的优势:一是可以通过分布式的存储部署,来减轻集中存储带来的容量压力;二是可以有效缓解集中存储带来的网络流量压力;三是可以避免集中存储在网络发生故障时的图像丢失。
对于前端存储,由于单个前端编码设备通常所带监控点路数不多,存储时间也不长,所以对存储容量要求不高,网络摄像机一般用CF卡或SD卡,视频服务器一般用内置硬盘。这与以往单机存储相比,基本没有区别。
而与以往单机存储本质上不同的是,为了保证用户访问的灵活性和便捷性,网络视频监控系统中的所有前端存储除了要能够提供点对点的单机访问外,还要能够通过一个统一的接口提供所有内容的集中共享。为此,网络视频监控系统通过中心业务平台对所有前端存储进行统一管理和调度,并实现存储空间和存储内容的网络化。这样,用户既可以直接登录单个前端设备进行录像资料的点播回放,也可以统一登录中心业务平台进行所有前端录像资料的集中检索和回放。
2、中心存储
在网络视频监控系统中,部署得更多的是中心存储。前端设备采集监控点图像并编码压缩处理成数字监控码流,然后通过网络传送到中心业务平台,由中心业务平台将码流分发给网络录像单元进行集中存储。
在很多大型的视频监控联网应用中,也可采用多级分布的中心存储方式,即分中心存储,这样一方面可以降低一个中心点集中存储带来的存储容量和网络流量的压力,一方面可以大幅度提升系统的可靠性。
使用中心/分中心存储,在以下几个方面具有明显优势:一是对于用户而言,检索和调用录像资源更为方便;二是存储内容的完整性更容易保证,不会因为某个前端设备失窃或损坏而导致重要内容的丢失;三是可以合理的进行资源调度,为前端设备按需分配存储空间,从而节约资源;四是有利于制定多样化的存储策略,以满足用户的个性化需求;五是维护方便,便于集中检测和及时排查问题。
对于监控点路数比较少、存储时间要求不长的应用场合,中心/分中心存储可以采用服务器插硬盘或外接磁盘柜这种比较简单的方式进行部署,称为DAS(直接访问存储),与单机类似。而随着网络视频监控的优势被广泛认可,现在开始出现越来越多的大型甚至超大型视频监控系统,比如“平安城市”建设中的社会面治安监控系统、中国电信和中国网通正在全面推进的“全球眼”和“宽视界”这两大运营级视频监控系统,这些监控系统都面临着前端设备的大规模接入和大容量集中存储的需求。以往的单机存储方式无法满足这些系统在容量灵活扩展方面的应用需求,必须采用更为先进的网络存储设备和存储技术,其中典型的就是SAN、NAS以及iSCSI。
SAN(存储区域网)起源于上世纪九十年代中后期,与DAS不同,SAN基于光纤通道技术,服务器和存储阵列之间通过光纤通道交换机连接,形成专用于数据存储的区域网络。SAN采用了面向网络的存储结构,数据处理和数据存储分离,具有存储空间易于扩展、寻址灵活、可远距离传输数据、I/O性能高、存储设备利用率高等特点,是一种全新的存储体系结构。
与SAN基于专门的光纤通道协议不同,NAS(网络访问存储)基于IP网络实现服务器和存储阵列的互联,使用TCP/IP协议进行通信,以文件级的I/O方式进行数据传输。相比之下,NAS设备的安装、调试、使用和管理更简单,部署成本也相对较低。
iSCSI是IETF一种新的标准协议,即透过IP网络,将SCSI区块数据转换成网络封包的一种传输标准,它和NAS一样透过IP网络来传输数据,但在数据存取方式上,则采用与NAS不同的,而与SAN相同的Block Protocol协议。由此,iSCSI给用户带来的价值在于:第一,iSCSI使SCSI数据包在以太网中传输成为可能,使SAN摆脱了昂贵的光纤网络,通过IP网络即可实现原先的功能,既降低了管理复杂度又降低了成本;第二,由于用户应用需求的复杂性,往往会同时部署SAN和NAS两种存储网络,而iSCSI则可以将两者融合起来。
iSCSI的这些特点非常契合现在的视频监控发展的现状和方向,特别是在运营级视频监控领域,存储的规模大、投入高,基于目前成熟的IP网络进行中心/分中心存储系统的构建,iSCSI技术无疑是一个很好的参考。
3、混合型存储
对于视频监控网络比较复杂,对存储安全性和可靠性要求又非常高的应用场合,可以采用既有集中存储也有前端存储的部署方式,兼有二者的优势,并规避可能存在的风险,是一种比较好的选择。但会带来管理的复杂度和高昂的建设成本,需要根据具体情况而定。
❻ web前端常用的数据库有哪些
1、MySQL
2、Mongodb
3、SQL Server
4、Oracle
❼ cookie前端存储有哪几种
1、cookie
HTTP cookie,通常直接叫做cookie,是客户端用来存储数据的一种选项,它既可以在客户端设置也可以在服务器端设置。cookie会跟随任意HTTP请求一起发送。
优点:兼容性好
缺点:一是增加了网络流量;二则是它的数据容量有限,最多只能存储4KB的数据,浏览器之间各有不同;三是不安全。
2、userData
userData是微软通过一个自定义行为引入的持久化用户数据的概念。用户数据允许每个文档最多128KB数据,每个域名最多1MB数据。
缺点:userData不是 web 标准的一部分,只有IE支持。
3、web存储机制
web storage,包括两种:sessionStorage 和 localStorage,前者严格用于一个浏览器会话中存储数据,因为数据在浏览器关闭后会立即删除;后者则用于跨会话持久化地存储数据。
缺点:IE不支持 SessionStorage,低版本IE ( IE6, IE7 ) 不支持 LocalStorage,并且不支持查询语言
4、indexedDB
indexed Database API,简称为indexedDB,是在浏览器中保存结构化数据的一种「数据库」。它类似SQL数据库的结构化数据存储机制,代替了废弃已久的web SQL Database API,它能够在客户端存储大量的结构化数据,并且使用索引高效检索的API。
缺点:兼容性不好,未得到大部分浏览器的支持。
5、Flash cookie
Flash本地存储,类似于HTTP cookie,它是利用 SharedObject类来实现本地存储信息。它默认允许每个站点存储不超过100K的数据,远大于cookie,而且能够跨浏览器。
缺点:浏览器需安装 Flash 控件,毕竟它是通过Flash的类来存储。所幸的是,没有安装Flash的用户极少。
6、Google Gears
Google Gears是Google在07年发布的一个开源浏览器插件,Gears 内置了一个基于SQLite的嵌入式 SQL数据库,并提供了统一API 对 数据库进行访问,在取得用户授权之后,每个站点可以在SQL数据库中存储「不限大小」的数据。
缺点:需要安装 Google Gears 组件
❽ 前端本地存储有几种方式
三种:localStorage、sessionStorage、token
❾ 前端存储方式有哪些
1.本地存储localstorage
localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。
存储方式:
以键值对(Key-Value)的方式存储,永久存储,永不失效,除非手动删除。
2.本地存储sessionstorage
HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 localStorage 则会一直保存。
3.离线缓存(application cache)
❿ 前端 自定义网址功能 localStorage 本地存储
是的,localStorage是本地存储。
本地存储可以在浏览器本地存储一些需要长期存储的数据,除非做清除操作,否则会长期存储在本地供本域名下的程序使用。相对于以前的cookie来说,存储容量更大,而且请求服务器的时候不会随请求头一起传输。
另外,html5还新增了sessionStorage,即会话存储,在浏览器不关闭的情况下和localStorage有相似之处,但仅作用于本次会话。