前端面试-网络协议篇
1.http网络协议中post和get有什么区别
在HTTP网络协议中,POST和GET主要有以下区别:
- 参数传递方式:
- GET:参数附加在URL后面,如
example.com?key1=value1&key2=value2。 - POST:参数放在HTTP请求体中。
- GET:参数附加在URL后面,如
- 数据长度限制:
- GET:由于浏览器和服务器对URL长度有限制,一般能传递的数据量较小。
- POST:理论上没有数据长度限制。
- 安全性:
- GET:参数暴露在URL中,安全性较差,不适合传递敏感信息。
- POST:参数在请求体中,相对更安全。
- 缓存:
- GET:可以被浏览器缓存,因为参数在URL上,便于缓存识别。
- POST:一般不会被缓存。
- 应用场景:
- GET:常用于获取数据,如查询列表。
- POST:常用于向服务器提交数据,如用户注册、登录时提交表单。
2.UDP和TCP的区别
UDP(User Datagram Protocol)和 TCP(Transmission Control Protocol)是两种常见的传输层协议,它们在数据传输方式、可靠性和应用场景等方面有显著区别。

选择 TCP 还是 UDP 取决于具体需求:如果需要可靠性和数据完整性,选择 TCP;如果需要高效率和实时性,选择 UDP。
3.TCP协议的三次握手和四次挥手
TCP 三次握手
- 客户端向服务器发送 SYN 包:客户端向服务器发送一个 SYN (同步序列编号)包,请求建立连接,此时客户端进入 SYN_SENT 状态。这个包中包含客户端初始的序列号(Sequence Number)。
- 服务器回复 SYN + ACK 包:服务器收到 SYN 包后,向客户端发送一个 SYN + ACK 包,表示同意建立连接。服务器进入 SYN_RCVD 状态。这个包中包含服务器的初始序列号以及对客户端 SYN 包的确认号(Acknowledgment Number)。
- 客户端发送 ACK 包:客户端收到 SYN + ACK 包后,向服务器发送 ACK 包进行确认。客户端进入 ESTABLISHED 状态。服务器收到 ACK 包后也进入 ESTABLISHED 状态,此时连接建立成功。
TCP 三次握手的目的
- 确保双方通信能力正常:通过三次握手,客户端和服务器可以确认彼此都能正常发送和接收数据,确保通信的可靠性。
- 同步初始序列号:交换初始序列号(Sequence Number),为后续数据传输提供基础,确保数据按顺序传输且不重复。
- 防止已失效的连接请求干扰:避免网络中延迟的旧连接请求突然到达服务器,导致服务器误认为是新的连接请求。
TCP 四次挥手
- 客户端发送 FIN 包:客户端向服务器发送 FIN (结束标志)包,表示请求关闭连接,此时客户端进入 FIN_WAIT_1 状态。
- 服务器回复 ACK 包:服务器收到 FIN 包后,向客户端发送 ACK 包进行确认,服务器进入 CLOSE_WAIT 状态。客户端收到 ACK 包后进入 FIN_WAIT_2 状态。
- 服务器发送 FIN 包:服务器处理完剩余数据后,向客户端发送 FIN 包,表示同意关闭连接,服务器进入 LAST_ACK 状态 。
- 客户端回复 ACK 包:客户端收到 FIN 包后,向服务器发送 ACK 包进行确认,客户端进入 TIME_WAIT 状态。服务器收到 ACK 包后,关闭连接进入 CLOSED 状态。客户端在 TIME_WAIT 状态等待一段时间(2MSL,最大段生命周期)后也进入 CLOSED 状态。
TCP 四次挥手的目的
- 确保双方数据发送完毕:通过四次挥手,双方确认彼此都没有数据需要发送,确保数据传输的完整性。
- 安全关闭连接:双方确认关闭连接,避免一方突然关闭导致另一方还在发送数据,造成数据丢失或错误。
- 释放资源:关闭连接后,释放双方占用的网络资源,如端口、内存等,提高系统效率。
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 是 HTTP 的安全升级版,现代网站普遍推荐使用 HTTPS 以保护用户隐私和数据安全。
6.什么是CDN
CDN(Content Delivery Network,内容分发网络)是一种分布式网络架构,旨在加速内容传输并提升用户体验。
1. 核心概念
- CDN 通过将内容(如图片、视频、CSS、JavaScript 等)缓存到全球分布的边缘节点,使用户可以从离自己最近的节点获取内容,从而减少延迟、提高访问速度。
2. 工作原理
- 内容缓存:
- 源服务器将内容分发到 CDN 的多个边缘节点。
- 用户请求:
- 用户访问网站时,请求会被重定向到离用户最近的边缘节点。
- 内容返回:
- 如果边缘节点缓存了所需内容,直接返回给用户;否则,从源服务器获取内容并缓存到边缘节点。
3. 主要功能
- 加速内容传输:
- 通过就近访问边缘节点,减少网络延迟,提升加载速度。
- 减轻源服务器负载:
- 大多数请求由边缘节点处理,降低源服务器的压力。
- 提高可用性:
- 即使源服务器故障,用户仍可从边缘节点获取缓存内容。
- 抵御网络攻击:
- CDN 可以提供 DDoS 防护、WAF(Web 应用防火墙)等安全功能。
4. 应用场景
- 静态资源加速:
- 如图片、CSS、JavaScript 等文件的快速加载。
- 视频和直播流媒体:
- 提供流畅的视频播放体验。
- 软件和游戏下载:
- 加速大文件的分发。
- 全球业务扩展:
- 为全球用户提供一致的访问体验。
5. 优势
- 更快的内容加载:减少延迟,提升用户体验。
- 更高的可靠性:通过冗余节点提高服务可用性。
- 更强的安全性:提供 DDoS 防护、WAF 等安全功能。
- 更低的成本:减少带宽消耗和服务器负载。
7.什么是WebSocket
WebSocket 是一种基于 TCP 的通信协议,用于在客户端(如浏览器)和服务器之间实现全双工、低延迟的实时通信。
1. 核心特点
- 全双工通信:
- 客户端和服务器可以同时发送和接收数据,无需等待对方完成。
- 低延迟:
- 基于长连接,无需频繁建立和断开连接,减少了通信开销。
- 实时性:
- 支持实时数据传输,适用于需要即时响应的场景。
- 基于 HTTP/HTTPS:
- 通过 HTTP/HTTPS 协议升级到 WebSocket 协议,兼容现有网络基础设施。
2.与HTTP的区别

