以下内容为面试中遇到的一些问题,想整理一下,内容来自各位大佬的博客,并非原创。
1.http 与 https (概念,区别)
-
提出https的原因:http有以下安全性问题 (1)使用明文进行通信,内容可能会被窃听; (2)不验证通信方身份,通信方的身份有可能遭遇伪装; (3)无法证明报文的完整性,报文有可能遭篡改。 -
https: https并不是新协议,而是让http先和SSL通信,再由SSL和TCP通信,也就是说https使用了隧道进行通信。通过使用SSL,https具有了加密(防窃听),认证(防伪装)和完整性保护(防篡改)。 -
https的工作原理: https可以加密传输(对称加密+非对称加密),完整性校验(数字签名),身份认证(数字签证),分别解决了http的被窃听、被篡改、被冒充的三大风险。 把客户端称作Client,服务器端称作Server,流程如下: (1)Client发起一个https请求,接口为443 (2)Server返回公钥证书给Client (3)Client多方面验证返回的公钥证书 (4)若Client通过公钥证书的认证,则得到了Server提供的公钥 (5)Client通过伪随机数生成器生成一对“对称密钥”,作为“会话密钥”。并用Server提供的公钥对此“会话密钥”作加密,发送给Server。 (6)Server用自己的私钥对会话密钥作解密,得到会话密钥。至此,双方通过公钥和私钥获取了一对“对称密钥”,即“会话密钥”。 (7)双方可以用这对“对称密钥”即“会话密钥”来通信了。Server通过对称密钥加密明文信息A,发送给Client (8)Client通过对称密钥解密,得到明文信息A。
2.浏览器缓存机制
3.浏览器渲染页面的过程
4.什么是同源策略
|