后端面试题分享第一弹(状态码、进程线程、TCPUDP)
后端面试题分享第一弹
1. 如何查看状态码,状态码含义
在Web开发和调试过程中,HTTP状态码是了解请求处理情况的重要工具。
查看状态码的步骤
-
打开开发者工具:
- 在大多数浏览器中,您可以通过按下
F12
键或右键单击页面并选择“检查”来打开开发者工具。
- 在大多数浏览器中,您可以通过按下
-
切换到“网络”选项卡:
- 在开发者工具中,切换到“网络”(Network)选项卡,这里会显示所有网络请求的详细信息。
-
查找感兴趣的请求:
- 在“网络”选项卡中,找到您感兴趣的请求,点击该请求以查看详细信息。
-
查看状态码:
- 在请求的Header详细信息中,您可以看到“状态码”(Status Code),它表示服务器对该请求的响应状态。
- 在请求的Header详细信息中,您可以看到“状态码”(Status Code),它表示服务器对该请求的响应状态。
常见状态码及其含义
以下是常见的HTTP状态码及其含义:
- 200 OK: 请求成功,服务器成功处理了请求。
- 301 Moved Permanently: 请求的资源已永久移动到新位置。客户端应使用新的URI重新发起请求。
- 400 Bad Request: 服务器无法理解请求的语法,通常是由于客户端发送的请求有误。
- 403 Forbidden: 服务器拒绝了对请求的访问,可能是由于权限不足或资源被禁止访问等原因。
- 404 Not Found: 请求的资源不存在,服务器无法找到请求的资源。
- 500 Internal Server Error: 服务器遇到了意外错误,无法完成请求。
- 502 Bad Gateway: 作为网关或代理服务器的服务器从上游服务器接收到无效的响应。
状态码分类
HTTP状态码分为五类,每类状态码的第一个数字表示其类别:
- 1xx(信息性状态码): 表示请求已被接收,继续处理。
- 2xx(成功状态码): 表示请求已成功被服务器接收、理解并接受。
- 3xx(重定向状态码): 表示需要客户端采取进一步的操作才能完成请求。
- 4xx(客户端错误状态码): 表示客户端可能出错了,妨碍了服务器的处理。
- 5xx(服务器错误状态码): 表示服务器在处理请求的过程中发生了错误。
2. 进程和线程的比较
进程和线程的定义
- 进程(Process): 进程是操作系统分配资源的基本单位。每个进程都有独立的内存空间、文件描述符和系统资源。一个进程可以包含多个线程。
- 线程(Thread): 线程是进程中的一个执行单元,是CPU调度的基本单位。线程共享进程的内存空间和资源,但拥有独立的执行栈和程序计数器。
进程和线程的比较
以下是进程和线程的主要区别:
特性 | 进程 | 线程 |
---|---|---|
定义 | 操作系统分配资源的基本单位 | 进程中的一个执行单元 |
资源占用 | 独立的内存空间和系统资源 | 共享进程的内存空间和资源 |
创建和销毁开销 | 较大,涉及内存分配和资源管理 | 较小,仅需分配栈和程序计数器 |
通信方式 | 进程间通信(IPC)机制,如管道、消息队列等 | 直接共享内存,通信更高效 |
并发性 | 进程间切换开销大,并发性较低 | 线程间切换开销小,并发性较高 |
独立性 | 进程间相互独立,一个进程崩溃不影响其他进程 | 线程共享资源,一个线程崩溃可能导致整个进程崩溃 |
应用场景 | 适合需要高隔离性和安全性的任务 | 适合需要高并发和资源共享的任务 |
进程和线程的优缺点
进程的优点
- 独立性: 进程间相互独立,一个进程崩溃不会影响其他进程。
- 安全性: 进程间资源隔离,安全性较高。
进程的缺点
- 资源开销大: 创建和销毁进程的开销较大,占用更多的系统资源。
- 通信复杂: 进程间通信需要使用复杂的IPC机制。
线程的优点
- 资源开销小: 创建和销毁线程的开销较小,占用较少的系统资源。
- 通信高效: 线程间可以直接共享内存,通信更高效。
- 并发性高: 线程间切换开销小,适合高并发场景。
线程的缺点
- 安全性低: 线程共享资源,一个线程崩溃可能导致整个进程崩溃。
- 调试复杂: 多线程程序的调试和同步较为复杂。
3. TCP和UDP的区别
TCP和UDP的主要区别
以下是TCP和UDP的主要区别:
特性 | TCP | UDP |
---|---|---|
连接方式 | 面向连接,通信前需建立可靠连接 | 无连接,直接发送数据报 |
可靠性 | 提供可靠的数据传输,支持确认、重传机制 | 不提供可靠性保证,可能存在丢包或乱序 |
有序性 | 保证数据的有序性,按发送顺序接收 | 不保证数据的有序性,接收顺序可能不一致 |
控制机制 | 支持拥塞控制和流量控制 | 无拥塞控制和流量控制 |
传输效率 | 传输效率较低,因需维护连接和确认机制 | 传输效率较高,因无连接和确认开销 |
适用场景 | 适合对可靠性要求高的应用,如网页、邮件 | 适合对实时性要求高的应用,如视频、语音 |
TCP和UDP的详细比较
1. 面向连接 vs 无连接
- TCP: 是一种面向连接的协议。在通信之前,TCP需要在发送方和接收方之间建立一个可靠的连接。连接建立后,双方才能进行数据传输。
- UDP: 是一种无连接的协议。发送方直接将数据报发送给接收方,无需建立连接。这种方式减少了通信的开销,但缺乏可靠性保障。
2. 可靠性
- TCP: 提供可靠的数据传输。它使用确认机制、序列号和重传来确保数据的可靠性。如果数据丢失或损坏,TCP会重新发送丢失的数据。
- UDP: 不提供可靠性保证。它不进行重传或确认,因此在传输过程中可能会有丢包或乱序的情况发生。
3. 有序性
- TCP: 保持数据的有序性,确保接收方按照发送顺序接收数据。
- UDP: 不保证数据的有序性,接收方可能会按照不同的顺序接收到数据。
4. 控制机制
- TCP: 具有拥塞控制和流量控制机制。拥塞控制用于避免网络拥塞,流量控制用于协调发送方和接收方的数据传输速率。
- UDP: 无拥塞控制和流量控制机制,数据传输完全由应用层控制。
5. 传输效率
- TCP: 由于需要维护连接和确认机制,传输效率较低,适合对可靠性要求高的场景。
- UDP: 由于无连接和确认开销,传输效率较高,适合对实时性要求高的场景。
6. 适用场景
- TCP: 适合对可靠性要求高的应用,如网页浏览、电子邮件、文件传输等。
- UDP: 适合对实时性要求高的应用,如视频流、语音通话、在线游戏等。
相关文章:
后端面试题分享第一弹(状态码、进程线程、TCPUDP)
后端面试题分享第一弹 1. 如何查看状态码,状态码含义 在Web开发和调试过程中,HTTP状态码是了解请求处理情况的重要工具。 查看状态码的步骤 打开开发者工具: 在大多数浏览器中,您可以通过按下 F12 键或右键单击页面并选择“检查…...
Python 常用运维模块之OS模块篇
Python 常用运维模块之OS模块篇 OS 模块获取当前工作目录更改当前工作目录返回当前目录路径返回上一级目录路径递归生成目录路径删除目录创建目录删除目录列出特定目录下文件和子目录删除某个特定文件重命名某个文件获取某个文件/目录的信息输出目录路径分隔符输出文件行终止符…...
前沿技术趋势洞察:2024年技术的崭新篇章与未来走向!
引言 时光飞逝,2024年已经来临,回顾过去一年,科技的迅猛进步简直让人目不暇接。 在人工智能(AI)越来越强大的今天,我们不再停留在幻想阶段,量子计算的雏形开始展示它的无穷潜力,Web …...
HTML语言的数据结构
HTML语言的数据结构 引言 HTML(超文本标记语言)是构建网页的标准语言。尽管HTML本身不是一种编程语言,它为我们提供了一种结构化的信息表示方法,使得网页内容能够有序地展现给用户。HTML的核心在于其标记(标签&#…...
怎么创建一个能在线测试php的html5网页?
代码示例: 一、搭建服务器环境 首先,你需要在服务器上搭建 PHP 运行环境。如果你使用的是 Linux 服务器,可以使用 Apache 或 Nginx 作为 Web 服务器,并安装 PHP 解释器。对于 Windows 服务器,可以使用 WAMP(…...
docker安装elk6.7.1-搜集nginx-json日志
docker安装elk6.7.1-搜集nginx-json日志 如果对运维课程感兴趣,可以在b站上、A站或csdn上搜索我的账号: 运维实战课程,可以关注我,学习更多免费的运维实战技术视频 0.规划 192.168.171.130 nginxfilebeat 192.168.171.131 …...
常见的社交媒体平台有哪些?
社交媒体平台有哪些?在跨境电商和全球营销的过程中,海外社交媒体平台是提高品牌曝光率的重要工具。为了有效管理多个平台的账户,并防止账户之间的关联问题,OKBrow指纹指纹浏览器凭借其强大的多账户管理、防关联技术和隐私保护功能…...
nslookup在内网渗透的使用
1. 什么是 nslookup? nslookup(Name Server Lookup)是一个用于查询 DNS(域名系统)记录的命令行工具。通过该工具,用户可以查询域名的解析结果,例如获取某个域名对应的 IP 地址或查找域名的相关记…...
Linux:修改用户名
Linux:修改用户名 0. 注意事项1.创建并切到临时用户tempuser2.更改用户名3.删除临时用户tempuser 更多内容:XiaoJ的知识星球 在Ubuntu系统中,更改用户名。 0. 注意事项 备份重要数据:在更改用户名之前,建议备份重要数…...
IP协议特性
在网络层中,最重要的协议就是IP协议,IP协议也有两个特性,即地址管理和路由选择。 1、地址管理 由于IPv4地址为4个字节,所以最多可以支持42亿个地址,但在现在,42亿明显不够用了。这就衍生出下面几个机制。…...
开发环境搭建-3:配置 nodejs 开发环境 (fnm+ node + pnpm)
在 WSL 环境中配置:WSL2 (2.3.26.0) Oracle Linux 8.7 官方镜像 node 官网:https://nodejs.org/zh-cn/download 点击【下载】,选择想要的 node 版本、操作系统、node 版本管理器、npm包管理器 根据下面代码提示依次执行对应代码即可 基本概…...
14_音乐播放服务_字典缓存避免重复加载
首先在游戏根入口下创建空节点 F2重命名为BGAudio 作为播放 背景音乐的对象 在BGAudio对象上挂载组件 AudioSource 关掉PlayOnAwake 因为我们需要通过代码来控制音效 音量大小设置为0.5 Ctrl d 再复制一份背景播放对象BGAudio 重命名为UIAudio 作为UI窗口操作的播放对象 创建…...
pgsql中处理数组类型字段
1、代码中存入和读取 需要使用自定义转换器 Slf4j public class ArrayTypeHandler extends BaseTypeHandler<List<String>> {Overridepublic void setNonNullParameter(PreparedStatement ps, int i, List<String> parameter, JdbcType jdbcType)throws SQL…...
新年好(Dijkstra+dfs/全排列)
1135. 新年好 - AcWing题库 思路: 1.先预处理出1,a,b,c,d,e到其他点的单源最短路,也就是进行6次Dijkstra 2.计算以1为起点的这6个数的全排列,哪种排列方式所得距离最小,也可以使用dfs 1.Dijkstradfs #define int long longusing …...
vscode导入模块不显示类型注解
目录结构: utils.py: import random def select_Jrandom(i:int, m:int) -> int:"""随机选择一个不等于 i 的整数"""j iwhile j i:j int(random.uniform(0, m))return jdef clip_alpha(alpha_j:float, H:float, L:f…...
Stable diffusion 都支持哪些模型
Stable Diffusion 支持多种模型,主要包括以下几类: 官方基础模型: SD 1.x 系列(如 Stable Diffusion 1.4、1.5):这是最经典的模型,适合多种通用场景,使用简单且易于上手。SD 2.x 系列…...
C语言操作符(上)
操作符 一,操作符的分类1,算数操作符2,赋值操作符3,逻辑操作符4,条件操作符4,单目操作符5,函数调用和下表访问操作符 二,原码反码补码三,移位操作符1,左移操作…...
Linux TCP 之 RTT 采集与 RTO 计算
我们来看看 Linux TCP 采集 RTT 的函数 tcp_rtt_estimator,看注释,充满了胶着。 但在那个谨慎的年代,这些意味着什么? RTT 最初仅用于 RTO 的计算而不是用于调速,RTO 的计算存在两个问题,如果过估&#x…...
智慧水务管网在线监测平台(Axure高保真原型)
智慧水务管网在线监测平台是一种集成了物联网、大数据、云计算和人工智能等技术的综合管理系统。平台的主要目的是提高水务管理的效率和安全,确保供水系统的稳定运行。 智慧水务管网在线监测平台的主要特点和功能: 综合监测与管理:智慧水务平…...
Kubernetes 架构图和组件
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:历代文学,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计…...
不建模,无代码,如何构建一个3D虚拟展厅?
在数字化浪潮的推动下,众多企业正积极探索线上3D虚拟展厅这一新型展示平台,旨在以更加生动、直观的方式呈现其产品、环境与综合实力。然而,构建一个既专业又吸引人的3D虚拟展厅并非易事,它不仅需要深厚的技术支持,还需…...
MMDetection学习系列(5)——Mask R-CNN深度探索与实战指南
目录 实例分割 R-CNN系列 R-CNN Fast R-CNN Faster R-CNN Mask R-CNN Mask R-CNN 头部结构细节 两阶段架构 损失函数 掩码 RoIAlign Faster R-CNN中的RoIPool Mask R-CNN 中的RoIAlign 实例分割实验 消融研究 定性结果 SOTA 方法比较 Coovally AI模型训练与…...
Oracle SQL: TRANSLATE 和 REGEXP_LIKE 的知识点详细分析
目录 前言1. TRANSLATE2. REGEXP_LIKE3. 实战 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 1. TRANSLATE TRANSLATE 用于替换字符串中指定字符集的每个字符,返回替换后的字符串 逐一映射输入字…...
PHP语言的软件工程
PHP语言的软件工程 引言 软件工程是计算机科学中的一个重要分支,它涉及软件的规划、开发、测试和维护。在现代开发中,PHP作为一种流行的服务器端脚本语言,广泛应用于网页开发和各种企业应用中。本文将深入探讨PHP语言在软件工程中的应用&am…...
量变引起质变
量变引起质变,这个是最本质的规律,重复进行一件事情,这件事情就会越来越完善,越来越完美,哪怕是菜鸟,重复多了就是大佬。 我从说话结结巴巴,到说话流畅,只是用了15天直播写代码&…...
【专题】为2025制定可付诸实践的IT战略规划报告汇总PDF洞察(附原数据表)
原文链接:https://tecdat.cn/?p39055 在当今瞬息万变的商业环境中,制定有效的 IT 战略规划对于企业的成功与可持续发展至关重要。本报告深入探讨了制定 IT 战略规划的关键活动,旨在为企业和决策者提供全面且实用的指导。 Gartner的《为202…...
Linux内核 -- Linux 的 BIO框架
深入理解 Linux 的 BIO 在 Linux 内核中,BIO(Block I/O)是块层(block layer)用于描述块设备 I/O 请求的核心数据结构。它在文件系统与块设备驱动程序之间充当“载体”,负责把数据页及相关元数据从上层提交…...
Spring WebFlux 和 Spring MVC 的主要区别是什么?
Spring WebFlux 和 Spring MVC 都是 Spring 框架中用于构建 Web 应用的模块,但它们在设计理念、编程模型、性能特性等方面存在显著区别。以下是它们的主要区别: ### 1. **编程模型** - **Spring MVC**: - **同步和阻塞**:Spri…...
卸载和安装Git小乌龟、git基本命令
卸载 Git 打开控制面板: 按 Win R 打开运行对话框,输入 control 并按回车键。或直接在功能搜索里搜索“控制面板”。在控制面板中,选择“程序”或“程序和功能”。 查找并卸载 Git: 在程序列表中找到“Git”或“Git for Windows…...
正向代理与反向代理的主要区别
正向代理与反向代理的主要区别 正向代理与反向代理都是中间服务器 特性正向代理反向代理位置客户端和目标服务器之间客户端和后端服务器之间客户端感知客户端知道代理的存在,并主动连接代理客户端不知道代理的存在,认为直接连接目标服务器主要用途隐藏…...
vue组件学习三(插槽)
目录 1、匿名插槽2、渲染作用域3、默认内容4、具名插槽5、条件插槽6、作用域插槽7、具名作用域插槽最后 1、匿名插槽 父组件调用Mycomponet1组件 <Mycomponet1>click me </Mycomponet1>子组件为 <button><slot></slot> </button>最后结…...
Django 的 `Meta` 类和外键的使用
Django 的 Meta 类和外键的使用 1. Meta 类的常用选项2. 外键(ForeignKey)字段的使用2.1 基本用法2.2 ForeignKey 参数2.3 外键删除选项(on_delete) 3. 外键和查询3.1 获取作者的所有书籍3.2 通过书籍查找作者3.3 使用 select_rel…...
DP动态规划字典版递归
https://blog.csdn.net/m0_74408723/article/details/145303575?spm1001.2014.3001.5501 一只青蛙,可以一次跳上1级台阶,也可以一次跳上2级台阶。求这只青蛙跳10级台阶有多少种跳法? 优化上一篇青蛙跳台阶问题。可以采用Map字典存放f(n-1)f(…...
图论 八字码
我们可能惊异于某些技巧。我们认为这个技巧真是巧妙啊。或者有人认为我依靠自己的直觉想出了这个表示方法。非常自豪。我认为假设是很小的时候,比如说小学初中,还是不错的。到高中大学,就有一些不成熟了。因为这实际上是一个竞技。很多东西前…...
Vscode:问题解决办法 及 Tips 总结
Visual Studio Code(简称VSCode)是一个功能强大的开源代码编辑器,广泛用于各种编程语言和开发场景,本博客主要记录在使用 VSCode 进行verilog开发时遇到的问题及解决办法,使用过程中的技巧 文章目录 扩展安装失败调试配…...
Excel 技巧15 - 在Excel中抠图头像,换背景色(★★)
本文讲了如何在Excel中抠图头像,换背景色。 1,如何在Excel中抠图头像,换背景色 大家都知道在PS中可以很容易抠图头像,换背景色,其实Excel中也可以抠简单的图,换背景色。 ※所用头像图片为百度搜索&#x…...
vue项目动态div滚动条滑动到指定位置效果
标题首先我们得明确几个知识点 element.scrollIntoView this.$el.querySelector 文档对象模型Document引用的 querySelector() 方法返回文档中与指定选择器或选择器组匹配的第一个 Element对象。如果找不到匹配项,则返回null。 用来匹配动态document 代码 // t…...
2K高刷电竞显示器怎么选?
2K高刷电竞显示器怎么选?哪个价格适合你?哪个配置适合你呢? 1.HKC G27H2Pro - 2K高刷电竞显示器怎么选 外观设计 - HKC G27H2Pro 2K高刷电竞显示器 电竞风拉满:作为猎鹰系列的一员,背部 “鹰翼图腾” 切割线搭配炎红…...
Codeforces Round 1000 (Div. 2)-C题(树上两个节点不同边数最大值)
https://codeforces.com/contest/2063/problem/C 牢记一棵树上两个节点如果相邻,它们有一条边会重叠,两个节点延伸出去的所有不同边是两个节点入度之和-1而不是入度之和,那么如果这棵树上有三个节点它们的入度都相同,那么优先选择非相邻的两个节点才能使所有不同边的数量最大!!…...
【2024年华为OD机试】 (E卷,200分) - 寻找符合要求的最长子串(JavaScriptJava PythonC/C++)
一、问题描述 给定一个字符串 s,找出满足以下条件的最长子串: 任意一个字符最多出现2次:子串中的每个字符在子串中出现的次数不能超过2次。子串不包含指定字符:子串不能包含输入的指定字符。 请找出满足该条件的最长子串的长度…...
c++常见设计模式之装饰器模式
基础介绍 装饰器模式是结构型设计模式,从字面意思看装饰器设计模式就是用来解决在原有的实现基础上添加一些额外的实现的问题。那么正统的概念是什么呢?装饰器模式允许我们动态的向对象添加新的 行为,同时不改变其原有的结构。它是一种比继承…...
如何在Python中进行数据分析?
数据分析是现代数据科学中的核心环节之一,它能够帮助我们从数据中提取有价值的信息,并为决策提供依据。在Python中,进行数据分析非常方便,因为Python有着丰富的库和工具,能够帮助处理和分析各种类型的数据。本篇文章将…...
linux网络 | 传输层TCP | 认识tcp报头字段与分离
前言: 本节内容继续传输层的讲解, 本节讲解的是tcp协议。 tcp协议是我们日常中最常用的协议。就比如我们浏览网页,我们知道网页时http或者https协议。 其实http或者https底层就是用的tcp协议。tcp协议,全名又称为传输控制协议&…...
定位,用最通俗易懂的方法2.1:CRLB实例
二郎就不设置什么VIP可见啥的了,这样大家都能看到。 如果觉得受益,可以给予一些打赏,也算对原创的一些鼓励,谢谢。 钱的用途:1)布施给他人;2)二郎会有更多空闲时间写教程 起因&…...
深入内核讲明白Android Binder【三】
深入内核讲明白Android Binder【三】 前言一、服务的获取过程内核源码解析1. 客户端获取服务的用户态源码回顾2. 客户端获取服务的内核源码分析2.1 客户端向service_manager发送数据1. binder_ioctl2. binder_ioctl_write_read3. binder_thread_write4. binder_transaction4.1 …...
vim如何显示行号
:set nu 显示行号 :set nonu 不显示行号...
【线性代数】列主元法求矩阵的逆
列主元方法是一种用于求解矩阵逆的数值方法,特别适用于在计算机上实现。其基本思想是通过高斯消元法将矩阵转换为上三角矩阵,然后通过回代求解矩阵的逆。以下是列主元方法求解矩阵 A A A 的逆的步骤: [精确算法] 列主元高斯消元法 步骤 1&am…...
T-SQL语言的数据库编程
T-SQL语言的数据库编程 1. 引言 在信息化迅速发展的今天,数据库已经成为数据管理和使用的重要工具。其中,T-SQL(Transact-SQL)作为微软SQL Server的扩展SQL语言,不仅用于数据查询和管理,还能够进行复杂的…...
【Linux】18.Linux进程控制(2)
文章目录 3. 进程程序替换3.1 单进程版 -- 看看程序替换3.2 替换原理3.3 替换函数函数解释命名理解 3.4 多进程版 -- 验证各种程序替换接口3.5 自定义shell 3. 进程程序替换 3.1 单进程版 – 看看程序替换 makefile mycommand:mycommand.cgcc -o $ $^ -stdc99 .PHONY:clean …...
在 Ubuntu 上安装 MySQL 的详细指南
在Ubuntu环境中安装 mysql-server 以及 MySQL 开发包(包括头文件和动态库文件),并处理最新版本MySQL初始自动生成的用户名和密码,可以通过官方的APT包管理器轻松完成。以下是详细的步骤指南,包括从官方仓库和MySQL官方…...