后端面试题分享第一弹(状态码、进程线程、TCPUDP)

news2025/1/22 16:09:53

后端面试题分享第一弹

1. 如何查看状态码,状态码含义

在Web开发和调试过程中,HTTP状态码是了解请求处理情况的重要工具。

查看状态码的步骤

  1. 打开开发者工具

    • 在大多数浏览器中,您可以通过按下 F12 键或右键单击页面并选择“检查”来打开开发者工具。
  2. 切换到“网络”选项卡

    • 在开发者工具中,切换到“网络”(Network)选项卡,这里会显示所有网络请求的详细信息。
  3. 查找感兴趣的请求

    • 在“网络”选项卡中,找到您感兴趣的请求,点击该请求以查看详细信息。
  4. 查看状态码

    • 在请求的Header详细信息中,您可以看到“状态码”(Status Code),它表示服务器对该请求的响应状态。
      在这里插入图片描述
打开浏览器
按下F12或右键点击页面选择检查
打开开发者工具
切换到网络选项卡
查找感兴趣的请求
点击请求查看详细信息
查看状态码

常见状态码及其含义

以下是常见的HTTP状态码及其含义:

  • 200 OK: 请求成功,服务器成功处理了请求。
  • 301 Moved Permanently: 请求的资源已永久移动到新位置。客户端应使用新的URI重新发起请求。
  • 400 Bad Request: 服务器无法理解请求的语法,通常是由于客户端发送的请求有误。
  • 403 Forbidden: 服务器拒绝了对请求的访问,可能是由于权限不足或资源被禁止访问等原因。
  • 404 Not Found: 请求的资源不存在,服务器无法找到请求的资源。
  • 500 Internal Server Error: 服务器遇到了意外错误,无法完成请求。
  • 502 Bad Gateway: 作为网关或代理服务器的服务器从上游服务器接收到无效的响应。

状态码分类

HTTP状态码分为五类,每类状态码的第一个数字表示其类别:

  1. 1xx(信息性状态码): 表示请求已被接收,继续处理。
  2. 2xx(成功状态码): 表示请求已成功被服务器接收、理解并接受。
  3. 3xx(重定向状态码): 表示需要客户端采取进一步的操作才能完成请求。
  4. 4xx(客户端错误状态码): 表示客户端可能出错了,妨碍了服务器的处理。
  5. 5xx(服务器错误状态码): 表示服务器在处理请求的过程中发生了错误。

2. 进程和线程的比较

在这里插入图片描述

进程和线程的定义

  • 进程(Process): 进程是操作系统分配资源的基本单位。每个进程都有独立的内存空间、文件描述符和系统资源。一个进程可以包含多个线程。
  • 线程(Thread): 线程是进程中的一个执行单元,是CPU调度的基本单位。线程共享进程的内存空间和资源,但拥有独立的执行栈和程序计数器。

进程和线程的比较

以下是进程和线程的主要区别:

特性进程线程
定义操作系统分配资源的基本单位进程中的一个执行单元
资源占用独立的内存空间和系统资源共享进程的内存空间和资源
创建和销毁开销较大,涉及内存分配和资源管理较小,仅需分配栈和程序计数器
通信方式进程间通信(IPC)机制,如管道、消息队列等直接共享内存,通信更高效
并发性进程间切换开销大,并发性较低线程间切换开销小,并发性较高
独立性进程间相互独立,一个进程崩溃不影响其他进程线程共享资源,一个线程崩溃可能导致整个进程崩溃
应用场景适合需要高隔离性和安全性的任务适合需要高并发和资源共享的任务

进程和线程的优缺点

进程的优点
  • 独立性: 进程间相互独立,一个进程崩溃不会影响其他进程。
  • 安全性: 进程间资源隔离,安全性较高。
进程的缺点
  • 资源开销大: 创建和销毁进程的开销较大,占用更多的系统资源。
  • 通信复杂: 进程间通信需要使用复杂的IPC机制。
线程的优点
  • 资源开销小: 创建和销毁线程的开销较小,占用较少的系统资源。
  • 通信高效: 线程间可以直接共享内存,通信更高效。
  • 并发性高: 线程间切换开销小,适合高并发场景。
线程的缺点
  • 安全性低: 线程共享资源,一个线程崩溃可能导致整个进程崩溃。
  • 调试复杂: 多线程程序的调试和同步较为复杂。
进程和线程的比较
定义
资源占用
创建和销毁开销
通信方式
并发性
独立性
应用场景
进程: 操作系统分配资源的基本单位
线程: 进程中的一个执行单元
进程: 独立的内存空间和系统资源
线程: 共享进程的内存空间和资源
进程: 开销大
线程: 开销小
进程: IPC机制
线程: 共享内存
进程: 并发性低
线程: 并发性高
进程: 独立性高
线程: 独立性低
进程: 高隔离性和安全性任务
线程: 高并发和资源共享任务

