前端面试-网络协议篇

news/2025/2/23 21:40:09

https://i-blog.csdnimg.cn/direct/75ea83df3581464191c9c974de26c6cc.jpeg" />

1.http网络协议中post和get有什么区别

在HTTP网络协议中,POST和GET主要有以下区别:

  • 参数传递方式
    • GET:参数附加在URL后面,如example.com?key1=value1&key2=value2 。
    • POST:参数放在HTTP请求体中。
  • 数据长度限制
    • GET:由于浏览器和服务器对URL长度有限制,一般能传递的数据量较小。
    • POST:理论上没有数据长度限制。
  • 安全性
    • GET:参数暴露在URL中,安全性较差,不适合传递敏感信息。
    • POST:参数在请求体中,相对更安全。
  • 缓存
    • GET:可以被浏览器缓存,因为参数在URL上,便于缓存识别。
    • POST:一般不会被缓存。
  • 应用场景
    • GET:常用于获取数据,如查询列表。
    • POST:常用于向服务器提交数据,如用户注册、登录时提交表单。

2.UDP和TCP的区别

UDP(User Datagram Protocol)和 TCP(Transmission Control Protocol)是两种常见的传输层协议,它们在数据传输方式、可靠性和应用场景等方面有显著区别。

https://i-blog.csdnimg.cn/direct/994716cb72c44f8b8916e59500f77aa3.png" />

选择 TCP 还是 UDP 取决于具体需求:如果需要可靠性和数据完整性,选择 TCP;如果需要高效率和实时性,选择 UDP。

3.TCP协议的三次握手和四次挥手

TCP 三次握手
  1. 客户端向服务器发送 SYN 包:客户端向服务器发送一个 SYN (同步序列编号)包,请求建立连接,此时客户端进入 SYN_SENT 状态。这个包中包含客户端初始的序列号(Sequence Number)。
  2. 服务器回复 SYN + ACK 包:服务器收到 SYN 包后,向客户端发送一个 SYN + ACK 包,表示同意建立连接。服务器进入 SYN_RCVD 状态。这个包中包含服务器的初始序列号以及对客户端 SYN 包的确认号(Acknowledgment Number)。
  3. 客户端发送 ACK 包:客户端收到 SYN + ACK 包后,向服务器发送 ACK 包进行确认。客户端进入 ESTABLISHED 状态。服务器收到 ACK 包后也进入 ESTABLISHED 状态,此时连接建立成功。
TCP 三次握手的目的
  1. 确保双方通信能力正常:通过三次握手,客户端和服务器可以确认彼此都能正常发送和接收数据,确保通信的可靠性。
  2. 同步初始序列号:交换初始序列号(Sequence Number),为后续数据传输提供基础,确保数据按顺序传输且不重复。
  3. 防止已失效的连接请求干扰:避免网络中延迟的旧连接请求突然到达服务器,导致服务器误认为是新的连接请求。
TCP 四次挥手
  1. 客户端发送 FIN 包:客户端向服务器发送 FIN (结束标志)包,表示请求关闭连接,此时客户端进入 FIN_WAIT_1 状态。
  2. 服务器回复 ACK 包:服务器收到 FIN 包后,向客户端发送 ACK 包进行确认,服务器进入 CLOSE_WAIT 状态。客户端收到 ACK 包后进入 FIN_WAIT_2 状态。
  3. 服务器发送 FIN 包:服务器处理完剩余数据后,向客户端发送 FIN 包,表示同意关闭连接,服务器进入 LAST_ACK 状态 。
  4. 客户端回复 ACK 包:客户端收到 FIN 包后,向服务器发送 ACK 包进行确认,客户端进入 TIME_WAIT 状态。服务器收到 ACK 包后,关闭连接进入 CLOSED 状态。客户端在 TIME_WAIT 状态等待一段时间(2MSL,最大段生命周期)后也进入 CLOSED 状态。
TCP 四次挥手的目的
  1. 确保双方数据发送完毕:通过四次挥手,双方确认彼此都没有数据需要发送,确保数据传输的完整性。
  2. 安全关闭连接:双方确认关闭连接,避免一方突然关闭导致另一方还在发送数据,造成数据丢失或错误。
  3. 释放资源:关闭连接后,释放双方占用的网络资源,如端口、内存等,提高系统效率。

