【计算机网络 | 第一篇】计算机网络基础知识
网络分层模型
1.OSI七层模型国际标准化组织提出的一个网络分层模型,总共有七层,其大体功能以及每一层分工如下所示:
每一层都专注做一件事,并且每一层都需要下一层提供的功能。
OSI七层模型七层结构体系清晰,理论完整,但是它比较复杂不实用,而且很多层的功能有些重复。
2.TCP/IP四层模型 是目前被广泛采用的一种模型,我们可以将TCP/IP四层模型看作OSI七层模型的精简版本,四层模型由以下组成:
1.应用层
2.传输层
3.网络层
4.网络接口层
为什么网络要分层呢?
复杂系统需要分层,因为每一层都要专注干一件事情。网络分层也是这样,每一层只专注于做一类事情。
网络分层主要有三方面原因:
1.保证各层之间相互独立:各层之间相互独立,不需要知道其他层是怎么实现的,只需要上层调用下层实现的功能即可。
2.提高了灵活性和可替代性:每一层都可以选择最合适的技术来实现,只要保证上层调用下层功能的规则不变,同时,每一层都可以根据需求进行修改和替换,不会影响整个网络的结构。
3.大问题变小化:许多复杂的问题可以通过分层来变小,这样使得复杂的计算机网络结构变得容易设计和实现。
常见网络协议
应用层常见协议:
HTTP(Hypertext Transfer Protocol,超文本传输协议):基于 TCP 协议,是一种用于传输超文本和多媒体内容的协议,主要是为 Web 浏览器与 Web 服务器之间的通信而设计的。当我们使用浏览器浏览网页的时候,我们网页就是通过 HTTP 请求进行加载的。
传输层常见协议:
- TCP(Transmission Control Protocol,传输控制协议 ):提供 面向连接 的,可靠 的数据传输服务。
- UDP(User Datagram Protocol,用户数据协议):提供 无连接 的,尽最大努力 的数据传输服务(不保证数据传输的可靠性),简单高效。
网络层常见协议:
IP(Internet Protocol,网际协议):TCP/IP 协议中最重要的协议之一,属于网络层的协议,主要作用是定义数据包的格式、对数据包进行路由和寻址,以便它们可以跨网络传播并到达正确的目的地。目前 IP 协议主要分为两种,一种是过去的 IPv4,另一种是较新的 IPv6,目前这两种协议都在使用,但后者已经被提议来取代前者。
什么是URL
URL(Uniform Resource Locators),即统一资源定位器。网络上的所有资源都靠 URL 来定位,每一个文件就对应着一个 URL,就像是路径地址。理论上,文件资源和 URL 一一对应。实际上也有例外,比如某些 URL 指向的文件已经被重定位到另一个位置,这样就有多个 URL 指向同一个文件。
URL组成结构:
从输入URL到页面展示发生了什么?(重点)
先来看一张图(来源于《图解 HTTP》):
上面有个错误,是OSPF不是OPSF。 OSPF(Open Shortest Path First,ospf)开放最短路径优先协议, 是由 Internet 工程任务组开发的路由选择协议。
总体来讲有以下几个步骤:
1.在浏览器输入指定页面的URL。
2.浏览器根据DNS协议,解析出域名对应的IP地址。
3.浏览器通过解析出的IP地址和端口号,向目标服务器发出一个TCP连接请求。
4.浏览器在TCP连接上,向服务器发出一个HTTP请求报文,请求获取网页内容。
5.服务器收到HTTP请求报文后,处理请求,并返回HTTP响应报文给浏览器。
6.浏览器收到HTTP响应报文后,解析响应体中的HTML代码,渲染网页的结构,同时根据
HTML中的其他资源的URL,再次发起HTTP请求,获取这些资源,直到页面展示完全。
7.浏览器在不需要和服务器通信时,可以主动关闭TCP连接,或者等待服务器的关闭请求。
HTTP是无状态协议,如何保存用户的状态呢?
HTTP是一种不保存状态,即无状态协议,那么如何保存用户状态呢?Session 机制的存在就是为了解决这个问题,Session 的主要作用就是通过服务端记录用户的状态。典型应用场景是购物车,当你添加商品到购物车时,系统不知道是哪个用户操作的,因为HTTP是无状态的。服务端给特定的用户创建特定的 Session 之后就可以标识这个用户并且跟踪这个用户了(一般情况下,服务器会在一定时间内保存这个 Session,过了时间限制,就会销毁这个 Session)。
在服务端保存 Session 的方法很多,最常用的就是内存和数据库(比如是使用内存数据库 redis 保存)。既然 Session 存放在服务器端,那么我们如何实现 Session 跟踪呢?大部分情况下,我们都是通过在 Cookie 中附加一个 Session ID 来方式来跟踪。
如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力