当前位置: 首页 > news >正文

【JavaWeb】详细讲解 HTTP 协议

文章目录

  • 一、HTTP简介
    • 1.1 概念
    • 1.2 特点
  • 二、协议
    • 2.1 HTTP-请求协议
      • (1)GET方式
      • (2)POST方式
      • (3)GET和POST的区别:
    • 2.2 HTTP-响应协议
      • (1)格式
      • (2)响应状态码

一、HTTP简介

1.1 概念

HTTP:
超文本传输协议,规定了浏览器与服务器之间数据传输的规则。请求/响应数据时,都必须按照固定的格式进行数据传输。

我们可以打开浏览器,点击F12打开开发者工具,点击Network来查看http协议的数据传输格式
在这里插入图片描述

浏览器向服务器进行请求
在这里插入图片描述

服务器向浏览器进行响应
在这里插入图片描述

1.2 特点

  • 基于TCP协议: 面向连接,安全
  • 基于请求-响应模型: 一次请求对应一次响应(先请求后响应)
  • HTTP协议是无状态协议: 对于数据没有记忆能力。每次请求-响应都是独立的

无状态:
客户端发送HTTP请求给服务端之后,服务端根据请求响应数据,响应完后,不会记录任何信息

  • 缺点: 多次请求间不能共享数据
  • 优点: 速度快

二、协议

请求协议:浏览器将数据以请求格式发送到服务器

  • 包括:请求行、请求头 、请求体

响应协议:服务器将数据以响应格式返回给浏览器

  • 包括:响应行 、响应头 、响应体

2.1 HTTP-请求协议

浏览器和服务器是按照HTTP协议进行数据通信的。

请求方式请求说明
GET获取资源。向特定的资源发出请求。例:http://www.baidu.com/s?wd=itheima
POST传输实体主体。向指定资源提交数据进行处理请求(例:上传文件),数据被包含在请求体中。
OPTIONS返回服务器针对特定资源所支持的HTTP请求方式。因为并不是所有的服务器都支持规定的方法,为了安全有些服务器可能会禁止掉一些方法,例如:DELETE、PUT等。那么OPTIONS就是用来询问服务器支持的方法。
HEAD获得报文首部。HEAD方法类似GET方法,但是不同的是HEAD方法不要求返回数据。通常用于确认URI的有效性及资源更新时间等。
PUT传输文件。PUT方法用来传输文件。类似FTP协议,文件内容包含在请求报文的实体中,然后请求保存到URL指定的服务器位置。
DELETE删除文件。请求服务器删除Request-URI所标识的资源
TRACE追踪路径。
CONNECT要求用隧道协议连接代理。HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器

(1)GET方式

