1. OSI 五层模型(或七层模型)是什么,每一层的作用是什么
- 应用层:又可细分为应用层、表示层、会话层。其中应用层主要做的工作就是为应用程序提供服务,常见的协议为 HTTP、HTTPS、DNS等;表示层主要做的工作就是数据格式转化、加密;会话层主要做的工作就是建立、管理和维护会话。总体来看应用层主要负责的工作有两点,1. 考虑在客户端和服务端之间要传输哪些信息;2. 传输的信息是以什么样的格式来组织的;
- 传输层:主要的工作就是负责管理端到端之间数据的连接,常见的协议有TCP、UDP协议;
- 网络层:主要的工作就是负责路由选择和地址映射,常见的协议有IP、ICMP协议;
- 数据链路层:主要的工作就是负责建立逻辑连接,进行硬件地址寻址、差错校验等,常见的协议为以太网协议;
- 物理层:主要的工作是建立、维护和断开物理连接;
2. 说一下什么是封装和复用
可以查看我的另一篇博客:封装和复用
3. 说一说TCP协议中的机制(比如确认应答机制、三次握手和四次挥手等)
可以查看我的另一篇博客:TCP/IP协议
4. HTTP和HTTPS协议的区别
HTTP是超文本传输协议,它在传输信息的时候,是明文的格式,一些隐私信息就很容易泄露;
HTTPS是超文本传输安全协议,这个安全协议指的就是SSL,通过SSL对信息进行加密,确保信息不会被第三方截取 ,也就是在应用层和传输层之间加上SSL安全协议;
相同点:都是用于在客户端和服务器之间传输数据的协议;
不同点:
-
HTTP是超文本传输协议,信息是明文传输,HTTPS对应信息进行了SSL安全协议的加密;
-
HTTP连接的端口号默认是80,HTTPS连接的端口号默认是443;
-
HTTP的连接是无状态的,而HTTPS协议由HTTP+SSL协议构建加密传输、身份认证的网络协议,比如HTTP协议安全;
5. HTTPS的连接工作流程
主要从3个方面来考虑,加密、认证、完整性保护
-
客户端先给服务器发送一个连接的请求SYN;
-
服务器收到客户端的连接请求后,就会生成一个非对称秘钥(公钥和私钥),公钥用来发送给客户端对客户端产生的对称秘钥进行加密,私钥用于接收解密获取对称秘钥;
-
服务器向客户端发送安全证书,安全证书中包含服务器生成的公钥;
-
客户端收到安全证书后,对安全证书进行验证和解密,然后随机生成一个对称秘钥;
-
客户端将生成的对称秘钥通过服务器的公钥加密,发送给服务器;
-
服务器收到加密的对称秘钥,使用自己的私钥对其进行解密;
-
双发都收到了对称秘钥,就可以对信息进行加密,相互通信,保证信息安全;
-
握手完成后,客户端和服务器之间的通信将使用共享的密钥进行加密和解密。
6. HTTP的长链接和短链接:
- <