相关文章:
前端面试-网络协议篇
1.http网络协议中post和get有什么区别 在HTTP网络协议中,POST和GET主要有以下区别: 参数传递方式: GET:参数附加在URL后面,如example.com?key1value1&key2value2 。POST:参数放在HTTP请求体中。 数据…...
音视频入门基础:RTP专题(10)——FFmpeg源码中,解析RTP header的实现
一、引言 由《音视频入门基础:RTP专题(9)——FFmpeg接收RTP流的原理和内部实现》可以知道,FFmpeg接收RTP流时,其源码内部会调用rtp_read函数。而rtp_read函数内部会通过recvfrom函数接收基于UDP的RTP音视频数据。一般…...
1.1 go环境搭建及基本使用
golang下载地址: Download and install - The Go Programming Language (google.cn) 验证安装是否成功: go version 查看go环境 go env 注意:Go1.11版本之后无需手动配置环境变量,使用go mod 管理项目,也不需要把项目放到GO…...
Flask flash() 消息示例
目录 安装 Flask 入门:Flask flash() 基本示例 进阶:使用 Flask-WTF Flash 登录结果消息 详解:get_flashed_messages() 详解:flash() 消息的完整生命周期 Flask 提供 flash() 用于向 用户传递临时消息,通常用于: • 表单提交成功或失败 • 用户登录、注册、退出提…...
Gemini 2.0助力科学突破,AI联合科学家系统登场
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
京东外卖骑手全部缴纳五险一金
刘强东这步棋,直击700万骑手软肋? 今天,京东突然甩出一张底牌:自2025年3月1日起,外卖全职骑手全员缴纳五险一金,兼职骑手配套意外医疗双保险。 消息一出,直接炸了外卖江湖。要知道,…...
oracle apex post接口
日常记录 使用到了apex_json方式接收 、、、1 首先,接口通过body传递过来,成功接收到, 数据格式为 JSON_OBJECT_T l_json : JSON_OBJECT_T.parse(:body); 这里我用参数接收到 然后 里面是包含了 "data" 我用 继续接收到这个 l…...
百度云DeepSeek一体机:百舸、千帆和一见介绍及区别对比
百度智能云DeepSeek一体机百舸、千帆和一见,搭载昆仑芯等国产自研算力芯片,可支持在单机环境下一键部署DeepSeek R1/V3全系列模型。百度云服务器网bdyfwq.com分享百度智能云官方发布的百舸DeepSeek一体机、千帆DeepSeek一体机和一见DeepSeek一体机配置介…...
k8s集群内的pod连接集群外部的mysql, k8s集群内部服务如何连接集群外部mysql? 一文搞明白
一、为什么不将mysql服务部署到k8s集群中使用呢? 1.有状态服务在K8s中的管理比较复杂,特别是持久化存储的问题。虽然K8s有StatefulSet和PV/PVC,但配置和维护起来需要更多工作,同时以下问题仍需解决:-存储可靠性:如果使…...
C#使用Semantic Kernel:接入本地deepseek-r1
安装Ollama 1.下载Ollama 访问Ollama官网(https://ollama.com),选择适合你操作系统的版本进行下载。 对于Linux用户,可以通过以下命令安装: curl -fsSL https://ollama.com/install.sh | sudo bash sudo system…...
【算法】直接插入排序、折半插入排序、希尔排序
1 直接插入排序 时间复杂度:O(N^2) 空间复杂度:O(1) 稳定性:稳定 元素集合越接近有序,直接插入排序算法的时间效率越高 1.1直接插入排序思想 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中ÿ…...
使用API有效率地管理Dynadot域名,为域名部署DNS安全拓展(DNSSEC)
关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…...
【排版教程】如何在Word/WPS中优雅的插入参考文献
材料展示 随便选取一段综述内容,以及对应的参考文献,如下图所示: 1 参考文献编辑 首先对参考文献部分进行编辑,将其设置自动编号 在段落中,选择悬挂缩进 在编号中,设置自定义编号,然后按照…...
神经形态视觉的实时动态避障系统:突破传统SLAM的响应延迟瓶颈
引言:机器人感知的实时性挑战 斯坦福机器人实验室采用异步脉冲神经网络处理DVS事件相机数据后,动态障碍物响应延迟从34ms降至0.9ms。在20m复杂场景避障测试中,基于神经形态芯片的路径规划系统将SLAM更新频率提升至10kHz,较传统GP…...
python绘图之密集散点图
密集散点图主要目的是生成一个可视化图表,展示 insurance 数据集中 bmi(身体质量指数)和 charges(医疗费用)之间的关系,并通过不同的维度对数据进行分组和区分,以便更清晰地观察数据的分布和特征…...
Linux操作系统4-进程间通信5(共享内存实现两个进程通信)
上篇文章:Linux操作系统4-进程间通信4(共享内存原理,创建,查看,命令)-CSDN博客 本篇Gitee仓库:myLerningCode/l24 橘子真甜/Linux操作系统与网络编程学习 - 码云 - 开源中国 (gitee.com) 本篇重…...
sam2 windows 编译安装
目录 1. pip install sam2 2. 编译安装 1. pip install sam2 运行报错: cannot import name _C from sam2 (E:\project\smpl\render_blender\linux\GroundedSAM2_SMPL\sam2\__init__.py) 2. 编译安装 cd E:\project\sam2\sam2-main set DISTUTILS_USE_SDK1 py…...
RFID测温技术:电力设备安全监测的新利器
在当今高度依赖电力的现代化社会中,稳定且可靠的电力供应是社会运转的基石。电力设备作为电力系统的关键核心,其运行状态直接关乎电力供应的品质。然而,电力设备长期运行过程中,受到诸如过载、接触不良以及环境因素等多重影响&…...
(一)趣学设计模式 之 单例模式!
目录 一、啥是单例模式?二、为什么要用单例模式?三、单例模式怎么实现?1. 饿汉式:先下手为强! 😈2. 懒汉式:用的时候再创建! 😴3. 枚举:最简单最安全的单例&a…...
自动化办公|xlwings生成图表
在日常的数据分析和报告生成中,Excel图表是一个非常重要的工具。它能够帮助我们直观地展示数据,发现数据中的规律和趋势。然而,手动创建和调整图表往往耗时且容易出错。幸运的是,借助Python的xlwings库,我们可以自动化…...
Docker基于Ollama本地部署大语言模型
一、Ollama介绍 Ollama 是一个开源的大型语言模型(LLM)平台,旨在简化大型语言模型在本地环境中的运行、管理和交互。通过Ollama,用户可以轻松加载和使用各种预训练的语言模型,执行诸如文本生成、翻译、代码编写、问答…...
Pytorch实现之GIEGAN(生成器信息增强GAN)训练自己的数据集
简介 简介:在训练数据样本之前首先利用VAE来推断潜在空间中不同类的分布,用于后续的训练,并使用它来初始化GAN。与ACGAN和BAGAN不同的是,提出的GIEGAN有一个分类器结构,这个分类器主要判断生成的图像或者样本图像属于哪个类,而鉴别器仅判断图像是来自于生成器还是真实样…...
centos9安装k8s集群
以下是基于CentOS Stream 9的Kubernetes 1.28.2完整安装流程(containerd版): 一、系统初始化(所有节点执行) # 关闭防火墙 systemctl disable --now firewalld# 关闭SELinux sed -i "s/SELINUXenforcing/SELINU…...
pytest下allure
import pytestdef test_case01():用例01~print(用例01)class Test_mokuai01:def test_case02(self):用例02~print(用例02)if __name____main__:#pytest.main([-vs,test_sample-2.py])pytest.main([-vs,test_sample-2.py,--allure-dir,./result2])#生成allure报告,参…...
JVM预热
阿里电商平台每年的各种大促活动,对于Java技术来说,其中重要一个操作环节就是预热操作。 目录 预热是什么?为什么要预热? java 程序不预热和预热的调用对比 预热是什么? 预热是指,在 JVM 启动后࿰…...
【JavaWeb12】数据交换与异步请求:JSON与Ajax的绝妙搭配是否塑造了Web的交互革命?
文章目录 🌍一. 数据交换--JSON❄️1. JSON介绍❄️2. JSON 快速入门❄️3. JSON 对象和字符串对象转换❄️4. JSON 在 java 中使用❄️5. 代码演示 🌍二. 异步请求--Ajax❄️1. 基本介绍❄️2. JavaScript 原生 Ajax 请求❄️3. JQuery 的 Ajax 请求 &a…...
Ubuntu 查看mysql用户和数据库
在Ubuntu系统中,你可以使用以下MySQL命令来查看用户和数据库的信息。请确保你已经安装了MySQL服务器,并且你具有足够的权限(如root用户权限)来执行这些命令。 查看所有数据库 要查看MySQL服务器上的所有数据库,可以使…...
数据库服务器和应用服务器的区别是什么?
在当今的互联网社会中,各个行业中的业务都离不来网络科技,而作为互联网基础设施的服务器,受到了各大行业的广泛应用,同时根据所承担职责的不同,可以将服务器分为数据库服务器和应用服务器,本文就来概括一下…...
初级银行从业考试真题
2023 年 6 月初级银行从业考试真题 法律法规 单选题 1.按照《中华人民共和国反洗钱法》的规定,金融机构所建立的客户身份资料和客户交易信息在业务关系或交易结束后至少 保存期限为()年。 A.5 B.3 C.10 D.2 参考答案:A 2.物价稳定是要保持()的大体稳定,避免出现高…...
普通转录组RNASeq生物信息流程
探序基因肿瘤研究院 整理 比对工具:HISAT2,下载源代码编译安装或者二进制文件 定量工具:feactureCounts,下载地址:The Subread package 参考基因组:NCBI的GCF_000001405.40_GRCh38.p14_genomic.fna.g…...