在这里插入图片描述

  1. 请求行:
    HTTP请求中的第一行数据。由请求方式、资源路径、协议/版本组成(之间使用空格分隔
    在这里插入图片描述

  2. 请求头 :
    第二行开始,上图黄色部分内容就是请求头。格式为key: value形式

常见的HTTP请求头有:

  1. Host: 表示请求的主机名
  2. User-Agent: 浏览器版本。
    例如:Chrome浏览器的标识类似Mozilla/5.0 …Chrome/79 ,IE浏览器的标识类似Mozilla/5.0
    (Windows NT …)like Gecko
  3. Accept:表示浏览器能接收的资源类型,如text/*,image/*或者*/*表示所有;
  4. Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页;
  5. Accept-Encoding:表示浏览器可以支持的压缩类型,例如gzip, deflate等。
  6. Content-Type:请求主体的数据类型
  7. Content-Length:数据主体的大小(单位:字节)
  1. 请求体:
    存储请求参数

GET请求的请求参数在请求行中,故不需要设置请求体

(2)POST方式

在这里插入图片描述

  1. 请求行(红色部分):包含请求方式、资源路径、协议/版本
    ○ 请求方式:POST
    ○ 资源路径:/brand
    ○ 协议/版本:HTTP/1.1
  2. 请求头(黄色部分)
  3. 请求体(绿色部分):存储请求参数

请求体和请求头之间是有一个空行隔开(作用:用于标记请求头结束)

(3)GET和POST的区别:

区别方式GET请求POST请求
请求参数请求参数在请求行中。例:/brand/findAll?name=OPPO&status=1请求参数在请求体中
请求参数长度请求参数长度有限制(浏览器不同限制也不同)请求参数长度没有限制
安全性安全性低。原因:请求参数暴露在浏览器地址栏中安全性相对高

2.2 HTTP-响应协议

(1)格式

在这里插入图片描述

  1. 响应行:
    响应数据的第一行。响应行由协议及版本、响应状态码、状态码描述组成
    ○ 协议/版本:HTTP/1.1
    ○ 响应状态码:200
    ○ 状态码描述:OK
  2. 响应头:
    响应数据的第二行开始,格式为key:value形式。

因为http是个无状态的协议,所以可以在请求头和响应头中设置一些信息和想要执行的动作。

常见的HTTP响应头有:

  1. Content-Type:表示该响应内容的类型,例如text/html,image/jpeg ;
  2. Content-Length:表示该响应内容的长度(字节数);
  3. Content-Encoding:表示该响应压缩算法,例如gzip ;
  4. Cache-Control:指示客户端应如何缓存,例如max-age=300表示可以最多缓存300秒 ;
  5. Set-Cookie: 告诉浏览器为当前页面所在的域设置cookie ;
  1. 响应体
    响应数据的最后一部分,存储响应的数据

响应体和响应头之间有一个空行隔开(作用:用于标记响应头结束)

(2)响应状态码

状态码分类说明
1xx响应中 — 临时状态码。表示请求已经接受,告诉客户端应该继续请求或者如果已经完成则忽略
2xx成功 — 表示请求已经被成功接收,处理已完成
3xx重定向 — 重定向到其它地方,让客户端再发起一个请求以完成整个处理
4xx客户端错误 — 处理发生错误,责任在客户端,如:客户端的请求一个不存在的资源,客户端未被授权,禁止访问等
5xx服务器端错误 — 处理发生错误,责任在服务端,如:服务端抛出异常,路由出错,HTTP版本不支持等
状态码英文描述解释
200OK客户端请求成功,即处理成功,这是我们最想看到的状态码
302Found指示所请求的资源已移动到由Location响应头给定的 URL,浏览器会自动重新访问到这个页面
304Not Modified告诉客户端,你请求的资源至上次取得后,服务端并未更改,你直接用你本地缓存吧。隐式重定向
400Bad Request客户端请求有语法错误,不能被服务器所理解
403Forbidden服务器收到请求,但是拒绝提供服务,比如:没有权限访问相关资源
404Not Found请求资源不存在,一般是URL输入有误,或者网站资源被删除了
405Method Not Allowed请求方式有误,比如应该用GET请求方式的资源,用了POST
428Precondition Required服务器要求有条件的请求,告诉客户端要想访问该资源,必须携带特定的请求头
429Too Many Requests指示用户在给定时间内发送了太多请求(“限速”),配合 Retry-After(多长时间后可以请求)响应头一起使用
431Request Header Fields Too Large请求头太大,服务器不愿意处理请求,因为它的头部字段太大。请求可以在减少请求头域的大小后重新提交。
500Internal Server Error服务器发生不可预期的错误。服务器出异常了,赶紧看日志去吧
503Service Unavailable服务器尚未准备好处理请求,服务器刚刚启动,还未初始化好

状态码大全:https://cloud.tencent.com/developer/chapter/13553

相关文章:

【JavaWeb】详细讲解 HTTP 协议

文章目录 一、HTTP简介1.1 概念1.2 特点 二、协议2.1 HTTP-请求协议(1)GET方式(2)POST方式(3)GET和POST的区别: 2.2 HTTP-响应协议(1)格式(2)响应…...

非阻塞I/O操作

非阻塞I/O操作是一种I/O操作模式,在这种模式下,应用程序在发出I/O请求后不会立即等待操作完成,而是继续执行其他任务。当I/O操作完成或可以进行时,系统会通知应用程序。这种操作模式可以提高程序的效率和响应能力,因为…...

Redis面试问题详解2

Redis面试问题详解2 一、分布式锁 分布式锁主要用于解决多服务器之间的并发问题。Redis通过SETNX命令实现分布式锁,确保同一时间只有一个线程可以获取锁。 1. 基本实现 获取锁 使用SETNX命令设置锁,并设置一个过期时间,避免死锁。 Stri…...

【软件测试】性能测试概念篇

​​1. 性能测试的定义​​ 性能测试是通过模拟真实用户行为、系统负载或极端条件,评估软件系统在特定场景下的​​响应能力、稳定性、资源消耗及扩展性​​的过程。其核心目标是: ​​验证系统容量​​:确保系统在预期负载下(如…...

在Pycharm配置stable diffusion环境(使用conda虚拟环境)

自己配环境的时候也没个指南,少安装包或者包之间版本冲突是再按正常不过的事了,真的令人不胜其烦。 下面记录一下自己在conda虚拟环境配置stable diffusion的代码环境,希望能帮大家少踩几个坑。 虚拟环境配置 默认你已经安装了annaconda&am…...

Uniapp微信小程序:轻松获取用户头像和昵称

参考文献:Uniapp微信小程序:轻松获取用户头像和昵称-百度开发者中心 (baidu.com) uni.login({ provider: weixin, success: function (loginRes) { console.log(loginRes.authResult); // 打印登录凭证 // 使用登录凭证获取用户信息 uni.getUserInfo({ …...

Qt核心知识总结

Qt核心知识总结 Qt 是一个功能强大、跨平台的 C 应用程序开发框架,广泛应用于图形用户界面(GUI)应用程序的开发,同时也支持非 GUI 应用程序的开发。本文将从入门到精通的角度,详细解析 Qt 的核心知识点,帮…...

Doris的向量化执行如何支撑分布式架构和复杂查询

Doris 的向量化执行能力与其 分布式架构 和 复杂查询优化 深度结合,通过 批处理 列式计算 分布式调度 的协同设计,解决传统分布式数据库在复杂查询场景下的性能瓶颈。以下是具体原理展开: 一、向量化如何适配分布式架构? Doris…...

无源蓝牙技术与传统RFID(射频识别)对比

百事可乐的无源蓝牙技术与传统RFID(射频识别)虽然都属无线通信技术,但在工作原理、应用场景和技术性能上存在显著差异。以下是深度对比分析: ​一、核心技术差异​ ​维度​​无源蓝牙(如百事方案)​​​R…...

Operator 开发入门系列(一):Hello World

背景 我们公司最近计划将产品迁移到 Kubernetes 环境。 为了更好地管理和自动化我们的应用程序,我们决定使用 Kubernetes Operator。 本系列博客将记录我们学习和开发 Operator 的过程,希望能帮助更多的人入门 Operator 开发。 目标读者 对 Kubernete…...

Immich图库本地部署与远程管理:打造你的专属照片云服务

文章目录 前言1.关于Immich2.安装Docker3.本地部署Immich4.Immich体验5.安装cpolar内网穿透6.创建远程链接公网地址7.使用固定公网地址远程访问 前言 小伙伴们,你们好呀!今天要给大家带来一个超炫的技能——让你家的电脑秒变私人云相册,并且…...

OpenShift AI + DeepSeek+IBM CP4BA:实现AI业务自动化中台

一、OpenShift AI DeepSeek 1、什么是 OpenShift AI? OpenShift AI(前身为 Red Hat Open Data Hub)是 Red Hat OpenShift 平台上的一套 AI/ML 工具集,基于 Kubernetes,为企业提供可扩展的机器学习平台,可…...

游戏引擎学习第229天

仓库:https://gitee.com/mrxiao_com/2d_game_5 回顾上次内容并介绍今天的主题 上次留下的是一个非常简单的任务,至少第一步是非常简单的。我们需要在渲染器中加入排序功能,这样我们的精灵(sprites)才能以正确的顺序显示。为此我…...

genhtml 工具使用说明

genhtml 工具使用说明 简介 genhtml 是一个用于生成 HTML 格式代码覆盖率报告的工具,基于 lcov 生成的覆盖数据文件(如 lcov.info)生成交互式 HTML 报告。它支持多种自定义选项,可控制报告内容、样式、输出格式等。 基本用法 ge…...

C++11_2

文章目录 前言一、新的类功能——新的默认成员函数1. 编译器默认生成的移动构造与移动赋值2. 手动提供移动构造或移动赋值的影响 二、可变参数模板1. 多参数1. 可变参数模板的基础 2. 可变参数模板的展开(1)递归展开参数包(2)使用…...

HTML语义化与无障碍设计

HTML 语义化与无障碍设计&#xff1a;构建包容且高效的网页体验 引言 在我的前端开发学习旅程中&#xff0c;起初将 HTML 仅视为页面布局的工具&#xff0c;大量使用无语义的 <div> 和 <span>。直到在一篇技术博客当中了解到&#xff0c;作者在一次团队项目中&am…...

Ubuntu多用户VNC远程桌面环境搭建:从零开始的完整指南

引言: 在当今远程工作盛行的时代,搭建一个安全、高效的多用户远程桌面环境变得越来越重要。本文将为您提供一个从零开始的完整指南,教您如何在Ubuntu系统上搭建多用户VNC远程桌面环境。无论您是系统管理员、开发团队负责人,还是想要为家庭成员提供远程访问的技术爱好者,这…...

Electron 中引入MessageChannel 大大缩短不同渲染进程和 Webview 各组件 1o1的通信链路

背景 在 electron 开发中&#xff0c;也不可避免地遇到端到端的通信问题&#xff0c;Electron 已经内置一些通信 API&#xff0c;但是实际用下来会发现&#xff0c;在引入 Webview 之后&#xff0c;通信链路会很长&#xff0c;参考 利用本地 Express Web 服务解决复杂的 Elec…...

Vscode开发Vue项目NodeJs启动报错处理

文章目录 背景一、npm启动报错报错信息定位原因处理方案第一步、下载安装高版本 二、node 无法识别报错信息处理方案定位原因第一步、检测环境变量第二步、重新开启界面 背景 使用Vscode开发Vue项目&#xff0c;使用到NodeJs&#xff0c;记录出现的问题及处理方案&#xff0c;…...

AI agents系列之AI工作流和AI智能体对比

在人工智能(AI)快速发展的今天,理解AI工作流和AI智能体之间的区别对于有效利用这些技术至关重要。本文将深入探讨AI工作流的类型,解析AI智能体的概念,并重点比较二者的关键差异。 1. 智能体 vs 工作流 关于“智能体”的定义众说纷纭。有些客户将其视为完全自主的系统,能…...

如何恢复极狐GitLab?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 恢复极狐GitLab (BASIC SELF) 极狐GitLab 提供了一个命令行界面来恢复整个安装&#xff0c;足够灵活以满足您的需求。 恢复…...

基于X86/Nvidia+FPGA大模型具身智能机器人控制器解决方案,同时拥有算力与实时的便利

2025年成为人形机器人产业化元年&#xff0c;行业已突破早期实验室研发阶段&#xff0c;进入"场景验证量产爬坡"新周期&#xff0c;预计2031年具身智能市场规模有望突破万亿元。这一进程的背后&#xff0c;是硬件算力、实时控制、环境适应等底层技术的系统性突破——…...

MATLAB项目实战(一)

题目&#xff1a; 某公司有6个建筑工地要开工&#xff0c;每个工地的位置&#xff08;用平面坐标系a&#xff0c;b表示&#xff0c;距离单位&#xff1a;km&#xff09;及水泥日用量d(t)由下表给出&#xff0e;目前有两个临时料场位于A(5,1)&#xff0c;B(2,7)&#xff0c;日储…...

PyCharm Flask 使用 Tailwind CSS 配置

使用 Tailwind CSS 步骤 1&#xff1a;初始化项目 在 PyCharm 终端运行&#xff1a;npm init -y安装 Tailwind CSS&#xff1a;npm install -D tailwindcss postcss autoprefixer初始化 Tailwind 配置文件&#xff1a;npx tailwindcss init这会生成 tailwind.config.js。 步…...

Mybtis和Mybatis-Plus区别

MyBatis 和 MyBatis-Plus 是 Java 中常用的持久层框架&#xff0c;MyBatis-Plus 是在 MyBatis 基础上增强的工具包&#xff0c;让开发更便捷、高效。下面是两者主要的区别&#xff1a; ✅ 核心区别总结&#xff1a; 特性MyBatisMyBatis-Plus配置复杂度需要手写大量 XML 或注解…...

《Learning Langchain》阅读笔记2-基于 Gemini 的 Langchain PromptTemplate 实现方式

本文将使用Gemini实现《Learning Langchain》中的PromptTemplate 实现方式&#xff0c;替代书中的调用openai API&#xff0c;白嫖太香了&#xff01; 调试步骤 我们首先还是先在本地调试是否可以调用Gemini API&#xff1a; import getpass import osif "GOOGLE_API_K…...

LVS+keepalived搭建高可用架构

背景&#xff1a;最近在搭建LVSkeepalived的高可用架构&#xff0c;中间遇到了一些坑比较让人头疼&#xff0c;此处重要就安装部署的步骤进行记录&#xff0c;特别是遇到坑进行说明&#xff0c;希望能对有需要的同学提供给帮助&#xff01; 坑点1: 在部署LVSkeepalived并且使用…...

【天梯赛练习】L2-035 完全二叉树的层序遍历

后序遍历转层序遍历 后序遍历&#xff1a;左——右——根层序遍历&#xff1a;数组形式存储的完全二叉树的顺序遍历序列其实就正好是其层序遍历序列。 子树根若是 i d id id&#xff0c;左子树 i d ∗ 2 id*2 id∗2&#xff0c;右子树 2 ∗ i d 1 2*id1 2∗id1 所以就是dfs递…...

2025.4.20机器学习笔记:文献阅读

2025.4.20周报 题目信息摘要创新点网络架构实验生成性能对比预测性能对比 结论不足以及展望 题目信息 题目&#xff1a; A novel flood forecasting model based on TimeGAN for data-sparse basins期刊&#xff1a; Stochastic Environmental Research and Risk Assessment作…...

Leetcode 3359. 查找最大元素不超过 K 的有序子矩阵【Plus题】

1.题目基本信息 1.1.题目描述 给定一个大小为 m x n 的二维矩阵 grid。同时给定一个 非负整数 k。 返回满足下列条件的 grid 的子矩阵数量&#xff1a; 子矩阵中最大的元素 小于等于 k。 子矩阵的每一行都以 非递增 顺序排序。 矩阵的子矩阵 (x1, y1, x2, y2) 是通过选择…...

Redis面试——事务

一、Redis原子性是什么&#xff1f; &#xff08;1&#xff09;单个命令的原子性 原子性是指一组操作&#xff0c;要么全部执行成功&#xff0c;要么全部失败。Redis 中的单个命令是天然原子性的&#xff0c;因为 Redis 的命令执行采用单线程模型&#xff0c;同一时间只会执行…...

【远程管理绿联NAS】家庭云存储无公网IP解决方案:绿联NAS安装内网穿透

文章目录 前言1. 开启ssh服务2. ssh连接3. 安装cpolar内网穿透4. 配置绿联NAS公网地址 前言 大家好&#xff0c;今天要带给大家一个超级酷炫的技能——如何让绿联NAS秒变‘千里眼’&#xff0c;通过简单的几步操作就能轻松实现内网穿透。想象一下&#xff0c;无论你身处何地&a…...

AI写程序:用 AI 实现一个递归批量转化 GBK/GB2312 转 UTF-8 工具:轻松解决文本编码转换难题

用 AI 实现一个递归批量转化 GBK/GB2312 转 UTF-8 工具 在处理历史文件或与不同系统交互时&#xff0c;我们经常会遇到 GBK 或 GB2312 编码的文本文件。虽然现在 UTF-8 是主流&#xff0c;但手动转换这些旧编码文件既繁琐又容易出错。为了解决这个问题&#xff0c;我开发了一个…...

首席人工智能官(Chief Artificial Intelligence Officer,CAIO)的详细解析

以下是**首席人工智能官&#xff08;Chief Artificial Intelligence Officer&#xff0c;CAIO&#xff09;**的详细解析&#xff1a; 1. 职责与核心职能 制定AI战略 制定公司AI技术的长期战略&#xff0c;明确AI在业务中的应用场景和优先级&#xff0c;推动AI与核心业务的深度…...

uview1.0 tabs组件放到u-popup中在微信小程序中滑块样式错乱

解决思路 重新计算布局信息&#xff1a;在弹窗显示后重新调用 init 方法来计算组件的布局信息。使用 nextTick&#xff1a;保证在视图更新之后再进行布局信息的计算。 <u-tabs ref"tabsRef" ></u-tabs> makeClick(){this.makeShowtruethis.$nextTick…...

私人笔记:动手学大模型应用开发llm-universe项目环境创建

项目代码&#xff1a;datawhalechina/llm-universe: 本项目是一个面向小白开发者的大模型应用开发教程&#xff0c;在线阅读地址&#xff1a;https://datawhalechina.github.io/llm-universe/ 项目书&#xff1a;动手学大模型应用开发 一、初始化项目 uv init llm-universe-te…...

基于Django框架的图书索引智能排序系统设计与实现(源码+lw+部署文档+讲解),源码可白嫖!

摘要 时代在飞速进步&#xff0c;每个行业都在努力发展现在先进技术&#xff0c;通过这些先进的技术来提高自己的水平和优势&#xff0c;图书管理系统当然不能排除在外。图书索引智能排序系统是在实际应用和软件工程的开发原理之上&#xff0c;运用Python语言以及Django框架进…...

网络类型学习

网络类型的分类依据-----基于二层&#xff08;数据链路层&#xff09;使用的协议不同而导致数据包的封装方式不同&#xff0c;工作方式也不同。 OSPF协议根据链路层协议类型将网络分为四种类型&#xff1a;广播型网络&#xff08;BMA&#xff09;、非广播多路访问&#xff08;…...

ubuntu24.04离线安装deb格式的mysql-community-8.4.4

1&#xff0c;下载解压 参考&#xff1a; https://blog.csdn.net/2202_76101487/article/details/145967039 下载&#xff1a; wget https://cdn.mysql.com//Downloads/MySQL-8.4/mysql-server_8.4.4-1ubuntu24.04_amd64.deb-bundle.tar 建议个目录mysql8然后把安装包移过去&…...

电控---printf重定向输出

在嵌入式系统开发中&#xff0c;printf 重定向输出是将标准输出&#xff08;stdout&#xff09;从默认设备&#xff08;如主机终端&#xff09;重新映射到嵌入式设备的特定硬件接口&#xff08;如串口、LCD、USB等&#xff09;的过程。 一、核心原理&#xff1a;标准IO库的底层…...

uniapp使用createSelectorQuery,boundingClientRect获取宽度和高度不准确的可用的解决方案

场景展示&#xff1a; uniapp使用createSelectorQuery,boundingClientRect获取宽度和高度不准确的可用的解决方案&#xff0c;正常来说&#xff0c;使用下面的代码是可以正确获得宽高的&#xff0c;但是里面含有图片&#xff0c;在图片没有加载完的情况下&#xff0c;我们可以…...

DSO:牛津大学推出的物理一致性3D模型优化框架

在数字内容创作和制造领域,将2D图像转换为高质量、物理上稳定的3D模型一直是一个挑战。传统的3D建模方法往往需要大量的手动调整以确保生成的物体不仅美观而且符合物理定律,能够在现实世界中稳定存在。牛津大学近期推出了一款名为DSO(Direct Sparse Odometry)的项目,它不仅…...

Delphi Ini文件对UTF8支持不爽的极简替代方案

如题&#xff0c;没太多废话&#xff0c;直接复制走即可。 unit uConfig;interfaceuses classes, Sysutils;typeTConfig class privateFFileName: String;FConfig:TStringList; protectedpublicconstructor Create(ConfigFile:String);destructor Destroy;property FileName…...

Windows平台使用Docker部署Neo4j

✅ Docker 安装 Neo4j 前提条件&#xff1a;安装docker 打开docker desktop docker run \--name neo4j \-p7474:7474 -p7687:7687 \-d \-e NEO4J_AUTHneo4j/password123 \neo4j:5默认用户名是 neo4j&#xff0c;密码是你设置的&#xff0c;比如上面是 password123 ✅用 Pyt…...

FreeRTOS二值信号量详解与实战教程

FreeRTOS二值信号量详解与实战教程 &#x1f4da; 作者推荐&#xff1a;想系统学习FreeRTOS嵌入式开发&#xff1f;请访问我的FreeRTOS开源学习库&#xff0c;内含从入门到精通的完整教程和实例代码&#xff01; 1. 二值信号量核心概念解析 二值信号量(Binary Semaphore)是Fre…...

数据结构与算法[零基础]---6.算法概况

六、算法概述 (一)算法的概述 任何解决问题的过程都是由一定的步骤组成的&#xff0c;把解决问题的方法和有限的步骤称作算法 &#xff08;二&#xff09;算法的基本特征 1.有穷性 算法必须在执行有限个操作之后终止&#xff0c;且每一步都可在有限时间内完成。 2.确定性 算…...

STL简介(了解)

1.什么是STL STL(standard template libaray)是标准模板库&#xff0c;它是C标准库的一部分。C标准库中还有一些其它东西&#xff0c;比如之前用的IO流。它主要是数据结构和算法的库。 2.STL的版本 C3.0出来后就有了模板&#xff0c;此时大家已经深受没有数据结构算法库的痛苦…...

使用 Oh My Posh 自定义 PowerShell 提示符

使用 Oh My Posh 自定义 PowerShell 提示符 由于ai生图&#xff0c;ai视频这方面mac太差了&#xff0c;买N卡&#xff0c;转windows了&#xff0c;这里也记录一下 PowerShell 配置Oh My Posh 先上效果图 一、下载 PowerShell7 默认的 PowerShell5 太差了&#xff0c;下载地…...

4月17号

//1.编码 String str "ai你哟"; byte[] bytes1 str.getBytes(); System.out.println(Arrays.toString(bytes1)); byte[] bytes2 str.getBytes(charsetName: "GBK"); System.out.println(Arrays.toString(bytes2));//2.解码 String str2 new String(byt…...

react-native搭建开发环境过程记录

主要参考&#xff1a;官网的教程 https://reactnative.cn/docs/environment-setup 环境介绍&#xff1a;macos ios npm - 已装node18 - 已装&#xff0c;通过nvm进行版本控制Homebrew- 已装yarn - 已装ruby - macos系统自带的2.2版本。watchman - 正常安装Xcode - 正常安装和…...