3. TCP和UDP的区别

TCP和UDP的主要区别

在这里插入图片描述

以下是TCP和UDP的主要区别:

特性TCPUDP
连接方式面向连接,通信前需建立可靠连接无连接,直接发送数据报
可靠性提供可靠的数据传输,支持确认、重传机制不提供可靠性保证,可能存在丢包或乱序
有序性保证数据的有序性,按发送顺序接收不保证数据的有序性,接收顺序可能不一致
控制机制支持拥塞控制和流量控制无拥塞控制和流量控制
传输效率传输效率较低,因需维护连接和确认机制传输效率较高,因无连接和确认开销
适用场景适合对可靠性要求高的应用,如网页、邮件适合对实时性要求高的应用,如视频、语音

TCP和UDP的详细比较

1. 面向连接 vs 无连接
  • TCP: 是一种面向连接的协议。在通信之前,TCP需要在发送方和接收方之间建立一个可靠的连接。连接建立后,双方才能进行数据传输。
  • UDP: 是一种无连接的协议。发送方直接将数据报发送给接收方,无需建立连接。这种方式减少了通信的开销,但缺乏可靠性保障。
2. 可靠性
  • TCP: 提供可靠的数据传输。它使用确认机制、序列号和重传来确保数据的可靠性。如果数据丢失或损坏,TCP会重新发送丢失的数据。
  • UDP: 不提供可靠性保证。它不进行重传或确认,因此在传输过程中可能会有丢包或乱序的情况发生。
3. 有序性
  • TCP: 保持数据的有序性,确保接收方按照发送顺序接收数据。
  • UDP: 不保证数据的有序性,接收方可能会按照不同的顺序接收到数据。
4. 控制机制
  • TCP: 具有拥塞控制和流量控制机制。拥塞控制用于避免网络拥塞,流量控制用于协调发送方和接收方的数据传输速率。
  • UDP: 无拥塞控制和流量控制机制,数据传输完全由应用层控制。
5. 传输效率
  • TCP: 由于需要维护连接和确认机制,传输效率较低,适合对可靠性要求高的场景。
  • UDP: 由于无连接和确认开销,传输效率较高,适合对实时性要求高的场景。
6. 适用场景
  • TCP: 适合对可靠性要求高的应用,如网页浏览、电子邮件、文件传输等。
  • UDP: 适合对实时性要求高的应用,如视频流、语音通话、在线游戏等。
TCP和UDP的比较
连接方式
可靠性
有序性
控制机制
传输效率
适用场景
TCP: 面向连接
UDP: 无连接
TCP: 可靠传输
UDP: 不可靠传输
TCP: 保证有序性
UDP: 不保证有序性
TCP: 拥塞控制和流量控制
UDP: 无控制机制
TCP: 传输效率低
UDP: 传输效率高
TCP: 网页邮件文件传输
UDP: 视频语音在线游戏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2280449.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络通信---MCU移植LWIP

使用的MCU型号为STM32F429IGT6,PHY为LAN7820A 目标是通过MCU的ETH给LWIP提供输入输出从而实现基本的Ping应答 OK废话不多说我们直接开始 下载源码 LWIP包源码:lwip源码 -在这里下载 ST官方支持的ETH包:ST-ETH支持包 这里下载 创建工程 …

CSS笔记基础篇02——浮动、标准流、定位、CSS精灵、字体图标

黑马程序员视频地址: 前端Web开发HTML5CSS3移动web视频教程https://www.bilibili.com/video/BV1kM4y127Li?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p70https://www.bilibili.com/video/BV1kM4y127Li?vd_source…

Linux:进程(三)

1. 进程创建补充 fork之后父子两个执行流分别执行,fork之后谁谁先执行由调度器来决定。 一般,父子代码共享。当父子不再写入时,数据也是共享的,但是当有一方要写入,就触发写时拷贝。 fork调用失败的原因 1. 系统中有…

2025年1月21日刷题记录