4.http常见访问状态码有哪些

HTTP 状态码是服务器对客户端请求的响应结果,用于表示请求的处理状态。以下是常见的 HTTP 状态码及其含义:

1xx(信息类状态码)
  • 100 Continue:服务器已收到请求头,客户端应继续发送请求体。
  • 101 Switching Protocols:服务器同意切换协议(如从 HTTP 切换到 WebSocket)。
2xx(成功类状态码)
  • 200 OK:请求成功,响应中包含请求的结果。
  • 201 Created:请求成功,并在服务器上创建了新资源。
  • 202 Accepted:请求已被接受,但尚未处理完成。
  • 204 No Content:请求成功,但响应中无内容。
  • 206 Partial Content:成功处理了客户端的部分请求,常见于断点续传。

3xx(重定向类状态码)
  • 301 Moved Permanently:请求的资源已永久移动到新位置。
  • 302 Found:请求的资源临时移动到新位置。
  • 304 Not Modified:资源未修改,客户端可使用缓存版本。
4xx(客户端错误类状态码)
  • 400 Bad Request:请求无效,服务器无法理解。
  • 401 Unauthorized:请求需要身份验证。
  • 403 Forbidden:服务器拒绝请求,客户端无权限访问。
  • 404 Not Found:请求的资源不存在。
  • 405 Method Not Allowed:请求方法不被允许(如 GET 请求用于仅支持 POST 的资源)。
5xx(服务器错误类状态码)
  • 500 Internal Server Error:服务器内部错误,无法完成请求。
  • 502 Bad Gateway:服务器作为网关或代理时,从上游服务器收到无效响应。
  • 503 Service Unavailable:服务器暂时无法处理请求(如过载或维护)。
  • 504 Gateway Timeout:服务器作为网关或代理时,未及时从上游服务器收到响应。
常见状态码的典型场景
  • 200 OK:访问成功,如加载网页或获取数据。
  • 301/302:网站重定向,如旧网址跳转到新网址。
  • 404:访问的资源不存在,如输入错误的 URL。
  • 500:服务器内部错误,如代码 bug 或数据库故障。
  • 503:服务器暂时不可用,如维护或过载。

5.HTTP和HTTPS的区别

HTTP 和 HTTPS 是两种常见的网络通信协议,主要区别在于安全性实现方式

https://i-blog.csdnimg.cn/direct/2930e320a04f4b24ac708d14a53684db.png" />

HTTPS 是 HTTP 的安全升级版,现代网站普遍推荐使用 HTTPS 以保护用户隐私和数据安全。

6.什么是CDN

CDN(Content Delivery Network,内容分发网络)是一种分布式网络架构,旨在加速内容传输提升用户体验

1. 核心概念
  • CDN 通过将内容(如图片、视频、CSS、JavaScript 等)缓存到全球分布的边缘节点,使用户可以从离自己最近的节点获取内容,从而减少延迟、提高访问速度。
2. 工作原理
  1. 内容缓存
    • 源服务器将内容分发到 CDN 的多个边缘节点。
  2. 用户请求
    • 用户访问网站时,请求会被重定向到离用户最近的边缘节点。
  3. 内容返回
    • 如果边缘节点缓存了所需内容,直接返回给用户;否则,从源服务器获取内容并缓存到边缘节点。
3. 主要功能
  1. 加速内容传输
    • 通过就近访问边缘节点,减少网络延迟,提升加载速度。
  2. 减轻源服务器负载
    • 大多数请求由边缘节点处理,降低源服务器的压力。
  3. 提高可用性
    • 即使源服务器故障,用户仍可从边缘节点获取缓存内容。
  4. 抵御网络攻击
    • CDN 可以提供 DDoS 防护、WAF(Web 应用防火墙)等安全功能。
4. 应用场景
  1. 静态资源加速
    • 如图片、CSS、JavaScript 等文件的快速加载。
  2. 视频和直播流媒体
    • 提供流畅的视频播放体验。
  3. 软件和游戏下载
    • 加速大文件的分发。
  4. 全球业务扩展
    • 为全球用户提供一致的访问体验。
