信息交换方式分为电路交换和分组交换。电路交换主要用于实时通信,如电话系统,而分组交换则广泛应用于现代计算机网络,如互联网。分组交换具有更高的资源利用率和更强的适应性,因此在大多数场景下,分组交换是更优的选择。
计算机网络分为物理层、链路层、网络层、传输层、应用层。
计算机中的数据以二进制数字存储和处理。
协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送和接受一条报文或其他事件所采取的动作。
网络协议:标头和载荷,标头一般包括源地址和目的地、协议类型、序列号和确认号、校验和、其他控制信息(如数据包的生命周期、优先级、标志位等);载荷包含了实际要传输的内容。每一层都会将上一层的标头和载荷视为这一层的载荷并添加成自己的标头。
常见的计算机网络协议:IP(互联网协议)、ICMP(互联网控制报文协议)、APR(地址解析协议)、TCP(传输控制协议)、UDP(用户数据报协议)、DNS(域名系统)、HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、DHCP(动态主机配置协议)、SSL/TLS(安全套接层/传输层安全)。
网络组成部分由主机、路由器、交换机等组成。
HTTP协议
请求
GET / index.html HTTP/1.1
请求方法 资源路径 HTTP协议版本
Host指定了请求的目标服务器域名
响应
HTTP/1.1 200 OK
HTTP版本协议 状态码 状态描述
响应包含正文
HTTP连接模型:无连接模型、持久连接模型、管道化连接模型。
HTTP/1.1 无法实现多路复用的主要原因是 其基于文本的请求和响应格式以及协议设计。在 HTTP/1.1 中,每个请求和响应都是一个完整的文本消息,必须按照顺序发送和接收。这导致了“队头阻塞”(一个请求或响应的处理延迟会影响后续的请求和响应,无法并行处理)。
HTTP/2 帧由长度、类型、标志、流标识符、负载组成。
HTTP/2 帧的类型:DATA、HEADERS、PRIORITY、RST_STREAM、SETTINGS、PUSH_PROMISEPING、GOAWAY、WINDOW_UPDATE、CONTINUATION。
HTTP/2中帧带来的额外好处:调整了响应传输的优先级、头部压缩、Serve Push。
HTTP/3 引入了一个新的传输层协议 —— QUIC。QUIC 基于 UDP,而非 TCP,具有以下优势:避免队头阻塞、更快的连接建立、连接迁移、错误恢复。
HTTP/3 的出现主要是为了解决 HTTP/2 在面对丢包和网络不稳定的情况下的性能问题。通过引入基于 UDP 的 QUIC 协议,HTTP/3 解决了队头阻塞问题,实现了更快的连接建立和连接迁移,提高了错误恢复效率。这使得 HTTP/3 在网络环境不佳的情况下仍能提供良好的性能和用户体验。
CDN(内容分发网络)是一种用于优化网络资源访问速度和提高用户体验的技术。CDN 的核心思想是将网站或应用程序的内容(如图片、视频、脚本等)缓存到位于不同地理位置的服务器上,使用户可以从最近的服务器获取所需的内容,从而降低延迟、提高访问速度和可用性。
CDN 的 主要组成部分 包括:边缘服务器、负载均衡器、域名解析系统、内容管理系统。
CDN 的 主要优点 包括:降低延迟、提高可用性、减轻源站压力、节省带宽、安全性、支持动态内容。
需要注意的是,CDN 的应用场景和效果并不是完全适用于所有类型的网站和应用程序。特别是对于内容更新频繁的网站或应用程序,使用 CDN 可能会导致更新不及时或者缓存不一致等问题。因此,在使用 CDN 时需要根据具体情况进行评估和权衡。
选择合适的 CDN 服务器可根据流量量、用户分布、CDN 服务商的覆盖范围、成本、CDN 服务商的技术支持和服务质量、
CDN 有两种基本的缓存策略:拉取策略和 推送策略。
拉取策略,也叫做就近访问策略,指的是 CDN 节点通过 HTTP 请求直接向源站请求数据,然后缓存到本地节点,当用户请求数据时,就直接从缓存的本地节点中获取数据。这种策略主要用于数据更新较少的情况,适用于流量较小、访问频率低的站点。
推送策略,也叫做预先访问策略,指的是将源站的数据推送到 CDN 节点,通过 HTTP 请求缓存到 CDN 节点,当用户请求数据时,直接从缓存的本地节点中获取数据。这种策略适用于数据更新频繁的情况(比如视频举例的热门新电影上线的时候,就可以使用推送策略,全国用户可以第一时间 获取新电影),可以有效地缓解源站的访问压力,提高用户访问速度。推送策略需要源站和 CDN 之间建立预先配置好的链接,源站通过这个链接将数据推送到 CDN 节点。
WebSocket 是一种网络通信协议,可以在客户端和服务器之间实现双向通信。与传统的 HTTP 协议不同,WebSocket 协议在客户端和服务器之间建立持久连接,可以 在任何时间点双向通信,而不需要通过 HTTP 请求和响应来进行。WebSocket 协议可以在 Web 应用程序和服务器之间实现实时通信和数据传输,常用于在线游戏、聊天室、实时数据监测等场景。
WebSocket 协议的特点如下:有状态的持久连接、服务端可以主动推送消息、用 WebSocket 发送消息延迟比 HTTP 低。
WebSocket 协议的 优点 如下:实时性、效率、跨域支持、可扩展性。
网络安全三要素:机密性、完整性、身份验证。
网络安全:对称加密和非对称加密。
对称加密:算法是指使用同一个密钥进行加密和解密。发送方使用密钥将明文加密成密文,并将密文发送给接收方,接收方使用相同的密钥将密文解密成明文。对称加密算法具有加密和解密速度快、效率高的特点,但是密钥的安全性是关键问题,如果密钥泄露,则所有加密数据都会被破解。
非对称加密:加密、解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密、私钥加密只能用公钥解密。
密码散列函数(哈希函数)
输入:任意长度的内容
输出:固定长度的哈希值
性质:找到两个不同的输入使之经过密码散列函数后有相同的哈希值,在计算上是不可能的
HTTPS****
把 HTTP 的明文换成密文,再验证身份,即 HTTPS。
HTTPS = HTTP + TLS
TLS = 身份验证 + 解密
服务端身份验证靠 PKI,客户端身份验证靠 HTTP 协议。