计算机网络专业属于计算机科学与技术大类,是信息技术领域的重要分支。


一、Get 和 Post 方法的不同

安全差异:Get 方法的数据传输在请求 URL 中进行,因此存在信息的风险,相对不够安全;而 Post 方法则将数据封装在请求体中,操作对用户不可见,更为安全。

数据量限制:由于 URL 长度的限制,Get 传送的数据量通常较小;Post 方法则没有明确的数据量限制,能够传输更大规模的数据。

字符集支持:Get 方法限制 Form 表单数据集值必须为 ASCII 字符;相比之下,Post 方法支持整个 ISO10646 字符集,具有更灵活的字符处理能力。

执行效率与默认设置:Get 方法的执行效率较高,并且是 Form 提交的默认方法。

数据包产生情况:通常 GET 请求会产生一个 TCP 数据包,而 POST 请求产生的数据包数量不固定,取决于实际情况。

二、HTTP 请求的完整流程

域名解析:浏览器首先解析域名以获取对应的 IP 地址。解析过程中会先查询本地的 DNS 缓存,若缓存中没有结果,则进行进一步的域名解析操作。

建立连接:浏览器与 WEB 服务器之间建立 TCP 连接,为数据传输奠定基础。

发送请求:浏览器向 WEB 服务器发送 HTTP 请求(GET/POST)。一个完整的 HTTP 请求报文由请求行、请求头部、空行和请求数据构成。

服务器响应:服务器收到请求后,返回 HTTP 响应报文,该报文由状态行、响应头部、空行和响应数据组成。

浏览器解析与渲染:浏览器接收并解析响应数据,完成页面的渲染展示。

三、计算机网络层次结构

应用层:为操作系统或网络应用程序提供访问网络服务的接口,通过应用进程间的交互实现特定网络应用功能。该层定义了应用进程间通信和交互的规则,常见协议包括 HTTP、FTP、TP、RPC 等。

传输层:负责在两个主机中的进程之间进行通信,提供通用数据服务。典型协议有 TCP 和 UDP。

网络层:主要功能是进行路由选择和存储转发。常见协议包括 IP、ICMP(ping 命令基于此协议)。

数据链路层:在相邻节点之间传送数据时,将网络层传递的 IP 数据报组装成帧,并在相邻链路上实现帧的传送。每一帧包含数据和必要的控制信息。

物理层:物理层传输的数据单位是比特(bit),主要关注如何用特定电压代表 1 或 0,以及接收方如何准确识别发送方所发送的比特信息。

四、TCP 和 UDP 的差异及优缺点

连接特性:TCP 是面向连接的协议,需预先建立连接;而 UDP 是无连接的,无需预先建立连接即可发送数据。

可靠性:TCP 提供可靠服务,通过确认、窗口、重传、拥塞控制等机制确保数据无差错、不丢失、不重复且按序到达;相比之下,UDP 仅尽最大努力交付,不保证数据的可靠传输。

数据传输形式:TCP 面向字节流,将数据视为一连串无结构的字节流;UDP 则是面向报文的,没有拥塞控制机制,对于实时应用如 IP 电话、视频会议等非常有用。

通信模式:每条 TCP 连接是点到点的;UDP 则支持多种交互通信模式,如一对一、一对多、多对一和多对多。

首部开销:TCP 的首部开销为 20 字节,相对较大;而 UDP 的首部开销较小,仅为 8 字节。

TCP 和 UDP 的优缺点: