本模块是公共类课程,适合绝大部分计算机岗位。
讲讲 OSI 七层模型和 TCP/IP 四层模型
OSI 七层模型(Open Systems Interconnection Reference Model)和 TCP/IP 四层模型(Transmission Control Protocol/Internet Protocol)是计算机网络中的两种网络模型,主要区别如下:
- OSI 七层模型:
- 物理层(Physical Layer):负责物理设备之间的链接,传输比特流,主要是传输介质、信号、时钟等。常见协议有 RS-232、V.35、RJ45 等。
- 数据链路层(Data Link Layer):负责在网络设备中建立和维护数据链路,传输帧,主要是传输数据帧、差错检测、流量控制等。常见协议有以太网、PPP、HDLC 等。
- 网络层(Network Layer):负责数据包的路由和转发,主要是传输数据包、路由选择、拥塞控制等。常见协议有 IP、ICMP、ARP、RIP、OSPF 等。
- 传输层(Transport Layer):负责数据的传输和可靠性,主要是传输数据段、流量控制、差错检测等。常见协议有 TCP、UDP 等。
- 会话层(Session Layer):负责建立、管理和终止会话,主要是传输会话标识、同步、检查点等。常见协议有 NetBIOS、RPC 等。
- 表示层(Presentation Layer):负责数据的格式化和编码,主要是传输数据格式、加密、压缩等。常见协议有 JPEG、MPEG、ASCII 等。
- 应用层(Application Layer):负责应用程序之间的通信,主要是传输应用数据、协议解析、用户接口等。常见协议有 HTTP、FTP、SMTP、DNS 等。
- TCP/IP四层模型:TCP/IP四层模型是一种实际模型,将计算机网络分为四层,分别是网络接口层、网络层、传输层、应用层。每一层都有自己的功能和协议,实现了网络的简化和高效。
OSI 七层模型和 TCP/IP 四层模型都是为了实现网络的分层和模块化,提高网络的可靠性和可扩展性。
在实际应用中,会把 OSI 七层模型和 TCP/IP 四层模型结合起来变成五层理论模型,即将物理层、数据链路层、网络层、传输层和应用层。
讲讲在浏览器中输入 uri 到页面显示的过程
在浏览器中输入 URI 到页面显示的过程主要分为以下几个步骤:
- 输入 URI:用户在浏览器中输入 URI(Uniform Resource Identifier),浏览器会解析 URI,获取协议、主机、端口、路径等信息。
- DNS 解析:浏览器通过 DNS 解析获取主机的 IP 地址,浏览器会先查找浏览器缓存,如果没有找到,会搜索系统的 DNS 缓存,读取本地 Hosts 文件,还是没有就会向本地 DNS 服务器发送请求,本地 DNS 服务器会向根域名服务器、顶级域名服务器、权威域名服务器依次迭代查询,直到找到主机的 IP 地址。
- 建立连接:浏览器通过 TCP 三次握手与服务器建立连接,浏览器会向服务器发送一个 SYN 包,服务器收到后回复一个 SYN+ACK 包,浏览器再回复一个 ACK 包,完成连接的建立。
- 发送请求:浏览器向服务器发送 HTTP 请求,请求包括请求行、请求头、请求体等,请求行包括请求方法、URI、协议版本等。
- 接收响应:服务器接收到请求后,会处理请求,生成响应,响应包括响应行、响应头、响应体等,响应行包括协议版本、状态码、状态描述等。
- 渲染页面:浏览器接收到响应后,会解析 HTML、CSS、JavaScript 等资源,在主线程中构建 DOM 树,计算样式,生成布局树,然后构建图层树,生成绘制列表,最后将绘制列表交给 GPU 进行绘制,显示在屏幕上。
页面显示的过程主要是浏览器发送请求、服务器处理请求、浏览器接收响应、浏览器渲染页面的过程。