1. 前言
上一章节中我们主要就 HTTPS 协议的前置知识进行介绍,下面会继续介绍 HTTPS 的通信过程以及抛出一些常见问题的探讨。因为候选人准备面试的时间和精力是比较有限的,我们在学习的过程要抓住重点,如果感觉对于细节缺乏了解,可以通过维基百科和查阅 StackOverflow 等方式进行自行补充。
2. HTTPS 协议
2.1 HTTPS 请求流程
面试官提问: HTTPS 的请求流程和 HTTP 协议的请求流程有什么区别?
题目解析:
参考 HTTPS 的官方文档,我们将整个请求的流程简单抽象为以下几个步骤,抓住其中的核心步骤:
步骤(1):客户端发送一个 HTTPS 请求,例如请求 https://mybj123.com
,连接到服务器端的 443 端口(和 HTTP 协议不同,HTTP 默认 80 端口)。
步骤(2):服务器端收到握手信息,使用预先配置好的数字证书,即图中的公钥和私钥。如果是自己颁发的证书,那么需要客户端通过浏览器的弹窗验证,如果是组织申请获得,默认直接通过。