5. 优势
  • 更快的内容加载:减少延迟,提升用户体验。
  • 更高的可靠性:通过冗余节点提高服务可用性。
  • 更强的安全性:提供 DDoS 防护、WAF 等安全功能。
  • 更低的成本:减少带宽消耗和服务器负载。

7.什么是WebSocket

WebSocket 是一种基于 TCP 的通信协议,用于在客户端(如浏览器)和服务器之间实现全双工、低延迟的实时通信。

1. 核心特点
  1. 全双工通信
    • 客户端和服务器可以同时发送和接收数据,无需等待对方完成。
  2. 低延迟
    • 基于长连接,无需频繁建立和断开连接,减少了通信开销。
  3. 实时性
    • 支持实时数据传输,适用于需要即时响应的场景。
  4. 基于 HTTP/HTTPS
    • 通过 HTTP/HTTPS 协议升级到 WebSocket 协议,兼容现有网络基础设施。
2.与HTTP的区别

https://i-blog.csdnimg.cn/direct/8d3bfc262f5748c4b19e9637157aaad4.png" />


http://www.niftyadmin.cn/n/5863791.html

相关文章

ragflow-RAPTOR到底是什么?请通俗的解释!

RAPTOR有两种不同的含义,具体取决于上下文: RAPTOR作为一种信息检索技术 RAPTOR是一种基于树状结构的信息检索系统,全称为“Recursive Abstractive Processing for Tree-Organized Retrieval”(递归抽象处理树组织检索&#xff09…

【MCU驱动开发概述】

MCU驱动开发概述 目录 MCU驱动开发概述二、驱动开发的目的三、驱动开发的关键组成部分四、示例 - LED 控制驱动 一、引言 MCU(Microcontroller Unit),即微控制器单元,是一种集成在单个芯片上的计算机系统,通常用于控制…

1.3 AI量化炒股的基本流程

**定性价值:** AI量化炒股通过系统化流程(数据采集→策略建模→回测优化→实盘执行)实现投资决策的客观性与一致性,有效规避人为情绪干扰。例如,基于历史数据挖掘市场规律,结合机器学习动态调整参数&#…

KAJIMA CORPORATION CONTEST 2025 (AtCoder Beginner Contest 394)题解 ABCDE

A - 22222 题意&#xff1a;保留2 思路&#xff1a;模拟 // Code Start Here string s;cin >>s;for(auto i : s){if(i 2)cout << i;}cout << endl;return 0; B - cat 题意&#xff1a;根据长度排序 思路&#xff1a;模拟 // Code Start Here int n;…

【论文带读(1)】《End-to-End Object Detection with Transformers》论文超详细带读 + 翻译

目录 前言 Abstract 一、Introduction 二、Related work&#xff08;相关工作&#xff09; 2.1 Set Prediction&#xff08;设置预测&#xff09; 2.2 Transformers and Parallel Decoding&#xff08;Transformer和并行解码&#xff09; 2.3 Object detection&#xf…

【NLP 31、预训练模型的发展过程】

人的行为&#xff0c;究竟是人所带来的思维方式不同还是与机器一样&#xff0c;刻在脑海里的公式呢&#xff1f; 只是因为不同的人公式不同&#xff0c;所以人的行为才不同&#xff0c;可这又真的是人引以为傲的意识吗&#xff1f; 人脑只是相当于一个大型、驳杂的处理器&#…

S8711A UXM5G 测试应用软件

苏/州/新/利/通 S8711A UXM 5G 测试应用软件 简述 Keysight S8711A UXM 5G 测试应用软件是一款交互式实时测试工具&#xff0c;适用于从早期原型测试一直到集成和验证的整个芯片和设备开发工作流程。 它提供了全套网络仿真、射频测试和功能测试工具&#xff0c;能够高度自…

docker独立部署milvus向量数据库

milvus镜像&#xff1a;国外封锁&#xff0c;国内源也不好用。基本上所有源都不能用 首先想到阿里云服务&#xff0c;但是阿里云国外服务器便宜的300~400呢。 基于成本考虑终于装上心心念念的milvus(*^▽^*) 安装 Milvus 安装 Milvus 独立版 wget https://raw.githubuserco…