计算机网络

发布于:2024-05-06 ⋅ 阅读:(34) ⋅ 点赞:(0)

背景

在开发过程中,开发人员需要利用计算机网络进行代码的编写、测试、部署和维护。

步骤

宏观

关于计算机网络的学习,在开发过程中,开发人员需要利用计算机网络进行代码的编写、测试、部署和维护。我们可以从这张图入手将所有的相关知识连起来。
在这里插入图片描述

DNS 解析:浏览器发起一个 DNS 请求到 DNS 服务器,将域名解析为服务器的 IP 地址。
TCP 连接:浏览器通过解析得到的 IP 地址与服务器建立 TCP 连接(通常是通过 443 端口进行 SSL 加密的 HTTPS 连接)。这一步涉及到 TCP 的三次握手过程,确保双方都准备好进行数据传输。
发送 HTTP 请求:浏览器构建 HTTP 请求消息,包括请求行(如 GET / HTTP/1.1)、请求头(包含用户代理、接受的内容类型等信息)和请求体(如果有);将请求发送到服务器。
服务器处理请求:服务器接收到 HTTP 请求后,根据请求的资源路径,经过后端处理(可能包括数据库查询等),生成 HTTP 响应消息;响应消息包括状态行(如 HTTP/1.1 200 OK)、响应头(内容类型、缓存控制等信息)和响应体(请求的资源内容)。
浏览器接收 HTTP 响应:浏览器接收到服务器返回的 HTTP 响应数据,开始解析响应体中的 HTML 内容;然后构建 DOM 树、解析 CSS 和 JavaScript 文件等,最终渲染页面。
断开连接:TCP 四次挥手,连接结束

微观

DNS

在这里插入图片描述
在这里插入图片描述
本地 DNS 服务器向根域名服务器发送请求,根域名服务器返回负责com的顶级域名服务器的 IP 地址的列表。
本地 DNS 服务器再向其中一个负责com的顶级域名服务器发送一个请求,返回负责baidu.com的权限域名服务器的 IP 地址列表。
本地 DNS 服务器再向其中一个权限域名服务器发送一个请求,返回www.baidu.com所对应的 IP地址,

TCP

在这里插入图片描述

是什么

TCP(传输控制协议)的三次握手机制是一种用于在两个 TCP 主机之间建立一个可靠的连接的过程。这个机制确保了两端的通信是同步的,并且在数据传输开始前,双方都准备好了进行通信。

为什么是三次握手

想象河边两个人的情况,如果不是三次握手挥手啥情况:

为了防止服务器一直等,等到黄花菜都凉了。
为了防止客户端已经失效的连接请求突然又传送到了服务器。

为什么是四次挥手

在这里插入图片描述

关闭连接时,客户端向服务端发送 FIN 时,仅仅表示客户端不再发送数据了但是还能接收数据。
服务端收到客户端的 FIN 报文时,先回一个 ACK 应答报文,而服务端可能还有数据需要处理和发送,等服务端不再发送数据时,才发送 FIN 报文给客户端来表示同意现在关闭连接。

可靠性

在这里插入图片描述

HTTP

在这里插入图片描述

这个环节就和我们真实发请求脱不开干系了,它本身包含请求头和响应体。以及在真实发请求的时候可以会遇见的一些问题,如安全问题如何解决。

请求头和响应头

构成
在这里插入图片描述
请求类型

在这里插入图片描述

响应

在这里插入图片描述

HTTP和HTTPS

在这里插入图片描述

在这里插入图片描述

Cookie和Session

存储位置不一样,Cookie 保存在客户端,Session 保存在服务器端。
存储数据类型不一样,Cookie 只能保存 ASCII,Session 可以存任意数据类型,一般情况下我们可以在 Session 中保持一些常用变量信息,比如说 UserId 等。
有效期不同,Cookie 可设置为长时间保持,比如我们经常使用的默认登录功能,Session 一般有效时间较短,客户端关闭或者 Session 超时都会失效。
隐私策略不同,Cookie 存储在客户端,比较容易遭到不法获取,早期有人将用户的登录名和密码存储在 Cookie 中导致信息被窃取;Session 存储在服务端,安全性相对 Cookie 要好一些。
存储大小不同, 单个 Cookie 保存的数据不能超过 4K,Session 可存储数据远高于 Cookie。

IP

在这里插入图片描述

讲述了是什么,为什么以及多个在一起应该怎么用呢???关于ip我们可以延伸出网络的七层的概念,以便进行拓展。

是什么

IP 协议(Internet Protocol)又被称为互联网协议,是支持网间互联的数据包协议,工作在网际层,主要目的就是为了提高网络的可扩展性。

说下 ARP 协议的工作过程

在这里插入图片描述

ARP ip 都是网络层的东西。
ARP(Address Resolution Protocol,地址解析协议)是网络通信中的一种协议,主要目的是将网络层的 IP 地址解析为链路层的 MAC 地址。

①、ARP 请求

当主机 A 要发送数据给主机 B 时,首先会在自己的 ARP 缓存中查找主机 B 的 MAC 地址。

如果没有找到,主机 A 会向网络中广播一个 ARP 请求数据包,请求网络中的所有主机告诉它们的 MAC 地址;这个请求包含了请求设备和目标设备的 IP 和 MAC 地址。

②、ARP 应答

网络中的所有主机都会收到这个 ARP 请求,但只有主机 B 会回复 ARP 应答,告诉主机 A 自己的 MAC 地址。

并且主机 B 会将主机 A 的 IP 和 MAC 地址映射关系缓存到自己的 ARP 缓存中,以便下次通信时直接使用。

③、更新 ARP 缓存

主机 A 收到主机 B 的 ARP 应答后,也会将主机 B 的 IP 和 MAC 地址映射关系缓存到自己的 ARP 缓存中。

主机之间ping

ICMP(Internet Control Message Protocol) ,网际控制报文协议。

①、当执行 Ping 命令,如ping javabetter.cn,Ping 首先解析域名获取 IP 地址,然后向目标 IP 发送一个 ICMP Echo Request 消息。

②、当目标 IP 收到 ICMP Echo Request 消息后,它会生成一个 ICMP Echo Reply 消息并返回,即 Ping 响应消息。

③、发起 Ping 命令的设备接收到 ICMP Echo Reply 消息后,计算并显示从发送 Echo Request 到接收到 Echo Reply 的时间(通常称为往返时间 RTT,Round-Trip Time),以及可能的丢包情况。

Ping 通常会发送多个请求,以便提供平均响应时间和丢包率等信息,以便我们了解网络连接的质量。

总结

计算机网络可以有多个维度进行学习,按照层进行学习,或者按照请求发送的步骤进行学习都是可以的,重点是要将所有知识有效的串联起来。