1 . HTTPS 的工作过程?
-
客户端发送自己支持的加密规则给服务器,代表告诉服务器要进行连接了;
-
服务器从中选出一套加密算法和 hash 算法以及自己的身份信息(地址等)以证书的形式发送给浏览器,证书中包含服务器信息(域名),加密公钥,证书的办法机构;
-
客户端收到网站的证书之后要验证证书:
3.1 验证证书的合法性;
3.2 通过证书,浏览器会生成一串随机数作为对称密钥,并用证书中的公钥进行加密;
3.3 用约定好的 hash 算法计算握手消息,然后用生成的密钥进行加密,然后一起发送给服务器。
-
服务器接收到客户端传送来的信息,要做下面的事情:
4.1 用私钥解析出密码,用密码解析握手消息,验证 hash 值是否和浏览器发来的一致;
4.2 使用密钥加密消息;
-
如果计算法 hash 值一致,握手成功。
2.浏览器中输入一个URL后,按下回车后发生了什么?
- 浏览器先进行dns寻址,查找域名和IP地址的映射,获取ip地址;
- 获取到IP地址后,建立TCP连接、三次握手;
- 确认连接后发送一个HTTP请求报文;
- 服务器处理请求,并对请求做出响应;
- 浏览器收到服务器响应,得到html代码;
- 渲染页面。(浏览器根据响应报文来解析CSS样式、JS交互等等)
- 连接关闭
DNS寻址: 先查找浏览器缓存,如果没命中,查询系统缓存,即hosts文件。如果没命中,查询路由器缓存。如果没命中,请求本地域名服务器解析域名,没有命中就进入根服务器进行查询。没有命中就返回顶级域名服务器IP给本地DNS服务器。本地DNS服务器请求顶级域名服务器解析,没有命中就返回主域名服务器给本地DNS服务器。本地DNS服务器请求主域名服务器解析域名,将结果返回给本地域名服务器。本地域名服务器缓存结果并反馈给客户端。
浏览器缓存->hosts文件->路由器缓存->请求本地域名服务器->请求根服务器查询->返回顶级域名服务器IP地址(本地DNS服务器请求顶级域名服务器解析)->返回主域名服务器IP(请求主域名服务器解析)->结果返回给本地DNS服务器,并反馈给客户端
3. OSI与TCP/IP各层的结构与功能,都有哪些协议?
通常为了中和OSI和TCP/IP的优点,采用只有五层协议的体系爱结构。
-
应用层: 应用层协议定义应用进程间通信和交互的规则。对于不同的网络应用需要不同的网络层协议。如:域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP
-
传输层: 传输层负责向两台主机进程间的通信提供通用的数据传输服务。
传输层有分用和复用的功能。
分用:指一台主机的多个应用进程可以同时通过传输层进行传输。
复用:传输层把收到的信息分别交付给应用层中的各进程。
协议:
TCP传输控制协议:提供面向连接的、可靠的传输服务
UDP用户数据协议:无连接不可靠的传输 -
网络层: 网络层的任务是选择合适的网间路由和交互节点,确保数据及时传输。该层使用IP协议,把传输层产生的数据封装成分组进行传输。
协议: IP、ICMP(网络控制信息协议)、ARP(地址解析协议)、RARP -
数据链路层: 将网络层传下来的IP数据报封装成帧,在两个相邻节点的链路上传送帧。(每帧数据包括控制信息:同步信息,地址信息,差错控制)协议包括:VLAN、MAC等
-
物理层: 实现相邻计算机节点之间比特流的传输,使上层结构尽可能屏蔽传输介质和物理设备的差异。