11. HTTP 与 HTTPS 的区别。
思路: 这道题实际上考察的知识点是HTTP与HTTPS的区别,这个知识点非常重要,可以从安全性、数据是否加密、默认端口等这几个方面去回答哈。其实,当你理解HTTPS的整个流程,就可以很好回答这个问题啦。
我的答案如下:
HTTP,即超文本传输协议,是一个基于TCP/IP通信协议来传递明文数据的协议。HTTP会存在这几个问题:
-
请求信息是明文传输,容易被窃听截取。
-
没有验证对方身份,存在被冒充的风险
-
数据的完整性未校验,容易被中间人篡改
为了解决Http存在的问题,Https出现啦。
Https是什么?
HTTPS= HTTP+SSL/TLS,可以理解Https是身披SSL(Secure Socket Layer,安全套接层)的HTTP。
它们主要区别如下:
12 . Https流程是怎样的?
思路: 这道题实际上考察的知识点是HTTPS的工作流程,大家需要回答这几个要点,公私钥、数字证书、加密、对称加密、非对称加密。
-
HTTPS = HTTP + SSL/TLS,也就是用SSL/TLS对数据进行加密和解密,Http进行传输。
-
SSL,即Secure Sockets Layer(安全套接层协议),是网络通信提供安全及数据完整性的一种安全协议。
-
TLS,即Transport Layer Security(安全传输层协议),它是SSL3.0的后续版本。
Https工作流程
-
客户端发起Https请求,连接到服务器的443端口。
-
服务器必须要有一套数字证书(证书内容有公钥、证书颁发机构、失效日期等)。
-
服务器将自己的数字证书发送给客户端(公钥在证书里面,私钥由服务器持有)。
-
客户端收到数字证书之后,会验证证书的合法性。如果证书验证通过,就会生成一个随机的对称密钥,用证书的公钥加密。
-
客户端将公钥加密后的密钥发送到服务器。
-
服务器接收到客户端发来的密文密钥之后,用自己之前保留的私钥对其进行非对称解密,解密之后就得到客户端的密钥,然后用客户端密钥对返回数据进行对称加密,酱紫传输的数据都是密文啦。
-
服务器将加密后的密文返回到客户端。
-
客户端收到后,用自己的密钥对其进行对称解密,得到服务器返回的数据。
13. 说说HTTP的状态码,301和302的区别?
思路: 这道题考查的知识点,也是HTTP状态码,302和301都有重定向的含义,但是它们也是有区别的。
-
301:(永久性转移)请求的网页已被永久移动到新位置。服务器返回此响应时,会自动将请求者转到新位置。
-
302:(暂时性转移)服务器目前正从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。此代码与响应GET和HEAD请求的301代码类似,会自动将请求者转到不同的位置。
网上有个很形象的例子比喻:
★
当一个网站或者网页24—48小时内临时移动到一个新的位置,这时候就要进行302跳转,打个比方说,我有一套房子,但是最近走亲戚去亲戚家住了,过两天我还回来的。而使用301跳转的场景就是之前的网站因为某种原因需要移除掉,然后要到新的地址访问,是永久性的,就比如你的那套房子其实是租的,现在租期到了,你又在另一个地方找到了房子,之前租的房子不住了。
”
14. 说说什么是数字签名?什么是数字证书?
思路: 这道题考查的知识点,不仅仅是数字签名,数字证书,很可能面试官也会问你https的原理的,因为https原理跟数字证书有关的哈,大家需要掌握https原理哦。
数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份。它的出现,是为了避免身份被篡改冒充的。比如Https的数字证书,就是为了避免公钥被中间人冒充篡改:
数字证书构成
-
公钥和个人等信息,经过Hash摘要算法加密,形成消息摘要;将消息摘要拿到拥有公信力的认证中心(CA),用它的私钥对消息摘要加密,形成数字签名。
-
公钥和个人信息、数字签名共同构成数字证书。
15. 对称加密与非对称加密有什么区别
思路: 这道题考察的知识点是对称加密与非对称加密算法,什么是对称加密,什么是非对称加密呢?
对称加密:指加密和解密使用同一密钥,优点是运算速度较快,缺点是如何安全将密钥传输给另一方。常见的对称加密算法有:DES、AES等。
对称加密
非对称加密:指的是加密和解密使用不同的密钥(即公钥和私钥)。公钥与私钥是成对存在的,如果用公钥对数据进行加密,只有对应的私钥才能解密。常见的非对称加密算法有RSA。
非对称加密
16. 说说DNS的解析过程?
思路: 这道题考察的知识点是DNS域名解析,http请求的过程,是涉及到DNS域名解析的,这道面试题也挺经典的,大家可以看下《图解HTTP》那本书哈。
★
DNS,英文全称是domain name system,域名解析系统,是Internet上作为域名和IP相互映射的一个分布式数据库。它的作用很明确,就是可以根据域名查出对应的IP地址。在浏览器缓存、本地DNS服务器、根域名服务器都是怎么查找的,大家回答的时候都可以说下哈。
”
DNS的解析过程如下图:
DNS解析查找过程
假设你要查询www.baidu.com的IP地址:
★
- 首先会查找浏览器的缓存,看看是否能找到www.baidu.com对应的IP地址,找到就直接返回;否则进行下一步。
- 将请求发往给本地DNS服务器,如果查找到也直接返回,否则继续进行下一步;
- 本地DNS服务器向根域名服务器发送请求,根域名服务器返回负责
.com
的顶级域名服务器的IP地址的列表。
- 本地DNS服务器再向其中一个负责
.com
的顶级域名服务器发送一个请求,返回负责.baidu
的权威域名服务器的IP地址列表。
- 本地DNS服务器再向其中一个权威域名服务器发送一个请求,返回www.baidu.com所对应的IP地址。
”
17. 什么是CSRF攻击,如何避免
思路: 这道题考察的知识点是CSRF攻击,它是属于网络安全这块的知识点,还有Xss攻击、SQL注入、DDoS等这些常见的网络攻击,我们都需要知道攻击的流程哈。
什么是CSRF 攻击?
★
CSRF,跨站请求伪造(英文全称是Cross-site request forgery),是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。
”
CSRF是如何攻击的呢?
来看一个来自百度百科的例子哈:
-
Tom 登陆银行,没有退出,浏览器包含了Tom在银行的身份认证信息。
-
黑客Jerry将伪造的转账请求,包含在在帖子
-
Tom在银行网站保持登陆的情况下,浏览帖子
-
将伪造的转账请求连同身份认证信息