1.leetcode1768题目 链接:1768. 交替合并字符串 - 力扣(LeetCode) 代码: class Solution { public:string mergeAlternately(string word1, string word2) {string word3;int a word1.size(), b word2.size();int i 0, j 0…

Mysql触发器(学习自用)

一、介绍 二、触发器语法 注意:拿取新的数据时用new,旧数据用old。

wireshark工具简介

目录 1 wireshark介绍 2 wireshark抓包流程 2.1 选择网卡 2.2 停止抓包 2.3 保存数据 3 wireshark过滤器设置 3.1 显示过滤器的设置 3.2 抓包过滤器 4 wireshark的封包列表与封包详情 4.1 封包列表 4.2 封包详情 参考文献 1 wireshark介绍 wireshark是非常流行的网络…

「2024·我的成长之路」:年终反思与展望

文章目录 1. 前言2.创作历程2.1 摆烂期2.2 转变期3. 上升期 2. 个人收获3.经验分享4. 展望未来 1. 前言 2025年1月16日,2024年博客之星入围公布,很荣幸获得了这次入围的机会。2024年对我个人是里程碑的一年,是意义非凡的一年,是充…

【RAG落地利器】向量数据库Chroma入门教程

安装部署 官方有pip安装的方式,为了落地使用,我们还是采用Docker部署的方式,参考链接来自官方部署: https://cookbook.chromadb.dev/running/running-chroma/#docker-compose-cloned-repo 我们在命令终端运行: docker run -d --…

电阻电位器可调电阻信号隔离变送器典型应用

电阻电位器可调电阻信号隔离变送器典型应用 产品描述: 深圳鑫永硕科技的XYS-5587系列是一进一出线性电子尺(电阻/电位计信号及位移)信号隔离变送器,是将输入电阻,线性电子尺,角度位移传感器信号进行采集,隔离,放大并转换成模拟量信号的小型仪表设备,并以…

[创业之路-259]:《向流程设计要效率》-1-让成功成熟业务交给流程进行复制, 把创新产品新业务新客户交给精英和牛人进行探索与创造

标题:成功与创新的双轨并行:以流程复制成熟,以精英驱动新知 在当今这个日新月异的商业环境中,企业要想持续繁荣发展,就必须在稳定与创新之间找到完美的平衡点。一方面,成熟业务的稳定运营是企业生存和发展的…

模拟飞行入坑(五) P3D 多通道视角配置 viewgroup

背景: P3D进行多个屏幕显示的时候,如果使用英伟达自带的屏幕融合成一个屏,或者使用P3D单独拉伸窗口,会使得P3D的画面被整体拉伸,又或者,当使用Multichannel进行多个设备联动时,视角同步组合需要配置&#…

Java中的错误与异常详解

Java中的错误与异常详解 Java提供了一种机制来捕获和处理程序中的异常和错误。异常和错误都继承自 Throwable 类,但它们有着不同的用途和处理方式。 1. Error(错误) Error 是程序无法处理的严重问题,通常由 JVM(Java…

免费开源的三维建模软件Blender

软件介绍 Blender是一款功能强大且免费开源的三维建模、动画制作和渲染软件,广泛应用于影视制作、游戏开发、建筑可视化、教育及艺术创作等多个领域。 核心功能 Blender是一款全能型3D软件,涵盖了从建模、动画到渲染、后期合成的完整工作流程。 1、建…

ElasticSearch DSL查询之排序和分页

一、排序功能 1. 默认排序 在 Elasticsearch 中,默认情况下,查询结果是根据 相关度 评分(score)进行排序的。我们之前已经了解过,相关度评分是通过 Elasticsearch 根据查询条件与文档内容的匹配程度自动计算得出的。…

iOS 网络请求: Alamofire 结合 ObjectMapper 实现自动解析

引言 在 iOS 开发中,网络请求是常见且致其重要的功能之一。从获取资料到上传数据,出色的网络请求框架能夠大大提升开发效率。 Alamofire 是一个极具人气的 Swift 网络请求框架,提供了便据的 API 以完成网络请求和响应处理。它支持多种请求类…

面向对象编程——对象实例化

在python中,对象实例化是根据类的定义创建具体对象的过程。也就是将类当成模板,从而定义了对象的结构和行为,而实例化则是根据这个模板创建具体的对象实例。每个实例都有自己独立的状态,但是却共享类的结构和方法。 代码&#xff…

阿里云-银行核心系统转型之业务建模与技术建模

业务领域建模包括业务建模和技术建模,整体建模流程图如下: 业务建模包括业务流程建模和业务对象建模 业务流程建模:通过对业务流程现状分析,结合目标核心系统建设能力要求,参考行业建 模成果,形成结构化的…

Unreal Engine 5 C++ Advanced Action RPG 九章笔记

第九章 Hero Special Abilities 2-Challenges Ahead(前方的挑战) 本次章节主要解决三件问题 怒气能力特殊武器能力治疗石怒气能力 对于这个能力我们需要处理它的激活和持械状态,当没有怒气时应该取消该能力当这个能力激活时,我希望角色是进入无敌状态的,不会受到伤害怒气状…

cursor重构谷粒商城05——docker容器化技术快速入门【番外篇】

前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。 本项目将基于谷粒商城…

【FPGA】MIPS 12条整数指令【1】

目录 修改后的仿真结果 修改后的完整代码 实现bgtz、bltz、jalr 仿真结果(有问题) bltz------并未跳转,jCe? 原因是该条跳转语句判断的寄存器r7,在该时刻并未被赋值 代码(InstMem修改前) i…