八股文:计算机网络
八股文:计算机网络
每日任务1:介绍一下 OSI 模型和 TCP/IP 模型的区别
OSI 模型是国际标准化组织制定一个关于计算机通信的标准体系。将它分为七个层级,从下到上分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。虽然 OSI 模型理论上更加全面,但是 TCP/IP 模型在实际应用的更加广泛,TCP/IP 分为四个层级:
- 应用层:对应了 OSI 模型的应用层、表示层、会话层。它提供直接和用户的应用程序交互的接口,为各种应用程序提供服务。
- 传输层:它主要负责端到端的数据传输。主要的传输层协议是 TCP 和 UDP 协议,TCP 协议提供可靠的数据传输,保证数据的安全性和完整性。UDP 协议是无连接的,适用于不要求可靠性的传输。例如实时的音频视频流。
- 网络层:主要是 IP 协议,负责数据的路由和转发,选择最佳路径将数据从源主机传输到目标主机上,IP 协议使用 IP 地址标识主机和网络,并进行逻辑地址进行寻址。
- 网络接口层:对应了 OSI 模型的物理层和数据链路层。主要负责物理媒介的传输。此外,网络接口层还包含硬件地址(MAC)的管理。
每日任务2:从输入 URL 地址到展示页面发生了什么?
- 输入 URL 地址,解析 URL 地址,准备发送 HTTP 请求。
- 先从浏览器缓存中获取该数据,如果没有,再进行下一步的网络请求。
- 进行域名解析:在发送请求前,使用 DNS 域名的 IP 地址进行解析。
- TCP 三次握手建立连接:客户端和服务器 IP 建立 TCP 连接。
- 客户端发送 HTTP 请求:建立连接后,浏览器会构建响应头和响应行,并把解析后的域名等 cookie 信息附加响应头中,构建发送数据给服务端。如果是 HTTPS 的话,还涉及到加密解密的操作。
- 服务端解析并返回响应数据:服务端接收到请求时,根据请求生成响应数据。
- TCP 四次挥手断开连接:浏览器和服务器 IP 断开。
- 浏览器解析响应并渲染页面:
- 如果接收的响应是 301 302,会重定向到一个新的 URL 地址中。
- 如果接收的响应是字节流类型时,将请求发送给下载管理器。
- 如果是 HTML 类型,进行页面的渲染。先创建一个 DOM 树,将 CSS 进行样式计算,二者进行合并,构建渲染树,最后布局和绘制渲染页面。