长度最小子数组
leetcode 209题,刷的时候想到了使用滑动窗口的思想,致命的是看错了以为是等于,没想到是大于等于;另外一个就是判断条件想错了,写成了left < right,当right先移动到数组末尾循环,就没办法加了。
LeetCode:https://leetcode.cn/problems/design-circular-queue/
循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。
三级缓存指什么?
即DefaultSingletonBeanRegistry
中的定义的三个map:
1 | /** Cache of singleton objects: bean name to bean instance. */ |
Set-Cookie
属性,可以设置的属性有cookie的name和value,path,max-age以及过期时间等。浏览器以后向服务器发起请求时会检查请求的url和cookie的path是否一致,或者请求的url是否是设置的path下的子路径,如符合请求就会自动带上cookie信息。注意:当服务器设置了多个cookie时,响应头中会有多个Set-Cookie
。
https是Hypertext Transfer Protocol Secure的简称。主要是为了解决服务器与客户端明文发送http请求和响应消息容易被第三方劫持而造成数据泄露这一问题而提出。 https在http的基础上采用Secure Sockets Layer(SSL)对消息进行加密处理。因此,https也指HTTP over SSL。随着版本迭代,SSL逐渐被废弃,而使用了Transport Layer Security(TLS)。在http进行连接前,TLS会通过tcp进行握手完成证书校验和随机数生成,之后通过双方生成的随机数运算得到一个对称密钥,之后就使用对称加密算法进行通信。
中间人攻击(man-in-the-middle attack)是指双方在通过网络进行通信时,可能会被第三者进行窃听拦截,进而篡改伪造消息,造成的通信信息不安全现象。
加密主要有对称加密算法和非对称加密算法。对称加密算法计算简单但是容易被破解,非对称加密算法安全不易破解但是较为消耗计算资源。非对称加密算法包含公钥和私钥,使用公钥加密的内容只有私钥才可以解密,使用私钥加密的内容只有公钥才可以解密。公钥可以派发给所有人,而私钥自能自己保存。
CA是Certificate Authority(认证授权)的简称。CA证书实际是由证书签证机关(CA)签发的对用户的公钥的认证。一个数字证书主要保存了认证网站的公钥。CA机构的公钥被内嵌在操作系统中,进而免去了传输的过程。为了防止证书被篡改(CA机构的公钥是公开的),CA证书通常还包括一个数字签名(指纹),即证书主体内容(明文)首先进行一次哈希(用到的哈希算法包含在证书信息中)得到信息摘要,之后再使用CA机构的私钥对这个哈希后的值进行签名。一方收到证书后,会用相同内嵌在本地的CA公钥进行解密,然后对解密后的内容进行哈希,如果明文与解密后的内容哈希一致就说明信息没有被篡改,这就得到另一方的公钥。
注意,当存在内容被篡改的情况时,比如说第三者通过供CA公开的公钥解密后又修改了明文和数字签名,但第三者没有私钥,这就导致本地公钥无法解密数字签名,导致篡改后的证书失效,这就保证了信息传送的真实性、完整性和不可否认性。
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true