🌻 前言
书接上回~
系列文章目录:
- # ✊构建浏览器工作原理知识体系(开篇)
- # ✊构建浏览器工作原理知识体系(浏览器内核篇)
- # ✊构建浏览器工作原理知识体系(网络协议篇)
- ✊构建浏览器工作原理知识体系(网页加载超详细全过程篇)
为什么你觉得偶尔看浏览器的工作原理,但总是忘呢😵💫,因为你没有形成一个完整的知识网络,你的记忆是碎片化的。正如人的神经网络,只有当你的记忆相互依赖,相互链接,才能形成长期稳定的记忆。
所以本系列文章我将用一条知识线将浏览器工作原理的知识串联起来,因为本文的目的是为了帮助大家建立浏览器基础的思维树,所以很多细节点不做过多阐述,先有了树,后面你在上面伸展枝叶就会发现清晰明了很多。欢迎点赞支持或评论指正。
🪴一、网络进程的工作
网络进程是浏览器的一个重要组成部分,主要负责处理网络相关的任务和功能。其工作主要包括以下几个方面:
- 网络请求处理: 当用户在浏览器中输入网址、点击链接或提交表单时,网络进程负责处理这些网络请求。它通过与服务器通信,获取请求的网页或资源,并将其传输到渲染进程以供显示。
- HTTP 缓存管理: 网络进程负责管理浏览器的 HTTP 缓存,包括缓存的读取、写入、更新和失效等操作。通过合理地利用缓存机制,可以减少对服务器的请求次数,提高页面加载速度和用户体验。
- 网络安全保障: 网络进程也负责处理浏览器的网络安全功能,包括对 HTTPS 连接的管理、证书验证、安全策略的执行等。它确保用户在浏览器中的网络通信是安全可靠的。
- 跨域资源共享(CORS): 当浏览器需要访问其他域名下的资源时,网络进程负责处理跨域资源共享(CORS)请求,确保安全地访问跨域资源。
- 代理服务器交互: 在一些特殊情况下,浏览器可能通过代理服务器来访问互联网资源,网络进程负责与代理服务器进行交互,获取代理服务提供的资源。
- 其他网络相关任务: 网络进程还可能负责其他一些网络相关的任务,如 DNS 解析、TCP 连接管理、请求重定向、请求重试、流量优化等。
综上所述,网络进程在浏览器中扮演着重要的角色,它负责处理各种网络请求和任务,确保用户能够安全、快速地访问互联网资源。
🪴二、OSI七层模型、TCP/IP四层模型
OSI 是 ISO(国际标准化组织)组织在1985年研究的网络互连模型。ISO 为了更好的使网络应用更为普及,推出了OSI 参考模型。其目的是推荐所有公司使用这个规范来控制网络。如果所有公司都使用相同的规范,就能实现网络互联。
简单概述下七层模型的作用:
- 应用层:为应用程序提供服务;
- 表示层:数据格式转换、数据加密;
- 会话层:建立、管理、维护会话;
- 传输层:建立、管理、维护端到端的连接
- 网络层:IP地址和路由选择;
- 数据链路层:提供介质访问和链路管理;
- 物理层:物理设备确保数据传输;
TCP/IP 协议族是网络通信的基础,它是很多协议的集合。同样,TCP/IP 协议族也采用了分层策略,共分为4层:应用层、传输层、网络层、数据链路层。之所以要分层管理,主要有两个好处:
- 把各层的接口部分设计好后,每层内部的设计就可以自动变动了。如果某个地方需要改变设计时,只需要替换变动的层即可,不用整体做调整;
- 层次化后,设计变得相对简单了,处于应用层上的应用就可以专注于自己的人物,而不需要考虑其他的数据传输的问题。
简单概述下 TCP/IP 四层的作用:
- 应用层:决定了向用户提供应用服务时通信的活动;
- 传输层:给应用层提供网络连接中的计算机之间的数据传输;
- 网络层:处理网络上流动的数据包;
- 数据链路层:连接网络的硬件部分;
🪴三、TCP/IP协议族
TCP/IP协议族不止是指TCP协议和IP协议,而是指计算机之间为了实现通信,而约定好的一些规则,包括很多协议。例如
TCP、IP、HTTP、TCP、UDP、ICMP、SNMP
等
(一)、 TCP/IP通信传输流
正如上一章所说,TCP/IP协议采取分层管理,以便于后续单独对某一层进行调整。利用TCP/IP协议族进行通信时,会通过分层顺序和对方通信,并且在数据传输时会进行封装,即在发送端发送数据时经过每层,都会被打上该层的首部信息,接收端接收时再在每一层去除这些信息。大致步骤如下图: