最近和朋友交流,如何才能答出一个出彩的回答,有了一些总结,低端的选手背答案,中档的选手理解知识,高级的选手抛出应用场景,sp是提出解决问题的方案,ssp会统筹调动资源。
Q:为什么会想总结一个这样的话题呢?
A:本质上,就是不想再被面试官虐;其次就是改变自己”被灌输“的思维习惯。
什么是http? 什么是https?(先来点basic)
http英文是hyperText Transfer Protocol,超文本传输协议
https英文是hyperText Transfer Protocol Secure, 超文本传输安全协议
差别在哪里? 差别在于多了S。
表面上多了个secure,这里面需要解释的东西就挺多的了。
secure本质上是基于SSL服务器数字证书的,SSL(Secure Sockets Layer)是一个安全协议(位于安全套接层),由网景公司开发,而SSL证书是遵从这样一个协议的「服务器数字证书」,在SSL 3.0的协议规范上,是SSL 3.0的后续版本。
http和https的区别?(标准答案)
- HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头
- HTTP 是不安全的,而 HTTPS 是安全的
- HTTP 标准端口是80 ,而 HTTPS 的标准端口是443
- 在OSI 网络模型中,HTTP工作于应用层,而HTTPS 的安全传输机制工作在传输层
- HTTP 无法加密,而HTTPS 对传输的数据进行加密
- HTTP无需证书,而HTTPS 需要CA机构wosign的颁发的SSL证书
这个SSL证书在https里担任什么角色?所以,让我们来聊聊HTTPS的过程吧~

提问
- 为什么有了加密算法,还要用HASH算法?如何验证证书是真的还是假的?
HASH算法是用来确认服务器的身份的,防止中途被篡改,生成的数字签名就是这个作用。
原理是,服务端对证书内容用HASH加密,再用CA证书的私钥加密,生成数字签名,放在证书结尾。
客户端收到消息,先用CA证书中的公钥解密,得到结果H1, 然后用HASH算法对证书内容加密,得到H2
对比H1是否等于H2,以确定信息是否篡改。
- 证书在非对称加密里的作用?
证书是CA颁布的,由第三方来发布公钥和私钥。但是也存在CA证书被篡改的情况,因此需要数字签名来验证。
OSI的网络模型
- 第一层 物理层
- 第二层 数据链路层
- 第三层 网络层
- 第四层 传输层
- 第五层 会话层
- 第六层 表示层
- 第七层 应用层
- 特别重要的是,http是在应用层,https是在传输层(因为需要借助会话层的SSL/TLS的安全协议),TCP/IP是在传输层
图:
问题
- 如何理解HTTP协议是无状态的?
HTTP协议是无状态的,指的是协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。也就是说,打开一个服务器上的网页和你之前打开这个服务器上的网页之间没有任何联系。HTTP是一个无状态的面向连接的协议,无状态不代表HTTP不能保持TCP连接,更不能代表HTTP使用的是UDP协议(无连接)。