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

后端面试题分享第一弹

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: 视频语音在线游戏

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

7、数组知识点汇总

一、 数组基本概念 程序算法数据结构 算法:解决程序的流程步骤数据结构:将数据按照某种特定的结构来存储设计良好的数据结构会导致良好的算法。ArrayList、LinkedList 数组是最简单的数据结构。 1、数组: 数组:存放同一种类型…

计算机网络 (48)P2P应用

前言 计算机网络中的P2P(Peer to Peer,点对点)应用是一种去中心化的网络通信模式,它允许设备(或节点)直接连接并共享资源,而无需传统的客户端-服务器模型。 一、P2P技术原理 去中心化架构&#…

【技巧】优雅的使用 pnpm+Monorepo 单体仓库构建一个高效、灵活的多项目架构

单体仓库(Monorepo)搭建指南:从零开始 单体仓库(Monorepo)是一种将多个相关项目集中管理在一个仓库中的开发模式。它可以帮助开发者共享代码、统一配置,并简化依赖管理。本文将通过实际代码示例&#xff0…

包文件分析器 Webpack Bundle Analyzer

webpack-bundle-analyzer 是一个非常有用的工具,用于可视化和分析 Webpack 打包生成的文件。这使得开发者能够更好地理解应用的依赖关系、包的大小,以及优化打包的机会。以下是关于 webpack-bundle-analyzer 的详细介绍,包括它的安装、使用以…

重学SpringBoot3-WebClient配置与使用详解

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞??收藏评论 重学SpringBoot3-WebClient配置与使用详解 1. 简介2. 环境准备 2.1 依赖配置 3. WebClient配置 3.1 基础配置3.2 高级配置3.3 retrieve()和exchange()区别 4. 使用示例 4.1 基本请求操…

持续升级《在线写python》小程序的功能,文章页增加一键复制功能,并自动去掉html标签

增加复制按钮后的界面是这样的 代码如下&#xff1a; <template><view><x-header></x-header><view class"" v-if"article_info"><view class"kuai bgf"><view class"ac fs26"><img sr…

今天也是记录小程序进展的一天(破晓时8)

嗨嗨嗨朋友们&#xff0c;今天又来记录一下小程序的进展啦&#xff01;真是太激动了&#xff0c;项目又迈出了重要的一步&#xff0c;231啦&#xff01;感觉每一步的努力都在积累&#xff0c;功能逐渐完善&#xff0c;离最终上线的目标越来越近了。大家一直支持着这个项目&…

启动虚拟机中客户机后导致电脑蓝屏的解决办法

不考虑重新安装虚拟机的解决办法有两种&#xff1a; vmx文件破损时使用 1&#xff09;删除CentOS 64-bit.vmx文件 2&#xff09;打开vmware-0.log文件&#xff0c;找到CONFIGURATION 和 USER DEFAULTS 并把这两个之间的内容拷贝出来 删除框出来的部分&#xff0c;复制框出来的…

Word2Vec中的CBOW模型训练原理详细解析

Word2Vec中的CBOW模型训练原理详细解析 1. CBOW模型概述 CBOW模型的训练目标是利用一个单词周围的上下文单词来预测该单词本身。具体来说&#xff0c;给定当前单词的上下文单词&#xff0c;通过训练神经网络来最大化当前单词出现在这些上下文单词中的概率。 2. 模型结构 CB…

Android Studio打包APK

1.导出APK安装包 如果是首次打包&#xff0c;Create new 单击蓝色对话框右边文件夹&#x1f4c2;图标 &#xff0c;选择密钥保存路径&#xff0c;然后在下方File name对话框中填写您想要名称&#xff0c;再点击OK回到密钥创建对话框。 在此对话框中填写密码&#xff08;Passwo…

MySql字段的值是以逗号隔开的另一个表的主键关联查询

查询sql SELECT s.student_id, s.name, c.name as course_name FROM student s INNER JOIN course c ON FIND_IN_SET(c.course_id, s.course_id) > 0 WHERE 1 1;相似sql -- 翻译&#xff08;需要带条件&#xff0c;可用于字典翻译&#xff0c;但条件需要注意唯一性&#…

windows git bash 使用zsh 并集成 oh my zsh

参考了 这篇文章 进行配置&#xff0c;记录了自己的踩坑过程&#xff0c;并增加了 zsh-autosuggestions 插件的集成。 主要步骤&#xff1a; 1. git bash 这个就不说了&#xff0c;自己去网上下&#xff0c;windows 使用git时候 命令行基本都有它。 主要也是用它不方便&…

QD Laser携“Lantana”激光器参展SPIE光子学西部展2025,聚焦紧凑型设计

据悉&#xff0c;QD Laser公司将在2025年SPIE光子学西部展览会上展出其最新产品——世界最小一体化紧凑型可见光激光器“Lantana”。该展会将于1月28日至30日在旧金山的Moscone中心举行。 在展会期间&#xff0c;QD Laser公司将现场展示这款超小型、轻便设备—— “Lantana”。…

Ubuntu 22.04 TLS 忘记root密码,重启修改的解决办法

1.想办法进入这个界面&#xff0c;我这里是BIOS引导的是按Esc按一下就行&#xff0c;UEFI的貌似是按Shift不得而知&#xff0c;没操作过。下移到Advanced options for Ubuntu&#xff0c;按enter 2.根据使用的内核版本&#xff0c;选择带「recovery mode」字样的内核版本&#…

Proteus-8086调试汇编格式的一点心得

这阵子开始做汇编的微机实验&#xff08;微机原理与接口技术题解及实验指导&#xff0c;吴宁版本13章&#xff09;&#xff0c;中间出了挺多问题&#xff0c;解决后记录下。 先上电路图 用子电路来仿真发现仿真的时候子电路这块根本没有高低电平输出&#xff0c;只好把子电路拿…

外部flash烧写算法学习笔记(一)

一&#xff0c;STM32CubeProgrammer STM32下载编程工具 | STM32CubeProg介绍、下载、安装和使用教程 - 知乎 1.使用速览 2.外部烧写 二&#xff0c;QSPI外部烧写算法制作 STM32H7的花式玩转SPI Flash章节也更新了&#xff0c;含MDK下载算法制作和STM32CubeProg下载算法制作 …

在centos上编译安装opensips【初级-默认安装】

环境&#xff1a;centos9 last opensips3.2 dnf update -y dnf install -y gcc make git automake libtool pcre-devel libxml2-devel \libcurl-devel postgresql-devel \bzip2-devel zlib-devel ncurses-devel libuuid-devel \libpcap-devel # 有报错的直接删除cd /usr/lo…

【Prometheus】PromQL进阶用法

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Fabric区块链网络搭建:保姆级图文详解

目录 前言1、项目环境部署1.1 基础开发环境1.2 网络部署 2、后台环境2.1、环境配置2.2、运行springboot项目 3、PC端3.1、安装依赖3.2、修改区块链网络连接地址3.3、启动项目 前言 亲爱的家人们&#xff0c;创作很不容易&#xff0c;若对您有帮助的话&#xff0c;请点赞收藏加…

【SpringCloud】黑马微服务学习笔记

目录 1. 关于微服务 ?1.1 微服务与单体架构的区别 ?1.2 SpringCloud 技术 2. 学习前准备 ?2.1 环境搭建 ?2.2 熟悉项目 3. 正式拆分 ?3.1 拆分商品功能模块 ?3.2 拆分购物车功能模块 4. 服务调用 ?4.1 介绍 ?4.2 RustTemplate?的使用 4.3 服务治理-注册中…